Skip to content

Instantly share code, notes, and snippets.

@alanc
Created May 19, 2021 23:31
Show Gist options
  • Save alanc/2612172478ec02679b3b4e1638299d85 to your computer and use it in GitHub Desktop.
Save alanc/2612172478ec02679b3b4e1638299d85 to your computer and use it in GitHub Desktop.
Man page changes in Solaris 11.4.33
Man page changes between Solaris 11.4.30 & 11.4.33, including changes for:
15607354 /usr/bin/awk should be mediated and default to nawk
15621143 SUNBT6924356 Virtio drivers for KVM
15756594 resolv.conf(5) manpage needs examples
20875258 RAD TLS should support client X.509 certs
20875332 RAD TLS should Identify and Authenticate user via X.509 certficate
21227539 memcntl(MC_LOCK_GRANULE) can return EAGAIN, contrary to manpage
21971253 Steer developers towards getaddrinfo and getnameinfo
27848134 Deferred dump: publicly document the off switch so customer can choose
28479779 radadrgen names Java struct field methods incorrectly
28972454 Error after upgrade to S11.4 audit_sstore "p_flags" contains the following invalid audit flag: 'sstore'
28977097 sstored SEGV: invalid permissions for mapped object
29930790 rad(8) cert/key locations are wrong
30005768 svc:/system/identity:cert needs to add IP address subjectAltName entries
30032944 at(1) man pages need to correctly document allow/deny files
30396162 Support for Encryption on Solaris Cluster Global-ZFS file systems
31303808 kmipcfg should have "info" command
31361325 kmipcfg man page is wrongly formatted
31479417 Allow RAD server transport to bind to a specific address
31734069 vmstat wide human readable display
31751358 provide a wide screen output for iostat
31793001 gssd(8) should document config/ccache_patterns
32038929 detached 11.3 zones fail to attach on update to 11.4 without -z <zbe> option
32088409 mdb_printf should have a way to specify the width based on the current radix
32113309 archiveadm needs warning message pcfs requirement for ngz
32180897 mdb_alloc et al should longjmp when UM_SLEEP is set and the length is zero
32211983 uiomove(9f) must document that no locks should be kept
32216691 pam_krb5(7) is missing details about krb5_first/krb5_optional pam policies
32259826 prtconf.9f should document device usage option
32300856 Expose migration-mem-iterations ldmd arg as SMF property
32421833 Untangle man pages for getaddrinfo(3C) & friends
32471220 Assorted fixes for socket & naming API man pages
32497305 several links in manpages aren't correct
32531598 some formatting issues with identity(8S)
32531611 missing literals in zoneadm clone section of zoneadm(8)
32531653 fcloseall in fclose(3C) is missing the literal and parameter tags
32531665 wrong replaceable tag in mount_smbfs(8)
32531725 various minor issues with zonecfg(8) man page
32531738 procset.h code formatting is off
32531773 wrong argument type in processor_bind(2) man page
32531786 processor_affinity(2) man page has two sections for EINVAL in the ERRORS section
32531806 pool_resource_create(3POOL) man page has issues with literals and replaceables
32576840 Incorrect flag listed in fchownat(2) man page
31642875 backout man page changes for 31642875
Copyright (c) 1988, 2021, Oracle and/or its affiliates.
diff -Nurwb 11.4.30/man1/at.1 11.4.33/man1/at.1
--- 11.4.30/man1/at.1 2021-05-19 16:10:28.697798200 +0000
+++ 11.4.33/man1/at.1 2021-05-19 16:11:41.420850334 +0000
@@ -66,12 +66,12 @@
Users are permitted to use at and batch (see below) if their name
- appears in the file /usr/lib/cron/at.allow. If that file does not
- exist, the file /usr/lib/cron/at.deny is checked to determine if the
- user should be denied access to at. If neither file exists, only a user
- with the solaris.jobs.user authorization is allowed to submit a job. If
- only at.deny exists and is empty, global usage is permitted. The
- at.allow and at.deny files consist of one user name per line.
+ appears in the file /etc/cron.d/at.allow. If that file does not exist,
+ the file /etc/cron.d/at.deny is checked to determine if the user should
+ be denied access to at. If neither file exists, only a user with the
+ solaris.jobs.user authorization is allowed to submit a job. If only
+ at.deny exists and is empty, global usage is permitted. The at.allow
+ and at.deny files consist of one user name per line.
cron and at jobs are not be executed if the user's account is locked.
@@ -425,11 +425,11 @@
FILES
- /usr/lib/cron/at.allow names of users, one per line, who are autho-
+ /etc/cron.d/at.allow names of users, one per line, who are autho-
rized access to the at and batch utilities
- /usr/lib/cron/at.deny names of users, one per line, who are denied
+ /etc/cron.d/at.deny names of users, one per line, who are denied
access to the at and batch utilities
@@ -499,4 +499,4 @@
-Oracle Solaris 11.4 10 Feb 2020 at(1)
+Oracle Solaris 11.4 04 Jan 2021 at(1)
diff -Nurwb 11.4.30/man1/awk.1 11.4.33/man1/awk.1
--- 11.4.30/man1/awk.1 2021-05-19 16:10:28.705157562 +0000
+++ 11.4.33/man1/awk.1 2021-05-19 16:11:41.444753500 +0000
@@ -3,135 +3,666 @@
NAME
- awk - pattern scanning and processing language
+ nawk, awk - pattern scanning and processing language
SYNOPSIS
- /usr/bin/awk [-f progfile] [-Fc] [' prog '] [parameters]
- [filename]...
+ /usr/bin/awk [-F ERE] [-v assignment] 'program' | -f progfile...
+ [argument]...
- /usr/xpg4/bin/awk [-FcERE] [-v assignment]... 'program' -f progfile...
+ /usr/xpg4/bin/awk [-F ERE] [-v assignment]... 'program' | -f progfile...
[argument]...
DESCRIPTION
- The /usr/xpg4/bin/awk utility is described on the nawk(1) manual page.
-
-
- The /usr/bin/awk utility scans each input filename for lines that match
- any of a set of patterns specified in prog. The prog string must be
- enclosed in single quotes (') to protect it from the shell. For each
- pattern in prog there can be an associated action performed when a line
- of a filename matches the pattern. The set of pattern-action statements
- can appear literally as prog or in a file specified with the -f prog-
- file option. Input files are read in order; if there are no files, the
- standard input is read. The file name '-' means the standard input.
+ The /usr/bin/awk and /usr/xpg4/bin/awk utilities execute programs writ-
+ ten in the awk programming language, which is specialized for textual
+ data manipulation. A awk program is a sequence of patterns and corre-
+ sponding actions. The string specifying program must be enclosed in
+ single quotes (') to protect it from interpretation by the shell. The
+ sequence of pattern - action statements can be specified in the command
+ line as program or in one, or more, file(s) specified by the -f prog-
+ file option. When input is read that matches a pattern, the action
+ associated with the pattern is performed.
+
+
+ Input is interpreted as a sequence of records. By default, a record is
+ a line, but this can be changed by using the RS built-in variable. Each
+ record of input is matched to each pattern in the program. For each
+ pattern matched, the associated action is executed.
+
+
+ The awk utility interprets each input record as a sequence of fields
+ where, by default, a field is a string of non-blank characters. This
+ default white-space field delimiter (blanks and/or tabs) can be changed
+ by using the FS built-in variable or the -FERE option. The awk utility
+ denotes the first field in a record $1, the second $2, and so forth.
+ The symbol $0 refers to the entire record; setting any other field
+ causes the reevaluation of $0. Assigning to $0 resets the values of all
+ fields and the NF built-in variable.
OPTIONS
The following options are supported:
- -f progfile awk uses the set of patterns it reads from progfile.
+ -F ERE Define the input field separator to be the extended
+ regular expression ERE, before any input is read (can
+ be a character).
- -Fc Uses the character c as the field separator (FS) charac-
- ter. See the discussion of FS below.
+ -f progfile Specifies the pathname of the file progfile containing
+ a awk program. If multiple instances of this option
+ are specified, the concatenation of the files speci-
+ fied as progfile in the order specified is the awk
+ program. The awk program can alternatively be speci-
+ fied in the command line as a single argument.
-USAGE
- Input Lines
- Each input line is matched against the pattern portion of every pat-
- tern-action statement; the associated action is performed for each
- matched pattern. Any filename of the form var=value is treated as an
- assignment, not a filename, and is executed at the time it would have
- been opened if it were a filename. Variables assigned in this manner
- are not available inside a BEGIN rule, and are assigned after previ-
- ously specified files have been read.
-
-
- An input line is normally made up of fields separated by white spaces.
- (This default can be changed by using the FS built-in variable or the
- -Fc option.) The default is to ignore leading blanks and to separate
- fields by blanks and/or tab characters. However, if FS is assigned a
- value that does not include any of the white spaces, then leading
- blanks are not ignored. The fields are denoted $1, $2, ...; $0 refers
- to the entire line.
+ -v assignment The assignment argument must be in the same form as an
+ assignment operand. The assignment is of the form
+ var=value, where var is the name of one of the vari-
+ ables described below. The specified assignment occurs
+ before executing the awk program, including the
+ actions associated with BEGIN patterns (if any). Mul-
+ tiple occurrences of this option can be specified.
+
+
+OPERANDS
+ The following operands are supported:
+
+ program
+
+ If no -f option is specified, the first operand to awk is the text
+ of the awk program. The application supplies the program operand as
+ a single argument to awk. If the text does not end in a newline
+ character, awk interprets the text as if it did.
+
+
+ argument
+
+ Either of the following two types of argument can be intermixed:
+
+ file
+
+ A pathname of a file that contains the input to be read, which
+ is matched against the set of patterns in the program. If no
+ file operands are specified, or if a file operand is -, the
+ standard input is used.
+
+
+ assignment
+
+ An operand that begins with an underscore or alphabetic charac-
+ ter from the portable character set, followed by a sequence of
+ underscores, digits and alphabetics from the portable character
+ set, followed by the = character specifies a variable assign-
+ ment rather than a pathname. The characters before the = repre-
+ sent the name of a awk variable. If that name is a awk reserved
+ word, the behavior is undefined. The characters following the
+ equal sign is interpreted as if they appeared in the awk pro-
+ gram preceded and followed by a double-quote (") character, as
+ a STRING token, except that if the last character is an
+ unescaped backslash, it is interpreted as a literal backslash
+ rather than as the first character of the sequence \.. The
+ variable is assigned the value of that STRING token. If the
+ value is considered a numeric string, the variable is assigned
+ its numeric value. Each such variable assignment is performed
+ just before the processing of the following file, if any. Thus,
+ an assignment before the first file argument is executed after
+ the BEGIN actions (if any), while an assignment after the last
+ file argument is executed before the END actions (if any). If
+ there are no file arguments, assignments are executed before
+ processing the standard input.
+
+
+
+INPUT FILES
+ Input files to the awk program from any of the following sources:
+
+ o any file operands or their equivalents, achieved by modify-
+ ing the awk variables ARGV and ARGC
- Pattern-action Statements
- A pattern-action statement has the form:
+
+ o standard input in the absence of any file operands
+
+
+ o arguments to the getline function
+
+
+
+ must be text files. Whether the variable RS is set to a value other
+ than a newline character or not, for these files, implementations sup-
+ port records terminated with the specified separator up to {LINE_MAX}
+ bytes and can support longer records.
+
+
+ If -f progfile is specified, the files named by each of the progfile
+ option-arguments must be text files containing an awk program.
+
+
+ The standard input are used only if no file operands are specified, or
+ if a file operand is -.
+
+EXTENDED DESCRIPTION
+ A awk program is composed of pairs of the form:
pattern { action }
- Either pattern or action can be omitted. If there is no action, the
- matching line is printed. If there is no pattern, the action is per-
- formed on every input line. Pattern-action statements are separated by
- newlines or semicolons.
+ Either the pattern or the action (including the enclosing brace charac-
+ ters) can be omitted. Pattern-action statements are separated by a
+ semicolon or by a newline.
+
+
+ A missing pattern matches any record of input, and a missing action is
+ equivalent to an action that writes the matched record of input to
+ standard output.
+
+
+ Execution of the awk program starts by first executing the actions
+ associated with all BEGIN patterns in the order they occur in the pro-
+ gram. Then each file operand (or standard input if no files were speci-
+ fied) is processed by reading data from the file until a record separa-
+ tor is seen (a newline character by default), splitting the current
+ record into fields using the current value of FS, evaluating each pat-
+ tern in the program in the order of occurrence, and executing the
+ action associated with each pattern that matches the current record.
+ The action for a matching pattern is executed before evaluating subse-
+ quent patterns. Last, the actions associated with all END patterns is
+ executed in the order they occur in the program.
+
+ Expressions in awk
+ Expressions describe computations used in patterns and actions. In the
+ following table, valid expression operations are given in groups from
+ highest precedence first to lowest precedence last, with equal-prece-
+ dence operators grouped between horizontal lines. In expression evalua-
+ tion, where the grammar is formally ambiguous, higher precedence opera-
+ tors are evaluated before lower precedence operators. In this table
+ expr, expr1, expr2, and expr3 represent any expression, while lvalue
+ represents any entity that can be assigned to (that is, on the left
+ side of an assignment operator).
+
+
+ Syntax Name Type of Result Associativity
+ ------------------------------------------------------------------------------
+ ( expr ) Grouping type of expr n/a
+ ------------------------------------------------------------------------------
+ $expr Field reference string n/a
+ ------------------------------------------------------------------------------
+ ++ lvalue Pre-increment numeric n/a
+ -- lvalue Pre-decrement numeric n/a
+ lvalue ++ Post-increment numeric n/a
+ lvalue -- Post-decrement numeric n/a
+ ------------------------------------------------------------------------------
+ expr ^ expr Exponentiation numeric right
+ ------------------------------------------------------------------------------
+
+ ! expr Logical not numeric n/a
+ + expr Unary plus numeric n/a
+ - expr Unary minus numeric n/a
+ ------------------------------------------------------------------------------
+ expr * expr Multiplication numeric left
+ expr / expr Division numeric left
+ expr % expr Modulus numeric left
+ ------------------------------------------------------------------------------
+ expr + expr Addition numeric left
+ expr - expr Subtraction numeric left
+ ------------------------------------------------------------------------------
+ expr expr String concatenation string left
+ ------------------------------------------------------------------------------
+ expr < expr Less than numeric none
+ expr <= expr Less than or equal to numeric none
+ expr != expr Not equal to numeric none
+ expr == expr Equal to numeric none
+ expr > expr Greater than numeric none
+ expr >= expr Greater than or equal to numeric none
+ ------------------------------------------------------------------------------
+ expr ~ expr ERE match numeric none
+ expr !~ expr ERE non-match numeric none
+ ------------------------------------------------------------------------------
+ expr in array Array membership numeric left
+ ( index ) in Multi-dimension array numeric left
+ array membership
+ ------------------------------------------------------------------------------
+ expr && expr Logical AND numeric left
+ ------------------------------------------------------------------------------
+ expr || expr Logical OR numeric left
+ ------------------------------------------------------------------------------
+ expr1 ? expr2 Conditional expression type of selected right
+ : expr3 expr2 or expr3
+ ------------------------------------------------------------------------------
+ lvalue ^= expr Exponentiation numeric right
+ assignment
+ lvalue %= expr Modulus assignment numeric right
+ lvalue *= expr Multiplication assignment numeric right
+ lvalue /= expr Division assignment numeric right
+ lvalue += expr Addition assignment numeric right
+ lvalue -= expr Subtraction assignment numeric right
+ lvalue = expr Assignment type of expr right
+
+
+
+ Each expression has either a string value, a numeric value or both.
+ Except as stated for specific contexts, the value of an expression is
+ implicitly converted to the type needed for the context in which it is
+ used. A string value is converted to a numeric value by the equivalent
+ of the following calls:
+
+ setlocale(LC_NUMERIC, "");
+ numeric_value = atof(string_value);
+
+
+
+ A numeric value that is exactly equal to the value of an integer is
+ converted to a string by the equivalent of a call to the sprintf func-
+ tion with the string %d as the fmt argument and the numeric value being
+ converted as the first and only expr argument. Any other numeric value
+ is converted to a string by the equivalent of a call to the sprintf
+ function with the value of the variable CONVFMT as the fmt argument and
+ the numeric value being converted as the first and only expr argument.
+
+
+ A string value is considered to be a numeric string in the following
+ case:
+
+ 1. Any leading and trailing blank characters is ignored.
+
+
+ 2. If the first unignored character is a + or -, it is ignored.
+
+
+ 3. If the remaining unignored characters would be lexically
+ recognized as a NUMBER token, the string is considered a
+ numeric string.
+
+
+
+
+ If a - character is ignored in the above steps, the numeric value of
+ the numeric string is the negation of the numeric value of the recog-
+ nized NUMBER token. Otherwise the numeric value of the numeric string
+ is the numeric value of the recognized NUMBER token. Whether or not a
+ string is a numeric string is relevant only in contexts where that term
+ is used in this section.
+
+
+ When an expression is used in a Boolean context, if it has a numeric
+ value, a value of zero is treated as false and any other value is
+ treated as true. Otherwise, a string value of the null string is
+ treated as false and any other value is treated as true. A Boolean con-
+ text is one of the following:
+
+ o the first subexpression of a conditional expression.
+
+
+ o an expression operated on by logical NOT, logical AND, or
+ logical OR.
+
+
+ o the second expression of a for statement.
+
+
+ o the expression of an if statement.
+
+
+ o the expression of the while clause in either a while or do
+ ... while statement.
+
+
+ o an expression used as a pattern (as in Overall Program
+ Structure).
+
+
+
+ The awk language supplies arrays that are used for storing numbers or
+ strings. Arrays need not be declared. They are initially empty, and
+ their sizes changes dynamically. The subscripts, or element identi-
+ fiers, are strings, providing a type of associative array capability.
+ An array name followed by a subscript within square brackets can be
+ used as an lvalue and as an expression, as described in the grammar.
+ Unsubscripted array names are used in only the following contexts:
+
+ o a parameter in a function definition or function call.
+
+
+ o the NAME token following any use of the keyword in.
+
- Patterns are arbitrary Boolean combinations ( !, ||, &&, and parenthe-
- ses) of relational expressions and regular expressions. A relational
- expression is one of the following:
+ A valid array index consists of one or more comma-separated expres-
+ sions, similar to the way in which multi-dimensional arrays are indexed
+ in some programming languages. Because awk arrays are really one-dimen-
+ sional, such a comma-separated list is converted to a single string by
+ concatenating the string values of the separate expressions, each sepa-
+ rated from the other by the value of the SUBSEP variable.
- expression relop expression
- expression matchop regular_expression
+ Thus, the following two index operations are equivalent:
+ var[expr1, expr2, ... exprn]
+ var[expr1 SUBSEP expr2 SUBSEP ... SUBSEP exprn]
- where a relop is any of the six relational operators in C, and a
- matchop is either ~ (contains) or !~ (does not contain). An expression
- is an arithmetic expression, a relational expression, the special
- expression
- var in array
+ A multi-dimensioned index used with the in operator must be put in
+ parentheses. The in operator, which tests for the existence of a par-
+ ticular array element, does not create the element if it does not
+ exist. Any other reference to a non-existent array element automati-
+ cally creates it.
+ Variables and Special Variables
+ Variables can be used in an awk program by referencing them. With the
+ exception of function parameters, they are not explicitly declared.
+ Uninitialized scalar variables and array elements have both a numeric
+ value of zero and a string value of the empty string.
- or a Boolean combination of these.
+ Field variables are designated by a $ followed by a number or numerical
+ expression. The effect of the field number expression evaluating to
+ anything other than a non-negative integer is unspecified. Uninitial-
+ ized variables or string values need not be converted to numeric values
+ in this context. New field variables are created by assigning a value
+ to them. References to non-existent fields (that is, fields after $NF)
+ produce the null string. However, assigning to a non-existent field
+ (for example, $(NF+2) = 5) increases the value of NF, create any inter-
+ vening fields with the null string as their values and cause the value
+ of $0 to be recomputed, with the fields being separated by the value of
+ OFS. Each field variable has a string value when created. If the
+ string, with any occurrence of the decimal-point character from the
+ current locale changed to a period character, is considered a numeric
+ string (see Expressions in awk above), the field variable also has the
+ numeric value of the numeric string.
- Regular expressions are as in egrep(1). In patterns they must be sur-
- rounded by slashes. Isolated regular expressions in a pattern apply to
- the entire line. Regular expressions can also occur in relational
- expressions. A pattern can consist of two patterns separated by a
- comma; in this case, the action is performed for all lines between the
- occurrence of the first pattern to the occurrence of the second pat-
- tern.
+ /usr/bin/awk, /usr/xpg4/bin/awk
+ awk sets the following special variables that are supported by both
+ /usr/bin/awk and /usr/xpg4/bin/awk:
+ ARGC
- The special patterns BEGIN and END can be used to capture control
- before the first input line has been read and after the last input line
- has been read respectively. These keywords do not combine with any
- other patterns.
+ The number of elements in the ARGV array.
- Built-in Variables
- Built-in variables include:
- FILENAME name of the current input file
+ ARGV
+ An array of command line arguments, excluding options and the pro-
+ gram argument, numbered from zero to ARGC-1.
- FS input field separator regular expression (default blank and
- tab)
+ The arguments in ARGV can be modified or added to; ARGC can be
+ altered. As each input file ends, awk treats the next non-null ele-
+ ment of ARGV, up to the current value of ARGC-1, inclusive, as the
+ name of the next input file. Setting an element of ARGV to null
+ means that it is not treated as an input file. The name - indicates
+ the standard input. If an argument matches the format of an assign-
+ ment operand, this argument is treated as an assignment rather than
+ a file argument.
- NF number of fields in the current record
+ ENVIRON
+ The variable ENVIRON is an array representing the value of the
+ environment. The indices of the array are strings consisting of the
+ names of the environment variables, and the value of each array
+ element is a string consisting of the value of that variable. If
+ the value of an environment variable is considered a numeric
+ string, the array element also has its numeric value.
- NR ordinal number of the current record
+ In all cases where awk behavior is affected by environment vari-
+ ables (including the environment of any commands that awk executes
+ via the system function or via pipeline redirections with the print
+ statement, the printf statement, or the getline function), the
+ environment used is the environment at the time awk began execut-
+ ing.
- OFMT output format for numbers (default %.6g)
+ FILENAME
+ A pathname of the current input file. Inside a BEGIN action the
+ value is undefined. Inside an END action the value is the name of
+ the last input file processed.
- OFS output field separator (default blank)
+ FNR
- ORS output record separator (default new-line)
+ The ordinal number of the current record in the current file.
+ Inside a BEGIN action the value is zero. Inside an END action the
+ value is the number of the last record processed in the last file
+ processed.
- RS input record separator (default new-line)
+ FS
+ Input field separator regular expression; a space character by
+ default.
+ NF
+
+ The number of fields in the current record. Inside a BEGIN action,
+ the use of NF is undefined unless a getline function without a var
+ argument is executed previously. Inside an END action, NF retains
+ the value it had for the last record read, unless a subsequent,
+ redirected, getline function without a var argument is performed
+ prior to entering the END action.
+
+
+ NR
+
+ The ordinal number of the current record from the start of input.
+ Inside a BEGIN action the value is zero. Inside an END action the
+ value is the number of the last record processed.
+
+
+ OFMT
+
+ The printf format for converting numbers to strings in output
+ statements "%.6g" by default. The result of the conversion is
+ unspecified if the value of OFMT is not a floating-point format
+ specification.
+
+
+ OFS
+
+ The print statement output field separator; a space character by
+ default.
+
+
+ ORS
+
+ The print output record separator; a newline character by default.
+
+
+ LENGTH
+
+ The length of the string matched by the match function.
+
+
+ RS
+
+ The first character of the string value of RS is the input record
+ separator; a newline character by default. If RS contains more than
+ one character, the results are unspecified. If RS is null, then
+ records are separated by sequences of one or more blank lines.
+ Leading or trailing blank lines do not produce empty records at the
+ beginning or end of input, and the field separator is always new-
+ line, no matter what the value of FS.
+
+
+ RSTART
+
+ The starting position of the string matched by the match function,
+ numbering from 1. This is always equivalent to the return value of
+ the match function.
+
+
+ SUBSEP
+
+ The subscript separator string for multi-dimensional arrays. The
+ default value is \034.
+
+
+ /usr/xpg4/bin/awk
+ The following variable is supported for /usr/xpg4/bin/awk only:
+
+ CONVFMT
+
+ The printf format for converting numbers to strings (except for
+ output statements, where OFMT is used). The default is %.6g.
+
+
+ Regular Expressions
+ The awk utility uses the same regular expression notation as
+ /usr/bin/egrep. For more information, see the egrep(1) man page.
+
+
+ The /usr/xpg4/bin/awk utility makes use of the extended regular expres-
+ sion notation (see regex(7)) except that it allows the use of C-lan-
+ guage conventions to escape special characters within the EREs, namely
+ \\, \a, \b, \f, \n, \r, \t, \v, and those specified in the following
+ table. These escape sequences are recognized both inside and outside
+ bracket expressions. Records need not be separated by newline charac-
+ ters and string constants can contain newline characters, so even the
+ \n sequence is valid in awk EREs. Using a slash character within the
+ regular expression requires escaping as shown in the table below:
+
+
+ Escape Sequence Description Meaning
+ -----------------------------------------------------------------------
+ \" Backslash quotation-mark Quotation-mark character
+ -----------------------------------------------------------------------
+
+
+ \/ Backslash slash Slash character
+ -----------------------------------------------------------------------
+ \ddd A backslash character The character encoded by
+ followed by the longest the one-, two- or three-
+ sequence of one, two, or digit octal integer.
+ three octal-digit char- Multi-byte characters
+ acters (01234567). If require multiple, con-
+ all of the digits are 0, catenated escape
+ (that is, representation sequences, including the
+ of the NULL character), leading \ for each byte.
+ the behavior is unde-
+ fined.
+ -----------------------------------------------------------------------
+ \c A backslash character Undefined
+ followed by any charac-
+ ter not described in
+ this table or special
+ characters (\\, \a, \b,
+ \f, \n, \r, \t, \v).
+
+
+
+ A regular expression can be matched against a specific field or string
+ by using one of the two regular expression matching operators, ~ and
+ !~. These operators interpret their right-hand operand as a regular
+ expression and their left-hand operand as a string. If the regular
+ expression matches the string, the ~ expression evaluates to the value
+ 1, and the !~ expression evaluates to the value 0. If the regular
+ expression does not match the string, the ~ expression evaluates to the
+ value 0, and the !~ expression evaluates to the value 1. If the right-
+ hand operand is any expression other than the lexical token ERE, the
+ string value of the expression is interpreted as an extended regular
+ expression, including the escape conventions described above. Notice
+ that these same escape conventions also are applied in the determining
+ the value of a string literal (the lexical token STRING), and is
+ applied a second time when a string literal is used in this context.
+
+
+ When an ERE token appears as an expression in any context other than as
+ the right-hand of the ~ or !~ operator or as one of the built-in func-
+ tion arguments described below, the value of the resulting expression
+ is the equivalent of:
+
+ $0 ~ /ere/
+
+
+
+ The ere argument to the gsub, match, sub functions, and the fs argument
+ to the split function (see String Functions) is interpreted as extended
+ regular expressions. These can be either ERE tokens or arbitrary
+ expressions, and are interpreted in the same manner as the right-hand
+ side of the ~ or !~ operator.
+
+
+ An extended regular expression can be used to separate fields by using
+ the -F ERE option or by assigning a string containing the expression
+ to the built-in variable FS. The default value of the FS variable is a
+ single space character. The following describes FS behavior:
+
+ 1. If FS is a single character:
+
+ o If FS is the space character, skip leading and trailing
+ blank characters; fields are delimited by sets of one or
+ more blank characters.
+
+
+ o Otherwise, if FS is any other character c, fields are
+ delimited by each single occurrence of c.
+
+
+
+ 2. Otherwise, the string value of FS is considered to be an
+ extended regular expression. Each occurrence of a sequence
+ matching the extended regular expression delimits fields.
+
+
+
+
+ Except in the gsub, match, split, and sub built-in functions, regular
+ expression matching is based on input records. That is, record separa-
+ tor characters (the first character of the value of the variable RS, a
+ newline character by default) cannot be embedded in the expression, and
+ no expression matches the record separator character. If the record
+ separator is not a newline character, newline characters embedded in
+ the expression can be matched. In those four built-in functions, regu-
+ lar expression matching are based on text strings. So, any character
+ (including the newline character and the record separator) can be
+ embedded in the pattern and an appropriate pattern matches any charac-
+ ter. However, in all awk regular expression matching, the use of one or
+ more NULL characters in the pattern, input record or text string pro-
+ duces undefined results.
+
+ Patterns
+ A pattern is any valid expression, a range specified by two expressions
+ separated by comma, or one of the two special patterns BEGIN or END.
+
+ Special Patterns
+ The awk utility recognizes two special patterns, BEGIN and END. Each
+ BEGIN pattern is matched once and its associated action executed before
+ the first record of input is read (except possibly by use of the get-
+ line function in a prior BEGIN action) and before command line assign-
+ ment is done. Each END pattern is matched once and its associated
+ action executed after the last record of input has been read. These two
+ patterns have associated actions.
+
+
+ BEGIN and END do not combine with other patterns. Multiple BEGIN and
+ END patterns are allowed. The actions associated with the BEGIN pat-
+ terns are executed in the order specified in the program, as are the
+ END actions. An END pattern can precede a BEGIN pattern in a program.
+
+
+ If an awk program consists of only actions with the pattern BEGIN, and
+ the BEGIN action contains no getline function, awk exits without read-
+ ing its input when the last statement in the last BEGIN action is exe-
+ cuted. If an awk program consists of only actions with the pattern END
+ or only actions with the patterns BEGIN and END, the input is read
+ before the statements in the END actions are executed.
+
+ Expression Patterns
+ An expression pattern is evaluated as if it were an expression in a
+ Boolean context. If the result is true, the pattern is considered to
+ match, and the associated action (if any) is executed. If the result is
+ false, the action is not executed.
+
+ Pattern Ranges
+ A pattern range consists of two expressions separated by a comma. In
+ this case, the action is performed for all records between a match of
+ the first expression and the following match of the second expression,
+ inclusive. At this point, the pattern range can be repeated starting at
+ input records subsequent to the end of the matched range.
+
+ Actions
An action is a sequence of statements. A statement can be one of the
following:
@@ -140,6 +671,7 @@
do statement while ( expression )
for ( expression ; expression ; expression ) statement
for ( var in array ) statement
+ delete array[subscript] #delete an array element
break
continue
{ [ statement ] ... }
@@ -148,37 +680,167 @@
printf format [ ,expression-list ] [ >expression ]
next # skip remaining patterns on this input line
exit [expr] # skip the rest of the input; exit status is expr
+ return [expr]
+
+
+
+ Any single statement can be replaced by a statement list enclosed in
+ braces. The statements are terminated by newline characters or semi-
+ colons, and are executed sequentially in the order that they appear.
+
+
+ The next statement causes all further processing of the current input
+ record to be abandoned. The behavior is undefined if a next statement
+ appears or is invoked in a BEGIN or END action.
+
+
+ The exit statement invokes all END actions in the order in which they
+ occur in the program source and then terminate the program without
+ reading further input. An exit statement inside an END action termi-
+ nates the program without further execution of END actions. If an
+ expression is specified in an exit statement, its numeric value is the
+ exit status of awk, unless subsequent errors are encountered or a sub-
+ sequent exit statement with an expression is executed.
+
+ Output Statements
+ Both print and printf statements write to standard output by default.
+ The output is written to the location specified by output_redirection
+ if one is supplied, as follows:
+ > expression >> expression | expression
- Statements are terminated by semicolons, newlines, or right braces. An
- empty expression-list stands for the whole input line. Expressions take
- on string or numeric values as appropriate, and are built using the
- operators +, -, *, /, %, ^ and concatenation (indicated by a blank).
- The operators ++, --, +=, -=, *=, /=, %=, ^=, >, >=, <, <=, ==, !=, and
- ?: are also available in expressions. Variables can be scalars, array
- elements (denoted x[i]), or fields. Variables are initialized to the
- null string or zero. Array subscripts can be any string, not necessar-
- ily numeric; this allows for a form of associative memory. String con-
- stants are quoted (""), with the usual C escapes recognized within.
-
-
- The print statement prints its arguments on the standard output, or on
- a file if >expression is present, or on a pipe if '|cmd' is present.
- The output resulted from the print statement is terminated by the out-
- put record separator with each argument separated by the current output
- field separator. The printf statement formats its expression list
- according to the format (see printf(3C)).
-
- Built-in Functions
- The arithmetic functions are as follows:
- cos(x) Return cosine of x, where x is in radians. (In
- /usr/xpg4/bin/awk only. See nawk(1).)
+ In all cases, the expression is evaluated to produce a string that is
+ used as a full pathname to write into (for > or >>) or as a command to
+ be executed (for |). Using the first two forms, if the file of that
+ name is not currently open, it is opened, creating it if necessary and
+ using the first form, truncating the file. The output then is appended
+ to the file. As long as the file remains open, subsequent calls in
+ which expression evaluates to the same string value simply appends out-
+ put to the file. The file remains open until the close function, which
+ is called with an expression that evaluates to the same string value.
- sin(x) Return sine of x, where x is in radians. (In
- /usr/xpg4/bin/awk only. See nawk(1).)
+ The third form writes output onto a stream piped to the input of a com-
+ mand. The stream is created if no stream is currently open with the
+ value of expression as its command name. The stream created is equiva-
+ lent to one created by a call to the popen(3C) function with the value
+ of expression as the command argument and a value of w as the mode
+ argument. As long as the stream remains open, subsequent calls in which
+ expression evaluates to the same string value writes output to the
+ existing stream. The stream remains open until the close function is
+ called with an expression that evaluates to the same string value. At
+ that time, the stream is closed as if by a call to the pclose function.
+
+
+ These output statements take a comma-separated list of expression s
+ referred in the grammar by the non-terminal symbols expr_list,
+ print_expr_list or print_expr_list_opt. This list is referred to here
+ as the expression list, and each member is referred to as an expression
+ argument.
+
+
+ The print statement writes the value of each expression argument onto
+ the indicated output stream separated by the current output field sepa-
+ rator (see variable OFS above), and terminated by the output record
+ separator (see variable ORS above). All expression arguments is taken
+ as strings, being converted if necessary; with the exception that the
+ printf format in OFMT is used instead of the value in CONVFMT. An empty
+ expression list stands for the whole input record ($0).
+
+
+ The printf statement produces output based on a notation similar to the
+ File Format Notation used to describe file formats in this document
+ Output is produced as specified with the first expression argument as
+ the string format and subsequent expression arguments as the strings
+ arg1 to argn, inclusive, with the following exceptions:
+
+ 1. The format is an actual character string rather than a
+ graphical representation. Therefore, it cannot contain empty
+ character positions. The space character in the format
+ string, in any context other than a flag of a conversion
+ specification, is treated as an ordinary character that is
+ copied to the output.
+
+
+ 2. If the character set contains a Delta character and that
+ character appears in the format string, it is treated as an
+ ordinary character that is copied to the output.
+
+
+ 3. The escape sequences beginning with a backslash character is
+ treated as sequences of ordinary characters that are copied
+ to the output. Note that these same sequences is interpreted
+ lexically by awk when they appear in literal strings, but
+ they is not treated specially by the printf statement.
+
+
+ 4. A field width or precision can be specified as the * charac-
+ ter instead of a digit string. In this case the next argu-
+ ment from the expression list is fetched and its numeric
+ value taken as the field width or precision.
+
+
+ 5. The implementation does not precede or follow output from
+ the d or u conversion specifications with blank characters
+ not specified by the format string.
+
+
+ 6. The implementation does not precede output from the o con-
+ version specification with leading zeros not specified by
+ the format string.
+
+
+ 7. For the c conversion specification: if the argument has a
+ numeric value, the character whose encoding is that value is
+ output. If the value is zero or is not the encoding of any
+ character in the character set, the behavior is undefined.
+ If the argument does not have a numeric value, the first
+ character of the string value is output; if the string does
+ not contain any characters the behavior is undefined.
+
+
+ 8. For each conversion specification that consumes an argument,
+ the next expression argument is evaluated. With the excep-
+ tion of the c conversion, the value is converted to the
+ appropriate type for the conversion specification.
+
+
+ 9. If there are insufficient expression arguments to satisfy
+ all the conversion specifications in the format string, the
+ behavior is undefined.
+
+
+ 10. If any character sequence in the format string begins with a
+ % character, but does not form a valid conversion specifica-
+ tion, the behavior is unspecified.
+
+
+
+
+ Both print and printf can output at least {LINE_MAX} bytes.
+
+ Functions
+ The awk language has a variety of built-in functions: arithmetic,
+ string, input/output and general.
+
+ Arithmetic Functions
+ The arithmetic functions, except for int, are based on the ISO C stan-
+ dard. The behavior is undefined in cases where the ISO C standard
+ specifies that an error be returned or that the behavior is undefined.
+ Although the grammar permits built-in functions to appear with no argu-
+ ments or parentheses, unless the argument or parentheses are indicated
+ as optional in the following list (by displaying them within the [ ]
+ brackets), such use is undefined.
+
+ atan2(y,x) Return arctangent of y/x.
+
+
+ cos(x) Return cosine of x, where x is in radians.
+
+
+ sin(x) Return sine of x, where x is in radians.
exp(x) Return the exponential function of x.
@@ -190,185 +852,487 @@
sqrt(x) Return the square root of x.
- int(x) Truncate its argument to an integer. It is truncated toward
- 0 when x > 0.
+ int(x) Truncate its argument to an integer. It is truncated
+ toward 0 when x > 0.
+
+
+ rand() Return a random number n, such that 0 <= n < 1.
+
+ srand([expr]) Set the seed value for rand to expr or use the time of
+ day if expr is omitted. The previous seed value is
+ returned.
- The string functions are as follows:
+ String Functions
+ The string functions in the following list shall be supported. Although
+ the grammar permits built-in functions to appear with no arguments or
+ parentheses, unless the argument or parentheses are indicated as
+ optional in the following list (by displaying them within the [ ]
+ brackets), such use is undefined.
+
+ gsub(ere,repl[,in])
+
+ Behave like sub (see below), except that it replaces all occur-
+ rences of the regular expression (like the ed utility global sub-
+ stitute) in $0 or in the in argument, when specified.
+
index(s, t)
- Return the position in string s where string t first occurs, or 0
- if it does not occur at all.
+ Return the position, in characters, numbering from 1, in string s
+ where string t first occurs, or zero if it does not occur at all.
- int(s)
+ length[([s])]
- truncates s to an integer value. If s is not specified, $0 is used.
+ Return the length, in characters, of its argument taken as a
+ string, or of the whole record, $0, if there is no argument.
- length(s)
+ match(s,ere)
- Return the length of its argument taken as a string, or of the
- whole line if there is no argument.
+ Return the position, in characters, numbering from 1, in string s
+ where the extended regular expression ere occurs, or zero if it
+ does not occur at all. RSTART is set to the starting position
+ (which is the same as the returned value), zero if no match is
+ found; RLENGTH is set to the length of the matched string, -1 if no
+ match is found.
- split(s, a, fs)
+ split(s,a[,fs])
- Split the string s into array elements a[1], a[2], ... a[n], and
- returns n. The separation is done with the regular expression fs or
- with the field separator FS if fs is not given.
+ Split the string s into array elements a[1], a[2], ..., a[n], and
+ return n. The separation is done with the extended regular expres-
+ sion fs or with the field separator FS if fs is not given. Each
+ array element has a string value when created. If the string
+ assigned to any array element, with any occurrence of the decimal-
+ point character from the current locale changed to a period charac-
+ ter, would be considered a numeric string; the array element also
+ has the numeric value of the numeric string. The effect of a null
+ string as the value of fs is unspecified.
sprintf(fmt, expr, expr,...)
- Format the expressions according to the printf(3C) format given by
- fmt and returns the resulting string.
+ Format the expressions according to the printf format given by fmt
+ and return the resulting string.
+
+
+ sub(ere,repl[,in])
+
+ Substitute the string repl in place of the first instance of the
+ extended regular expression ERE in string in and return the number
+ of substitutions. An ampersand ( & ) appearing in the string repl
+ is replaced by the string from in that matches the regular expres-
+ sion. An ampersand preceded with a backslash ( \ ) is interpreted
+ as the literal ampersand character. An occurrence of two consecu-
+ tive backslashes is interpreted as just a single literal backslash
+ character. Any other occurrence of a backslash (for example, pre-
+ ceding any other character) is treated as a literal backslash char-
+ acter. If repl is a string literal, the handling of the ampersand
+ character occurs after any lexical processing, including any lexi-
+ cal backslash escape sequence processing. If in is specified and it
+ is not an lvalue the behavior is undefined. If in is omitted, awk
+ uses the current record ($0) in its place.
+
+
+ substr(s,m[,n])
+
+ Return the at most n-character substring of s that begins at posi-
+ tion m, numbering from 1. If n is missing, the length of the sub-
+ string is limited by the length of the string s.
+
+
+ tolower(s)
+
+ Return a string based on the string s. Each character in s that is
+ an upper-case letter specified to have a tolower mapping by the
+ LC_CTYPE category of the current locale is replaced in the returned
+ string by the lower-case letter specified by the mapping. Other
+ characters in s are unchanged in the returned string.
+
+
+ toupper(s)
+
+ Return a string based on the string s. Each character in s that is
+ a lower-case letter specified to have a toupper mapping by the
+ LC_CTYPE category of the current locale is replaced in the returned
+ string by the upper-case letter specified by the mapping. Other
+ characters in s are unchanged in the returned string.
+
+
+
+ All of the preceding functions that take ERE as a parameter expect a
+ pattern or a string valued expression that is a regular expression as
+ defined below.
+
+ Input/Output and General Functions
+ The input/output and general functions are:
+ close(expression)
- substr(s, m, n)
+ Close the file or pipe opened by a print or printf statement or a
+ call to getline with the same string-valued expression. If the
+ close was successful, the function returns 0; otherwise, it returns
+ non-zero.
- returns the n-character substring of s that begins at position m.
+ expression|getline[var]
+ Read a record of input from a stream piped from the output of a
+ command. The stream is created if no stream is currently open with
+ the value of expression as its command name. The stream created is
+ equivalent to one created by a call to the popen function with the
+ value of expression as the command argument and a value of r as the
+ mode argument. As long as the stream remains open, subsequent calls
+ in which expression evaluates to the same string value reads subse-
+ quent records from the file. The stream remains open until the
+ close function is called with an expression that evaluates to the
+ same string value. At that time, the stream is closed as if by a
+ call to the pclose function. If var is missing, $0 and NF is set.
+ Otherwise, var is set.
- The input/output function is as follows:
+ The getline operator can form ambiguous constructs when there are
+ operators that are not in parentheses (including concatenate) to
+ the left of the | (to the beginning of the expression containing
+ getline). In the context of the $ operator, | behaves as if it had
+ a lower precedence than $. The result of evaluating other operators
+ is unspecified, and all such uses of portable applications must be
+ put in parentheses properly.
- getline Set $0 to the next input record from the current input file.
- getline returns 1 for successful input, 0 for end of file,
+
+ getline
+
+ Set $0 to the next input record from the current input file. This
+ form of getline sets the NF, NR, and FNR variables.
+
+
+ getline var
+
+ Set variable var to the next input record from the current input
+ file. This form of getline sets the FNR and NR variables.
+
+
+ getline [var] < expression
+
+ Read the next record of input from a named file. The expression is
+ evaluated to produce a string that is used as a full pathname. If
+ the file of that name is not currently open, it is opened. As long
+ as the stream remains open, subsequent calls in which expression
+ evaluates to the same string value reads subsequent records from
+ the file. The file remains open until the close function is called
+ with an expression that evaluates to the same string value. If var
+ is missing, $0 and NF is set. Otherwise, var is set.
+
+ The getline operator can form ambiguous constructs when there are
+ binary operators that are not in parentheses (including concate-
+ nate) to the right of the < (up to the end of the expression con-
+ taining the getline). The result of evaluating such a construct is
+ unspecified, and all such uses of portable applications must be put
+ in parentheses properly.
+
+
+ system(expression)
+
+ Execute the command given by expression in a manner equivalent to
+ the system(3C) function and return the exit status of the command.
+
+
+
+ All forms of getline return 1 for successful input, 0 for end of file,
and -1 for an error.
+ Where strings are used as the name of a file or pipeline, the strings
+ must be textually identical. The terminology "same string value"
+ implies that "equivalent strings", even those that differ only by space
+ characters, represent different files.
+
+ User-defined Functions
+ The awk language also provides user-defined functions. Such functions
+ can be defined as:
+
+ function name(args,...) { statements }
+
+
+
+ A function can be referred to anywhere in an awk program; in particu-
+ lar, its use can precede its definition. The scope of a function is
+ global.
+
+
+ Function arguments can be either scalars or arrays; the behavior is
+ undefined if an array name is passed as an argument that the function
+ uses as a scalar, or if a scalar expression is passed as an argument
+ that the function uses as an array. Function arguments are passed by
+ value if scalar and by reference if array name. Argument names are
+ local to the function; all other variable names are global. The same
+ name is not used as both an argument name and as the name of a function
+ or a special awk variable. The same name must not be used both as a
+ variable name with global scope and as the name of a function. The same
+ name must not be used within the same scope both as a scalar variable
+ and as an array.
+
+
+ The number of parameters in the function definition need not match the
+ number of parameters in the function call. Excess formal parameters can
+ be used as local variables. If fewer arguments are supplied in a func-
+ tion call than are in the function definition, the extra parameters
+ that are used in the function body as scalars are initialized with a
+ string value of the null string and a numeric value of zero, and the
+ extra parameters that are used in the function body as arrays are ini-
+ tialized as empty arrays. If more arguments are supplied in a function
+ call than are in the function definition, the behavior is undefined.
+
+
+ When invoking a function, no white space can be placed between the
+ function name and the opening parenthesis. Function calls can be nested
+ and recursive calls can be made upon functions. Upon return from any
+ nested or recursive function call, the values of all of the calling
+ function's parameters are unchanged, except for array parameters passed
+ by reference. The return statement can be used to return a value. If a
+ return statement appears outside of a function definition, the behavior
+ is undefined.
+
+
+ In the function definition, newline characters are optional before the
+ opening brace and after the closing brace. Function definitions can
+ appear anywhere in the program where a pattern-action pair is allowed.
+
+USAGE
+ The index, length, match, and substr functions should not be confused
+ with similar functions in the ISO C standard; the awk versions deal
+ with characters, while the ISO C standard deals with bytes.
+
+
+ Because the concatenation operation is represented by adjacent expres-
+ sions rather than an explicit operator, it is often necessary to use
+ parentheses to enforce the proper evaluation precedence.
+
EXAMPLES
- Example 1 Printing Lines Longer Than 72 Characters
+ The awk program specified in the command line is most easily specified
+ within single-quotes (for example, 'program') for applications using
+ sh, because awk programs commonly contain characters that are special
+ to the shell, including double-quotes. In the cases where a awk program
+ contains single-quote characters, it is usually easiest to specify most
+ of the program as strings within single-quotes concatenated by the
+ shell with quoted single-quote characters. For example:
+ awk '/'\''/ { print "quote:", $0 }'
- The following example is an awk script that can be executed by an awk
- -f examplescript style command. It prints lines longer than seventy two
- characters:
+ prints all lines from the standard input containing a single-quote
+ character, prefixed with quote:.
- length > 72
+ The following are examples of simple awk programs:
- Example 2 Printing Fields in Opposite Order
+ Example 1 Write to the standard output all input lines for which field
+ 3 is greater than 5:
+ $3 > 5
- The following example is an awk script that can be executed by an awk
- -f examplescript style command. It prints the first two fields in oppo-
- site order:
+ Example 2 Write every tenth line:
- { print $2, $1 }
+ (NR % 10) == 0
- Example 3 Printing Fields in Opposite Order with the Input Fields Sepa-
- rated
+ Example 3 Write any line with a substring matching the regular expres-
+ sion:
- The following example is an awk script that can be executed by an awk
- -f examplescript style command. It prints the first two input fields in
- opposite order, separated by a comma, blanks or tabs:
+ /(G|D)(2[0-9][[:alpha:]]*)/
- BEGIN { FS = ",[ \t]*|[ \t]+" }
- { print $2, $1 }
+ Example 4 Print any line with a substring containing a G or D, followed
+ by a sequence of digits and characters:
+
+
+
+ This example uses character classes digit and alpha to match language-
+ independent digit and alphabetic characters, respectively.
+
+
+ /(G|D)([[:digit:][:alpha:]]*)/
+
+
+ Example 5 Write any line in which the second field matches the regular
+ expression and the fourth field does not:
+
+
+ $2 ~ /xyz/ && $4 !~ /xyz/
+
+
+ Example 6 Write any line in which the second field contains a back-
+ slash:
+
+
+ $2 ~ /\\/
+ Example 7 Write any line in which the second field contains a backslash
+ (alternate method):
- The example only works with /usr/xpg4/bin/awk.
- Example 4 Adding Up the First Column, Printing the Sum and Average
+ Notice that backslash escapes are interpreted twice, once in lexical
+ processing of the string and once in processing the regular expression.
+ $2 ~ "\\\\"
- The following example is an awk script that can be executed by an awk
- -f examplescript style command. It adds up the first column, and prints
- the sum and average:
+
+ Example 8 Write the second to the last and the last field in each line,
+ separating the fields by a colon:
+
+
+ {OFS=":";print $(NF-1), $NF}
+
+
+ Example 9 Write the line number and number of fields in each line:
+
+
+
+ The three strings representing the line number, the colon and the num-
+ ber of fields are concatenated and that string is written to standard
+ output.
+
+
+ {print NR ":" NF}
+
+
+ Example 10 Write lines longer than 72 characters:
+
+
+ {length($0) > 72}
+
+
+ Example 11 Write first two fields in opposite order separated by the
+ OFS:
+
+
+ { print $2, $1 }
+
+
+ Example 12 Same, with input fields separated by comma or space and tab
+ characters, or both:
+
+
+ BEGIN { FS = ",[\t]*|[\t]+" }
+ { print $2, $1 }
+
+
+ Example 13 Add up first column, print sum and average:
{ s += $1 }
END { print "sum is", s, " average is", s/NR }
- Example 5 Printing Fields in Reverse Order
+ Example 14 Write fields in reverse order, one per line (many lines out
+ for each line in):
+ { for (i = NF; i > 0; --i) print $i }
- The following example is an awk script that can be executed by an awk
- -f examplescript style command. It prints fields in reverse order:
+ Example 15 Write all lines between occurrences of the strings "start"
+ and "stop":
- { for (i = NF; i > 0; --i) print $i }
+ /start/, /stop/
- Example 6 Printing All lines Between start/stop Pairs
+ Example 16 Write all lines whose first field is different from the pre-
+ vious one:
- The following example is an awk script that can be executed by an awk
- -f examplescript style command. It prints all lines between start/stop
- pairs.
+ $1 != prev { print; prev = $1 }
- /start/, /stop/
+ Example 17 Simulate the echo command:
- Example 7 Printing All Lines Whose First Field is Different from the
- Previous One
+ BEGIN {
+ for (i = 1; i < ARGC; ++i)
+ printf "%s%s", ARGV[i], i==ARGC-1?"\n":""
+ }
+ Example 18 Write the path prefixes contained in the PATH environment
+ variable, one per line:
- The following example is an awk script that can be executed by an awk
- -f examplescript style command. It prints all lines whose first field
- is different from the previous one.
+ BEGIN {
+ n = split (ENVIRON["PATH"], path, ":")
+ for (i = 1; i <= n; ++i)
+ print path[i]
+ }
+
+
+ Example 19 Print the file "input", filling in page numbers starting at
+ 5:
+
+
+
+ If there is a file named input containing page headers of the form
- $1 != prev { print; prev = $1 }
+ Page#
- Example 8 Printing a File and Filling in Page numbers
- The following example is an awk script that can be executed by an awk
- -f examplescript style command. It prints a file and fills in page num-
- bers starting at 5:
+ and a file named program that contains
/Page/ { $2 = n++; }
{ print }
- Example 9 Printing a File and Numbering Its Pages
+ then the command line
- Assuming this program is in a file named prog, the following example
- prints the file input numbering its pages starting at 5:
+ awk -f program n=5 input
- example% awk -f prog n=5 input
+
+ prints the file input, filling in page numbers starting at 5.
+
ENVIRONMENT VARIABLES
See environ(7) for descriptions of the following environment variables
- that affect the execution of awk: LANG, LC_ALL, LC_COLLATE, LC_CTYPE,
- LC_MESSAGES, NLSPATH, and PATH.
+ that affect execution: LC_COLLATE, LC_CTYPE, LC_MESSAGES, and NLSPATH.
+
+ LC_NUMERIC
+
+ Determine the radix character used when interpreting numeric input,
+ performing conversions between numeric and string values and for-
+ matting numeric output. Regardless of locale, the period character
+ (the decimal-point character of the POSIX locale) is the decimal-
+ point character recognized in processing awk programs (including
+ assignments in command-line arguments).
+
+
+EXIT STATUS
+ The following exit values are returned:
+
+ 0 All input files were processed successfully.
+
+
+ > 0 An error occurred.
+
- LC_NUMERIC Determine the radix character used when interpreting
- numeric input, performing conversions between numeric and
- string values and formatting numeric output. Regardless
- of locale, the period character (the decimal-point char-
- acter of the POSIX locale) is the decimal-point character
- recognized in processing awk programs (including assign-
- ments in command-line arguments).
+ The exit status can be altered within the program by using an exit
+ expression.
ATTRIBUTES
See attributes(7) for descriptions of the following attributes:
@@ -379,8 +1343,6 @@
+-----------------------------+-----------------------------+
|Availability |system/core-os |
+-----------------------------+-----------------------------+
- |CSI |Not Enabled |
- +-----------------------------+-----------------------------+
/usr/xpg4/bin/awk
+-----------------------------+-----------------------------+
@@ -388,26 +1350,33 @@
+-----------------------------+-----------------------------+
|Availability |system/xopen/xcu4 |
+-----------------------------+-----------------------------+
- |CSI |Enabled |
- +-----------------------------+-----------------------------+
- |Interface Stability |Committed |
- +-----------------------------+-----------------------------+
- |Standard |See standards(7). |
- +-----------------------------+-----------------------------+
SEE ALSO
- egrep(1), grep(1), nawk(1), sed(1), printf(3C), attributes(7), envi-
- ron(7), standards(7)
+ awk(1), ed(1), egrep(1), grep(1), lex(1), sed(1), popen(3C),
+ printf(3C), system(3C), XPG4(7), attributes(7), environ(7), regex(7)
+
+
+ Aho, A. V., B. W. Kernighan, and P. J. Weinberger, The AWK Programming
+ Language, Addison-Wesley, 1988.
+
+DIAGNOSTICS
+ If any file operand is specified and the named file cannot be accessed,
+ awk writes a diagnostic message to standard error and terminate without
+ any further action.
+
+
+ If the program specified by either the program operand or a progfile
+ operand is not a valid awk program (as specified in EXTENDED DESCRIP-
+ TION), the behavior is undefined.
NOTES
Input white space is not preserved on output if fields are involved.
There are no explicit conversions between numbers and strings. To force
- an expression to be treated as a number, add 0 to it. To force an
- expression to be treated as a string, concatenate the null string ("")
- to it.
+ an expression to be treated as a number add 0 to it; to force it to be
+ treated as a string concatenate the null string ("") to it.
-Oracle Solaris 11.4 4 feb 2015 awk(1)
+Oracle Solaris 11.4 04 Jan 2021 awk(1)
diff -Nurwb 11.4.30/man1/cputrack.1 11.4.33/man1/cputrack.1
--- 11.4.30/man1/cputrack.1 2021-05-19 16:10:28.717436369 +0000
+++ 11.4.33/man1/cputrack.1 2021-05-19 16:11:41.468758144 +0000
@@ -338,4 +338,4 @@
-Oracle Solaris 11.4 6 Jan 2020 cputrack(1)
+Oracle Solaris 11.4 11 Feb 2021 cputrack(1)
diff -Nurwb 11.4.30/man1/mdb.1 11.4.33/man1/mdb.1
--- 11.4.30/man1/mdb.1 2021-05-19 16:10:28.790105651 +0000
+++ 11.4.33/man1/mdb.1 2021-05-19 16:11:41.501693072 +0000
@@ -457,6 +457,10 @@
(cannot be unset by the user), and tagged (user-defined indicator).
+ Variables names with the string MDB_ and _MDB should not be used. These
+ are reserved for mdb.
+
+
The following variables are defined as persistent:
0
@@ -508,9 +512,31 @@
current target. See Thread Support, below.
+ MDB_radix
+
+ The value of the current radix. Writing a value that is not a legal
+ radix to this variable results in an error.
+
+
+ MDB_radix_width
+ MDB_radix_width_alt
+ MDB_radix_width_<type>
+ MDB_radix_width_<type>_alt
+
+ The maximum width of the string required to display a value of var-
+ ious types, in both normal an alternate form in the current radix.
+ The <type> can be one of short, int, long, llong, ushort, uint,
+ ulong, ullong. They can be used with the '*' field width specifier
+ for the ::printf command to correctly format in the current radix.
+ These variables are marked as hidden so are only visible to the
+ ::vars command if the -a is used.
+
+
+
+
MDB_IMPORTING
- Set to 1 when mdb is importing aliases fromt the alias path.
+ Set to 1 when mdb is importing aliases from the alias path.
stack_bias
@@ -1008,7 +1034,6 @@
h swap bytes (2 bytes)
i disassembled instruction (variable size)
n newline
-
o octal unsigned short (2 bytes)
p symbol (4 or 8 bytes)
q octal signed short (2 bytes)
@@ -1077,7 +1102,6 @@
l Search for the specified 2-byte value.
-
L Search for the specified 4-byte value.
M Search for the specified 8-byte value.
@@ -3257,16 +3281,17 @@
Until expr evaluates to set dot non-zero, run expr1 ....
- ::vars [-npt]
+ ::vars [-anpt]
Print a listing of named variables. If the -n option is present,
the output is restricted to variables that currently have non-zero
- values. If the -p option is present, the variables are printed in a
- form suitable for re-processing by the debugger using the $< dcmd.
- This option can be used to record the variables to a macro file and
- then restore these values later. If the -t option is present, only
- the tagged variables are printed. Variables can be tagged using the
- -t option of the ::typeset dcmd.
+ values. If the -a option is present, any built in variables that
+ are hidden are displayed. If -p option is present, the variables
+ are printed in a form suitable for re-processing by the debugger
+ using the $< dcmd. This option can be used to record the variables
+ to a macro file and then restore these values later. If the -t
+ option is present, only the tagged variables are printed. Variables
+ can be tagged using the -t option of the ::typeset dcmd.
::version
@@ -3755,6 +3780,15 @@
$m, and ::objects.
+ zero_alloc
+
+ Allow mdb modules to have memory allocations of zero size.
+ Without this option a memory allocation of zero bytes is con-
+ sidered an error and the dcmd or walker is terminated. Using
+ this option risks the dcmd or walker failing and potentially
+ causing mdb to crash.
+
+
-p pid
@@ -4077,8 +4111,7 @@
as the target, if necessary. This approach simplifies the task of writ-
ing debugger modules, because the modules that are loaded use the same
data model as the primary target. Only the 64-bit debugger can be used
- to debug 64-bit target programs. The 64-bit debugger can only be used
- on a system that is running the 64-bit kernel.
+ to debug 64-bit target programs.
The debugger can also need to re-execute itself when debugging a 32-bit
@@ -4172,4 +4205,4 @@
-Oracle Solaris 11.4 11 Dec 2020 mdb(1)
+Oracle Solaris 11.4 04 Jan 2021 mdb(1)
diff -Nurwb 11.4.30/man1/nawk.1 11.4.33/man1/nawk.1
--- 11.4.30/man1/nawk.1 2021-05-19 16:10:28.811501890 +0000
+++ 11.4.33/man1/nawk.1 1969-12-31 16:00:00.000000000 +0000
@@ -1,1382 +0,0 @@
-nawk(1) User Commands nawk(1)
-
-
-
-NAME
- nawk - pattern scanning and processing language
-
-SYNOPSIS
- /usr/bin/nawk [-F ERE] [-v assignment] 'program' | -f progfile...
- [argument]...
-
-
- /usr/xpg4/bin/awk [-F ERE] [-v assignment]... 'program' | -f progfile...
- [argument]...
-
-DESCRIPTION
- The /usr/bin/nawk and /usr/xpg4/bin/awk utilities execute programs
- written in the nawk programming language, which is specialized for tex-
- tual data manipulation. A nawk program is a sequence of patterns and
- corresponding actions. The string specifying program must be enclosed
- in single quotes (') to protect it from interpretation by the shell.
- The sequence of pattern - action statements can be specified in the
- command line as program or in one, or more, file(s) specified by the -f
- progfile option. When input is read that matches a pattern, the action
- associated with the pattern is performed.
-
-
- Input is interpreted as a sequence of records. By default, a record is
- a line, but this can be changed by using the RS built-in variable. Each
- record of input is matched to each pattern in the program. For each
- pattern matched, the associated action is executed.
-
-
- The nawk utility interprets each input record as a sequence of fields
- where, by default, a field is a string of non-blank characters. This
- default white-space field delimiter (blanks and/or tabs) can be changed
- by using the FS built-in variable or the -FERE option. The nawk utility
- denotes the first field in a record $1, the second $2, and so forth.
- The symbol $0 refers to the entire record; setting any other field
- causes the reevaluation of $0. Assigning to $0 resets the values of all
- fields and the NF built-in variable.
-
-OPTIONS
- The following options are supported:
-
- -F ERE Define the input field separator to be the extended
- regular expression ERE, before any input is read (can
- be a character).
-
-
- -f progfile Specifies the pathname of the file progfile containing
- a nawk program. If multiple instances of this option
- are specified, the concatenation of the files speci-
- fied as progfile in the order specified is the nawk
- program. The nawk program can alternatively be speci-
- fied in the command line as a single argument.
-
-
- -v assignment The assignment argument must be in the same form as an
- assignment operand. The assignment is of the form
- var=value, where var is the name of one of the vari-
- ables described below. The specified assignment occurs
- before executing the nawk program, including the
- actions associated with BEGIN patterns (if any). Mul-
- tiple occurrences of this option can be specified.
-
-
-OPERANDS
- The following operands are supported:
-
- program
-
- If no -f option is specified, the first operand to nawk is the text
- of the nawk program. The application supplies the program operand
- as a single argument to nawk. If the text does not end in a newline
- character, nawk interprets the text as if it did.
-
-
- argument
-
- Either of the following two types of argument can be intermixed:
-
- file
-
- A pathname of a file that contains the input to be read, which
- is matched against the set of patterns in the program. If no
- file operands are specified, or if a file operand is -, the
- standard input is used.
-
-
- assignment
-
- An operand that begins with an underscore or alphabetic charac-
- ter from the portable character set, followed by a sequence of
- underscores, digits and alphabetics from the portable character
- set, followed by the = character specifies a variable assign-
- ment rather than a pathname. The characters before the = repre-
- sent the name of a nawk variable. If that name is a nawk
- reserved word, the behavior is undefined. The characters fol-
- lowing the equal sign is interpreted as if they appeared in the
- nawk program preceded and followed by a double-quote (") char-
- acter, as a STRING token, except that if the last character is
- an unescaped backslash, it is interpreted as a literal back-
- slash rather than as the first character of the sequence \..
- The variable is assigned the value of that STRING token. If the
- value is considered a numeric string, the variable is assigned
- its numeric value. Each such variable assignment is performed
- just before the processing of the following file, if any. Thus,
- an assignment before the first file argument is executed after
- the BEGIN actions (if any), while an assignment after the last
- file argument is executed before the END actions (if any). If
- there are no file arguments, assignments are executed before
- processing the standard input.
-
-
-
-INPUT FILES
- Input files to the nawk program from any of the following sources:
-
- o any file operands or their equivalents, achieved by modify-
- ing the nawk variables ARGV and ARGC
-
-
- o standard input in the absence of any file operands
-
-
- o arguments to the getline function
-
-
-
- must be text files. Whether the variable RS is set to a value other
- than a newline character or not, for these files, implementations sup-
- port records terminated with the specified separator up to {LINE_MAX}
- bytes and can support longer records.
-
-
- If -f progfile is specified, the files named by each of the progfile
- option-arguments must be text files containing an nawk program.
-
-
- The standard input are used only if no file operands are specified, or
- if a file operand is -.
-
-EXTENDED DESCRIPTION
- A nawk program is composed of pairs of the form:
-
- pattern { action }
-
-
-
- Either the pattern or the action (including the enclosing brace charac-
- ters) can be omitted. Pattern-action statements are separated by a
- semicolon or by a newline.
-
-
- A missing pattern matches any record of input, and a missing action is
- equivalent to an action that writes the matched record of input to
- standard output.
-
-
- Execution of the nawk program starts by first executing the actions
- associated with all BEGIN patterns in the order they occur in the pro-
- gram. Then each file operand (or standard input if no files were speci-
- fied) is processed by reading data from the file until a record separa-
- tor is seen (a newline character by default), splitting the current
- record into fields using the current value of FS, evaluating each pat-
- tern in the program in the order of occurrence, and executing the
- action associated with each pattern that matches the current record.
- The action for a matching pattern is executed before evaluating subse-
- quent patterns. Last, the actions associated with all END patterns is
- executed in the order they occur in the program.
-
- Expressions in nawk
- Expressions describe computations used in patterns and actions. In the
- following table, valid expression operations are given in groups from
- highest precedence first to lowest precedence last, with equal-prece-
- dence operators grouped between horizontal lines. In expression evalua-
- tion, where the grammar is formally ambiguous, higher precedence opera-
- tors are evaluated before lower precedence operators. In this table
- expr, expr1, expr2, and expr3 represent any expression, while lvalue
- represents any entity that can be assigned to (that is, on the left
- side of an assignment operator).
-
-
- Syntax Name Type of Result Associativity
- ------------------------------------------------------------------------------
- ( expr ) Grouping type of expr n/a
- ------------------------------------------------------------------------------
- $expr Field reference string n/a
- ------------------------------------------------------------------------------
- ++ lvalue Pre-increment numeric n/a
- -- lvalue Pre-decrement numeric n/a
- lvalue ++ Post-increment numeric n/a
- lvalue -- Post-decrement numeric n/a
- ------------------------------------------------------------------------------
- expr ^ expr Exponentiation numeric right
- ------------------------------------------------------------------------------
-
- ! expr Logical not numeric n/a
- + expr Unary plus numeric n/a
- - expr Unary minus numeric n/a
- ------------------------------------------------------------------------------
- expr * expr Multiplication numeric left
- expr / expr Division numeric left
- expr % expr Modulus numeric left
- ------------------------------------------------------------------------------
- expr + expr Addition numeric left
- expr - expr Subtraction numeric left
- ------------------------------------------------------------------------------
- expr expr String concatenation string left
- ------------------------------------------------------------------------------
- expr < expr Less than numeric none
- expr <= expr Less than or equal to numeric none
- expr != expr Not equal to numeric none
- expr == expr Equal to numeric none
- expr > expr Greater than numeric none
- expr >= expr Greater than or equal to numeric none
- ------------------------------------------------------------------------------
- expr ~ expr ERE match numeric none
- expr !~ expr ERE non-match numeric none
- ------------------------------------------------------------------------------
- expr in array Array membership numeric left
- ( index ) in Multi-dimension array numeric left
- array membership
- ------------------------------------------------------------------------------
- expr && expr Logical AND numeric left
- ------------------------------------------------------------------------------
- expr || expr Logical OR numeric left
- ------------------------------------------------------------------------------
- expr1 ? expr2 Conditional expression type of selected right
- : expr3 expr2 or expr3
- ------------------------------------------------------------------------------
- lvalue ^= expr Exponentiation numeric right
- assignment
- lvalue %= expr Modulus assignment numeric right
- lvalue *= expr Multiplication assignment numeric right
- lvalue /= expr Division assignment numeric right
- lvalue += expr Addition assignment numeric right
- lvalue -= expr Subtraction assignment numeric right
- lvalue = expr Assignment type of expr right
-
-
-
- Each expression has either a string value, a numeric value or both.
- Except as stated for specific contexts, the value of an expression is
- implicitly converted to the type needed for the context in which it is
- used. A string value is converted to a numeric value by the equivalent
- of the following calls:
-
- setlocale(LC_NUMERIC, "");
- numeric_value = atof(string_value);
-
-
-
- A numeric value that is exactly equal to the value of an integer is
- converted to a string by the equivalent of a call to the sprintf func-
- tion with the string %d as the fmt argument and the numeric value being
- converted as the first and only expr argument. Any other numeric value
- is converted to a string by the equivalent of a call to the sprintf
- function with the value of the variable CONVFMT as the fmt argument and
- the numeric value being converted as the first and only expr argument.
-
-
- A string value is considered to be a numeric string in the following
- case:
-
- 1. Any leading and trailing blank characters is ignored.
-
-
- 2. If the first unignored character is a + or -, it is ignored.
-
-
- 3. If the remaining unignored characters would be lexically
- recognized as a NUMBER token, the string is considered a
- numeric string.
-
-
-
-
- If a - character is ignored in the above steps, the numeric value of
- the numeric string is the negation of the numeric value of the recog-
- nized NUMBER token. Otherwise the numeric value of the numeric string
- is the numeric value of the recognized NUMBER token. Whether or not a
- string is a numeric string is relevant only in contexts where that term
- is used in this section.
-
-
- When an expression is used in a Boolean context, if it has a numeric
- value, a value of zero is treated as false and any other value is
- treated as true. Otherwise, a string value of the null string is
- treated as false and any other value is treated as true. A Boolean con-
- text is one of the following:
-
- o the first subexpression of a conditional expression.
-
-
- o an expression operated on by logical NOT, logical AND, or
- logical OR.
-
-
- o the second expression of a for statement.
-
-
- o the expression of an if statement.
-
-
- o the expression of the while clause in either a while or do
- ... while statement.
-
-
- o an expression used as a pattern (as in Overall Program
- Structure).
-
-
-
- The nawk language supplies arrays that are used for storing numbers or
- strings. Arrays need not be declared. They are initially empty, and
- their sizes changes dynamically. The subscripts, or element identi-
- fiers, are strings, providing a type of associative array capability.
- An array name followed by a subscript within square brackets can be
- used as an lvalue and as an expression, as described in the grammar.
- Unsubscripted array names are used in only the following contexts:
-
- o a parameter in a function definition or function call.
-
-
- o the NAME token following any use of the keyword in.
-
-
-
- A valid array index consists of one or more comma-separated expres-
- sions, similar to the way in which multi-dimensional arrays are indexed
- in some programming languages. Because nawk arrays are really one-
- dimensional, such a comma-separated list is converted to a single
- string by concatenating the string values of the separate expressions,
- each separated from the other by the value of the SUBSEP variable.
-
-
- Thus, the following two index operations are equivalent:
-
- var[expr1, expr2, ... exprn]
- var[expr1 SUBSEP expr2 SUBSEP ... SUBSEP exprn]
-
-
-
- A multi-dimensioned index used with the in operator must be put in
- parentheses. The in operator, which tests for the existence of a par-
- ticular array element, does not create the element if it does not
- exist. Any other reference to a non-existent array element automati-
- cally creates it.
-
- Variables and Special Variables
- Variables can be used in an nawk program by referencing them. With the
- exception of function parameters, they are not explicitly declared.
- Uninitialized scalar variables and array elements have both a numeric
- value of zero and a string value of the empty string.
-
-
- Field variables are designated by a $ followed by a number or numerical
- expression. The effect of the field number expression evaluating to
- anything other than a non-negative integer is unspecified. Uninitial-
- ized variables or string values need not be converted to numeric values
- in this context. New field variables are created by assigning a value
- to them. References to non-existent fields (that is, fields after $NF)
- produce the null string. However, assigning to a non-existent field
- (for example, $(NF+2) = 5) increases the value of NF, create any inter-
- vening fields with the null string as their values and cause the value
- of $0 to be recomputed, with the fields being separated by the value of
- OFS. Each field variable has a string value when created. If the
- string, with any occurrence of the decimal-point character from the
- current locale changed to a period character, is considered a numeric
- string (see Expressions in nawk above), the field variable also has the
- numeric value of the numeric string.
-
- /usr/bin/nawk, /usr/xpg4/bin/awk
- nawk sets the following special variables that are supported by both
- /usr/bin/nawk and /usr/xpg4/bin/awk:
-
- ARGC
-
- The number of elements in the ARGV array.
-
-
- ARGV
-
- An array of command line arguments, excluding options and the pro-
- gram argument, numbered from zero to ARGC-1.
-
- The arguments in ARGV can be modified or added to; ARGC can be
- altered. As each input file ends, nawk treats the next non-null
- element of ARGV, up to the current value of ARGC-1, inclusive, as
- the name of the next input file. Setting an element of ARGV to null
- means that it is not treated as an input file. The name - indicates
- the standard input. If an argument matches the format of an assign-
- ment operand, this argument is treated as an assignment rather than
- a file argument.
-
-
- ENVIRON
-
- The variable ENVIRON is an array representing the value of the
- environment. The indices of the array are strings consisting of the
- names of the environment variables, and the value of each array
- element is a string consisting of the value of that variable. If
- the value of an environment variable is considered a numeric
- string, the array element also has its numeric value.
-
- In all cases where nawk behavior is affected by environment vari-
- ables (including the environment of any commands that nawk executes
- via the system function or via pipeline redirections with the print
- statement, the printf statement, or the getline function), the
- environment used is the environment at the time nawk began execut-
- ing.
-
-
- FILENAME
-
- A pathname of the current input file. Inside a BEGIN action the
- value is undefined. Inside an END action the value is the name of
- the last input file processed.
-
-
- FNR
-
- The ordinal number of the current record in the current file.
- Inside a BEGIN action the value is zero. Inside an END action the
- value is the number of the last record processed in the last file
- processed.
-
-
- FS
-
- Input field separator regular expression; a space character by
- default.
-
-
- NF
-
- The number of fields in the current record. Inside a BEGIN action,
- the use of NF is undefined unless a getline function without a var
- argument is executed previously. Inside an END action, NF retains
- the value it had for the last record read, unless a subsequent,
- redirected, getline function without a var argument is performed
- prior to entering the END action.
-
-
- NR
-
- The ordinal number of the current record from the start of input.
- Inside a BEGIN action the value is zero. Inside an END action the
- value is the number of the last record processed.
-
-
- OFMT
-
- The printf format for converting numbers to strings in output
- statements "%.6g" by default. The result of the conversion is
- unspecified if the value of OFMT is not a floating-point format
- specification.
-
-
- OFS
-
- The print statement output field separator; a space character by
- default.
-
-
- ORS
-
- The print output record separator; a newline character by default.
-
-
- LENGTH
-
- The length of the string matched by the match function.
-
-
- RS
-
- The first character of the string value of RS is the input record
- separator; a newline character by default. If RS contains more than
- one character, the results are unspecified. If RS is null, then
- records are separated by sequences of one or more blank lines.
- Leading or trailing blank lines do not produce empty records at the
- beginning or end of input, and the field separator is always new-
- line, no matter what the value of FS.
-
-
- RSTART
-
- The starting position of the string matched by the match function,
- numbering from 1. This is always equivalent to the return value of
- the match function.
-
-
- SUBSEP
-
- The subscript separator string for multi-dimensional arrays. The
- default value is \034.
-
-
- /usr/xpg4/bin/awk
- The following variable is supported for /usr/xpg4/bin/awk only:
-
- CONVFMT
-
- The printf format for converting numbers to strings (except for
- output statements, where OFMT is used). The default is %.6g.
-
-
- Regular Expressions
- The nawk utility uses the same regular expression notation as
- /usr/bin/egrep. For more information, see the egrep(1) man page.
-
-
- The /usr/xpg4/bin/awk utility makes use of the extended regular expres-
- sion notation (see regex(7)) except that it allows the use of C-lan-
- guage conventions to escape special characters within the EREs, namely
- \\, \a, \b, \f, \n, \r, \t, \v, and those specified in the following
- table. These escape sequences are recognized both inside and outside
- bracket expressions. Records need not be separated by newline charac-
- ters and string constants can contain newline characters, so even the
- \n sequence is valid in nawk EREs. Using a slash character within the
- regular expression requires escaping as shown in the table below:
-
-
- Escape Sequence Description Meaning
- -----------------------------------------------------------------------
- \" Backslash quotation-mark Quotation-mark character
- -----------------------------------------------------------------------
-
-
- \/ Backslash slash Slash character
- -----------------------------------------------------------------------
- \ddd A backslash character The character encoded by
- followed by the longest the one-, two- or three-
- sequence of one, two, or digit octal integer.
- three octal-digit char- Multi-byte characters
- acters (01234567). If require multiple, con-
- all of the digits are 0, catenated escape
- (that is, representation sequences, including the
- of the NULL character), leading \ for each byte.
- the behavior is unde-
- fined.
- -----------------------------------------------------------------------
- \c A backslash character Undefined
- followed by any charac-
- ter not described in
- this table or special
- characters (\\, \a, \b,
- \f, \n, \r, \t, \v).
-
-
-
- A regular expression can be matched against a specific field or string
- by using one of the two regular expression matching operators, ~ and
- !~. These operators interpret their right-hand operand as a regular
- expression and their left-hand operand as a string. If the regular
- expression matches the string, the ~ expression evaluates to the value
- 1, and the !~ expression evaluates to the value 0. If the regular
- expression does not match the string, the ~ expression evaluates to the
- value 0, and the !~ expression evaluates to the value 1. If the right-
- hand operand is any expression other than the lexical token ERE, the
- string value of the expression is interpreted as an extended regular
- expression, including the escape conventions described above. Notice
- that these same escape conventions also are applied in the determining
- the value of a string literal (the lexical token STRING), and is
- applied a second time when a string literal is used in this context.
-
-
- When an ERE token appears as an expression in any context other than as
- the right-hand of the ~ or !~ operator or as one of the built-in func-
- tion arguments described below, the value of the resulting expression
- is the equivalent of:
-
- $0 ~ /ere/
-
-
-
- The ere argument to the gsub, match, sub functions, and the fs argument
- to the split function (see String Functions) is interpreted as extended
- regular expressions. These can be either ERE tokens or arbitrary
- expressions, and are interpreted in the same manner as the right-hand
- side of the ~ or !~ operator.
-
-
- An extended regular expression can be used to separate fields by using
- the -F ERE option or by assigning a string containing the expression
- to the built-in variable FS. The default value of the FS variable is a
- single space character. The following describes FS behavior:
-
- 1. If FS is a single character:
-
- o If FS is the space character, skip leading and trailing
- blank characters; fields are delimited by sets of one or
- more blank characters.
-
-
- o Otherwise, if FS is any other character c, fields are
- delimited by each single occurrence of c.
-
-
-
- 2. Otherwise, the string value of FS is considered to be an
- extended regular expression. Each occurrence of a sequence
- matching the extended regular expression delimits fields.
-
-
-
-
- Except in the gsub, match, split, and sub built-in functions, regular
- expression matching is based on input records. That is, record separa-
- tor characters (the first character of the value of the variable RS, a
- newline character by default) cannot be embedded in the expression, and
- no expression matches the record separator character. If the record
- separator is not a newline character, newline characters embedded in
- the expression can be matched. In those four built-in functions, regu-
- lar expression matching are based on text strings. So, any character
- (including the newline character and the record separator) can be
- embedded in the pattern and an appropriate pattern matches any charac-
- ter. However, in all nawk regular expression matching, the use of one
- or more NULL characters in the pattern, input record or text string
- produces undefined results.
-
- Patterns
- A pattern is any valid expression, a range specified by two expressions
- separated by comma, or one of the two special patterns BEGIN or END.
-
- Special Patterns
- The nawk utility recognizes two special patterns, BEGIN and END. Each
- BEGIN pattern is matched once and its associated action executed before
- the first record of input is read (except possibly by use of the get-
- line function in a prior BEGIN action) and before command line assign-
- ment is done. Each END pattern is matched once and its associated
- action executed after the last record of input has been read. These two
- patterns have associated actions.
-
-
- BEGIN and END do not combine with other patterns. Multiple BEGIN and
- END patterns are allowed. The actions associated with the BEGIN pat-
- terns are executed in the order specified in the program, as are the
- END actions. An END pattern can precede a BEGIN pattern in a program.
-
-
- If an nawk program consists of only actions with the pattern BEGIN, and
- the BEGIN action contains no getline function, nawk exits without read-
- ing its input when the last statement in the last BEGIN action is exe-
- cuted. If an nawk program consists of only actions with the pattern END
- or only actions with the patterns BEGIN and END, the input is read
- before the statements in the END actions are executed.
-
- Expression Patterns
- An expression pattern is evaluated as if it were an expression in a
- Boolean context. If the result is true, the pattern is considered to
- match, and the associated action (if any) is executed. If the result is
- false, the action is not executed.
-
- Pattern Ranges
- A pattern range consists of two expressions separated by a comma. In
- this case, the action is performed for all records between a match of
- the first expression and the following match of the second expression,
- inclusive. At this point, the pattern range can be repeated starting at
- input records subsequent to the end of the matched range.
-
- Actions
- An action is a sequence of statements. A statement can be one of the
- following:
-
- if ( expression ) statement [ else statement ]
- while ( expression ) statement
- do statement while ( expression )
- for ( expression ; expression ; expression ) statement
- for ( var in array ) statement
- delete array[subscript] #delete an array element
- break
- continue
- { [ statement ] ... }
- expression # commonly variable = expression
- print [ expression-list ] [ >expression ]
- printf format [ ,expression-list ] [ >expression ]
- next # skip remaining patterns on this input line
- exit [expr] # skip the rest of the input; exit status is expr
- return [expr]
-
-
-
- Any single statement can be replaced by a statement list enclosed in
- braces. The statements are terminated by newline characters or semi-
- colons, and are executed sequentially in the order that they appear.
-
-
- The next statement causes all further processing of the current input
- record to be abandoned. The behavior is undefined if a next statement
- appears or is invoked in a BEGIN or END action.
-
-
- The exit statement invokes all END actions in the order in which they
- occur in the program source and then terminate the program without
- reading further input. An exit statement inside an END action termi-
- nates the program without further execution of END actions. If an
- expression is specified in an exit statement, its numeric value is the
- exit status of nawk, unless subsequent errors are encountered or a sub-
- sequent exit statement with an expression is executed.
-
- Output Statements
- Both print and printf statements write to standard output by default.
- The output is written to the location specified by output_redirection
- if one is supplied, as follows:
-
- > expression >> expression | expression
-
-
-
- In all cases, the expression is evaluated to produce a string that is
- used as a full pathname to write into (for > or >>) or as a command to
- be executed (for |). Using the first two forms, if the file of that
- name is not currently open, it is opened, creating it if necessary and
- using the first form, truncating the file. The output then is appended
- to the file. As long as the file remains open, subsequent calls in
- which expression evaluates to the same string value simply appends out-
- put to the file. The file remains open until the close function, which
- is called with an expression that evaluates to the same string value.
-
-
- The third form writes output onto a stream piped to the input of a com-
- mand. The stream is created if no stream is currently open with the
- value of expression as its command name. The stream created is equiva-
- lent to one created by a call to the popen(3C) function with the value
- of expression as the command argument and a value of w as the mode
- argument. As long as the stream remains open, subsequent calls in which
- expression evaluates to the same string value writes output to the
- existing stream. The stream remains open until the close function is
- called with an expression that evaluates to the same string value. At
- that time, the stream is closed as if by a call to the pclose function.
-
-
- These output statements take a comma-separated list of expression s
- referred in the grammar by the non-terminal symbols expr_list,
- print_expr_list or print_expr_list_opt. This list is referred to here
- as the expression list, and each member is referred to as an expression
- argument.
-
-
- The print statement writes the value of each expression argument onto
- the indicated output stream separated by the current output field sepa-
- rator (see variable OFS above), and terminated by the output record
- separator (see variable ORS above). All expression arguments is taken
- as strings, being converted if necessary; with the exception that the
- printf format in OFMT is used instead of the value in CONVFMT. An empty
- expression list stands for the whole input record ($0).
-
-
- The printf statement produces output based on a notation similar to the
- File Format Notation used to describe file formats in this document
- Output is produced as specified with the first expression argument as
- the string format and subsequent expression arguments as the strings
- arg1 to argn, inclusive, with the following exceptions:
-
- 1. The format is an actual character string rather than a
- graphical representation. Therefore, it cannot contain empty
- character positions. The space character in the format
- string, in any context other than a flag of a conversion
- specification, is treated as an ordinary character that is
- copied to the output.
-
-
- 2. If the character set contains a Delta character and that
- character appears in the format string, it is treated as an
- ordinary character that is copied to the output.
-
-
- 3. The escape sequences beginning with a backslash character is
- treated as sequences of ordinary characters that are copied
- to the output. Note that these same sequences is interpreted
- lexically by nawk when they appear in literal strings, but
- they is not treated specially by the printf statement.
-
-
- 4. A field width or precision can be specified as the * charac-
- ter instead of a digit string. In this case the next argu-
- ment from the expression list is fetched and its numeric
- value taken as the field width or precision.
-
-
- 5. The implementation does not precede or follow output from
- the d or u conversion specifications with blank characters
- not specified by the format string.
-
-
- 6. The implementation does not precede output from the o con-
- version specification with leading zeros not specified by
- the format string.
-
-
- 7. For the c conversion specification: if the argument has a
- numeric value, the character whose encoding is that value is
- output. If the value is zero or is not the encoding of any
- character in the character set, the behavior is undefined.
- If the argument does not have a numeric value, the first
- character of the string value is output; if the string does
- not contain any characters the behavior is undefined.
-
-
- 8. For each conversion specification that consumes an argument,
- the next expression argument is evaluated. With the excep-
- tion of the c conversion, the value is converted to the
- appropriate type for the conversion specification.
-
-
- 9. If there are insufficient expression arguments to satisfy
- all the conversion specifications in the format string, the
- behavior is undefined.
-
-
- 10. If any character sequence in the format string begins with a
- % character, but does not form a valid conversion specifica-
- tion, the behavior is unspecified.
-
-
-
-
- Both print and printf can output at least {LINE_MAX} bytes.
-
- Functions
- The nawk language has a variety of built-in functions: arithmetic,
- string, input/output and general.
-
- Arithmetic Functions
- The arithmetic functions, except for int, are based on the ISO C stan-
- dard. The behavior is undefined in cases where the ISO C standard
- specifies that an error be returned or that the behavior is undefined.
- Although the grammar permits built-in functions to appear with no argu-
- ments or parentheses, unless the argument or parentheses are indicated
- as optional in the following list (by displaying them within the [ ]
- brackets), such use is undefined.
-
- atan2(y,x) Return arctangent of y/x.
-
-
- cos(x) Return cosine of x, where x is in radians.
-
-
- sin(x) Return sine of x, where x is in radians.
-
-
- exp(x) Return the exponential function of x.
-
-
- log(x) Return the natural logarithm of x.
-
-
- sqrt(x) Return the square root of x.
-
-
- int(x) Truncate its argument to an integer. It is truncated
- toward 0 when x > 0.
-
-
- rand() Return a random number n, such that 0 <= n < 1.
-
-
- srand([expr]) Set the seed value for rand to expr or use the time of
- day if expr is omitted. The previous seed value is
- returned.
-
-
- String Functions
- The string functions in the following list shall be supported. Although
- the grammar permits built-in functions to appear with no arguments or
- parentheses, unless the argument or parentheses are indicated as
- optional in the following list (by displaying them within the [ ]
- brackets), such use is undefined.
-
- gsub(ere,repl[,in])
-
- Behave like sub (see below), except that it replaces all occur-
- rences of the regular expression (like the ed utility global sub-
- stitute) in $0 or in the in argument, when specified.
-
-
- index(s,t)
-
- Return the position, in characters, numbering from 1, in string s
- where string t first occurs, or zero if it does not occur at all.
-
-
- length[([s])]
-
- Return the length, in characters, of its argument taken as a
- string, or of the whole record, $0, if there is no argument.
-
-
- match(s,ere)
-
- Return the position, in characters, numbering from 1, in string s
- where the extended regular expression ere occurs, or zero if it
- does not occur at all. RSTART is set to the starting position
- (which is the same as the returned value), zero if no match is
- found; RLENGTH is set to the length of the matched string, -1 if no
- match is found.
-
-
- split(s,a[,fs])
-
- Split the string s into array elements a[1], a[2], ..., a[n], and
- return n. The separation is done with the extended regular expres-
- sion fs or with the field separator FS if fs is not given. Each
- array element has a string value when created. If the string
- assigned to any array element, with any occurrence of the decimal-
- point character from the current locale changed to a period charac-
- ter, would be considered a numeric string; the array element also
- has the numeric value of the numeric string. The effect of a null
- string as the value of fs is unspecified.
-
-
- sprintf(fmt,expr,expr,...)
-
- Format the expressions according to the printf format given by fmt
- and return the resulting string.
-
-
- sub(ere,repl[,in])
-
- Substitute the string repl in place of the first instance of the
- extended regular expression ERE in string in and return the number
- of substitutions. An ampersand ( & ) appearing in the string repl
- is replaced by the string from in that matches the regular expres-
- sion. An ampersand preceded with a backslash ( \ ) is interpreted
- as the literal ampersand character. An occurrence of two consecu-
- tive backslashes is interpreted as just a single literal backslash
- character. Any other occurrence of a backslash (for example, pre-
- ceding any other character) is treated as a literal backslash char-
- acter. If repl is a string literal, the handling of the ampersand
- character occurs after any lexical processing, including any lexi-
- cal backslash escape sequence processing. If in is specified and it
- is not an lvalue the behavior is undefined. If in is omitted, nawk
- uses the current record ($0) in its place.
-
-
- substr(s,m[,n])
-
- Return the at most n-character substring of s that begins at posi-
- tion m, numbering from 1. If n is missing, the length of the sub-
- string is limited by the length of the string s.
-
-
- tolower(s)
-
- Return a string based on the string s. Each character in s that is
- an upper-case letter specified to have a tolower mapping by the
- LC_CTYPE category of the current locale is replaced in the returned
- string by the lower-case letter specified by the mapping. Other
- characters in s are unchanged in the returned string.
-
-
- toupper(s)
-
- Return a string based on the string s. Each character in s that is
- a lower-case letter specified to have a toupper mapping by the
- LC_CTYPE category of the current locale is replaced in the returned
- string by the upper-case letter specified by the mapping. Other
- characters in s are unchanged in the returned string.
-
-
-
- All of the preceding functions that take ERE as a parameter expect a
- pattern or a string valued expression that is a regular expression as
- defined below.
-
- Input/Output and General Functions
- The input/output and general functions are:
-
- close(expression)
-
- Close the file or pipe opened by a print or printf statement or a
- call to getline with the same string-valued expression. If the
- close was successful, the function returns 0; otherwise, it returns
- non-zero.
-
-
- expression|getline[var]
-
- Read a record of input from a stream piped from the output of a
- command. The stream is created if no stream is currently open with
- the value of expression as its command name. The stream created is
- equivalent to one created by a call to the popen function with the
- value of expression as the command argument and a value of r as the
- mode argument. As long as the stream remains open, subsequent calls
- in which expression evaluates to the same string value reads subse-
- quent records from the file. The stream remains open until the
- close function is called with an expression that evaluates to the
- same string value. At that time, the stream is closed as if by a
- call to the pclose function. If var is missing, $0 and NF is set.
- Otherwise, var is set.
-
- The getline operator can form ambiguous constructs when there are
- operators that are not in parentheses (including concatenate) to
- the left of the | (to the beginning of the expression containing
- getline). In the context of the $ operator, | behaves as if it had
- a lower precedence than $. The result of evaluating other operators
- is unspecified, and all such uses of portable applications must be
- put in parentheses properly.
-
-
- getline
-
- Set $0 to the next input record from the current input file. This
- form of getline sets the NF, NR, and FNR variables.
-
-
- getline var
-
- Set variable var to the next input record from the current input
- file. This form of getline sets the FNR and NR variables.
-
-
- getline [var] < expression
-
- Read the next record of input from a named file. The expression is
- evaluated to produce a string that is used as a full pathname. If
- the file of that name is not currently open, it is opened. As long
- as the stream remains open, subsequent calls in which expression
- evaluates to the same string value reads subsequent records from
- the file. The file remains open until the close function is called
- with an expression that evaluates to the same string value. If var
- is missing, $0 and NF is set. Otherwise, var is set.
-
- The getline operator can form ambiguous constructs when there are
- binary operators that are not in parentheses (including concate-
- nate) to the right of the < (up to the end of the expression con-
- taining the getline). The result of evaluating such a construct is
- unspecified, and all such uses of portable applications must be put
- in parentheses properly.
-
-
- system(expression)
-
- Execute the command given by expression in a manner equivalent to
- the system(3C) function and return the exit status of the command.
-
-
-
- All forms of getline return 1 for successful input, 0 for end of file,
- and -1 for an error.
-
-
- Where strings are used as the name of a file or pipeline, the strings
- must be textually identical. The terminology "same string value"
- implies that "equivalent strings", even those that differ only by space
- characters, represent different files.
-
- User-defined Functions
- The nawk language also provides user-defined functions. Such functions
- can be defined as:
-
- function name(args,...) { statements }
-
-
-
- A function can be referred to anywhere in an nawk program; in particu-
- lar, its use can precede its definition. The scope of a function is
- global.
-
-
- Function arguments can be either scalars or arrays; the behavior is
- undefined if an array name is passed as an argument that the function
- uses as a scalar, or if a scalar expression is passed as an argument
- that the function uses as an array. Function arguments are passed by
- value if scalar and by reference if array name. Argument names are
- local to the function; all other variable names are global. The same
- name is not used as both an argument name and as the name of a function
- or a special nawk variable. The same name must not be used both as a
- variable name with global scope and as the name of a function. The same
- name must not be used within the same scope both as a scalar variable
- and as an array.
-
-
- The number of parameters in the function definition need not match the
- number of parameters in the function call. Excess formal parameters can
- be used as local variables. If fewer arguments are supplied in a func-
- tion call than are in the function definition, the extra parameters
- that are used in the function body as scalars are initialized with a
- string value of the null string and a numeric value of zero, and the
- extra parameters that are used in the function body as arrays are ini-
- tialized as empty arrays. If more arguments are supplied in a function
- call than are in the function definition, the behavior is undefined.
-
-
- When invoking a function, no white space can be placed between the
- function name and the opening parenthesis. Function calls can be nested
- and recursive calls can be made upon functions. Upon return from any
- nested or recursive function call, the values of all of the calling
- function's parameters are unchanged, except for array parameters passed
- by reference. The return statement can be used to return a value. If a
- return statement appears outside of a function definition, the behavior
- is undefined.
-
-
- In the function definition, newline characters are optional before the
- opening brace and after the closing brace. Function definitions can
- appear anywhere in the program where a pattern-action pair is allowed.
-
-USAGE
- The index, length, match, and substr functions should not be confused
- with similar functions in the ISO C standard; the nawk versions deal
- with characters, while the ISO C standard deals with bytes.
-
-
- Because the concatenation operation is represented by adjacent expres-
- sions rather than an explicit operator, it is often necessary to use
- parentheses to enforce the proper evaluation precedence.
-
-EXAMPLES
- The nawk program specified in the command line is most easily specified
- within single-quotes (for example, 'program') for applications using
- sh, because nawk programs commonly contain characters that are special
- to the shell, including double-quotes. In the cases where a nawk pro-
- gram contains single-quote characters, it is usually easiest to specify
- most of the program as strings within single-quotes concatenated by the
- shell with quoted single-quote characters. For example:
-
- nawk '/'\''/ { print "quote:", $0 }'
-
-
-
- prints all lines from the standard input containing a single-quote
- character, prefixed with quote:.
-
-
- The following are examples of simple nawk programs:
-
- Example 1 Write to the standard output all input lines for which field
- 3 is greater than 5:
-
-
- $3 > 5
-
-
- Example 2 Write every tenth line:
-
-
- (NR % 10) == 0
-
-
- Example 3 Write any line with a substring matching the regular expres-
- sion:
-
-
- /(G|D)(2[0-9][[:alpha:]]*)/
-
-
- Example 4 Print any line with a substring containing a G or D, followed
- by a sequence of digits and characters:
-
-
-
- This example uses character classes digit and alpha to match language-
- independent digit and alphabetic characters, respectively.
-
-
- /(G|D)([[:digit:][:alpha:]]*)/
-
-
- Example 5 Write any line in which the second field matches the regular
- expression and the fourth field does not:
-
-
- $2 ~ /xyz/ && $4 !~ /xyz/
-
-
- Example 6 Write any line in which the second field contains a back-
- slash:
-
-
- $2 ~ /\\/
-
-
- Example 7 Write any line in which the second field contains a backslash
- (alternate method):
-
-
-
- Notice that backslash escapes are interpreted twice, once in lexical
- processing of the string and once in processing the regular expression.
-
-
- $2 ~ "\\\\"
-
-
- Example 8 Write the second to the last and the last field in each line,
- separating the fields by a colon:
-
-
- {OFS=":";print $(NF-1), $NF}
-
-
- Example 9 Write the line number and number of fields in each line:
-
-
-
- The three strings representing the line number, the colon and the num-
- ber of fields are concatenated and that string is written to standard
- output.
-
-
- {print NR ":" NF}
-
-
- Example 10 Write lines longer than 72 characters:
-
-
- {length($0) > 72}
-
-
- Example 11 Write first two fields in opposite order separated by the
- OFS:
-
-
- { print $2, $1 }
-
-
- Example 12 Same, with input fields separated by comma or space and tab
- characters, or both:
-
-
- BEGIN { FS = ",[\t]*|[\t]+" }
- { print $2, $1 }
-
-
- Example 13 Add up first column, print sum and average:
-
-
- {s += $1 }
- END {print "sum is ", s, " average is", s/NR}
-
-
- Example 14 Write fields in reverse order, one per line (many lines out
- for each line in):
-
-
- { for (i = NF; i > 0; --i) print $i }
-
-
- Example 15 Write all lines between occurrences of the strings "start"
- and "stop":
-
-
- /start/, /stop/
-
-
- Example 16 Write all lines whose first field is different from the pre-
- vious one:
-
-
- $1 != prev { print; prev = $1 }
-
-
- Example 17 Simulate the echo command:
-
-
- BEGIN {
- for (i = 1; i < ARGC; ++i)
- printf "%s%s", ARGV[i], i==ARGC-1?"\n":""
- }
-
-
- Example 18 Write the path prefixes contained in the PATH environment
- variable, one per line:
-
-
- BEGIN {
- n = split (ENVIRON["PATH"], path, ":")
- for (i = 1; i <= n; ++i)
- print path[i]
- }
-
-
- Example 19 Print the file "input", filling in page numbers starting at
- 5:
-
-
-
- If there is a file named input containing page headers of the form
-
-
- Page#
-
-
-
-
- and a file named program that contains
-
-
- /Page/{ $2 = n++; }
- { print }
-
-
-
-
- then the command line
-
-
- nawk -f program n=5 input
-
-
-
-
- prints the file input, filling in page numbers starting at 5.
-
-ENVIRONMENT VARIABLES
- See environ(7) for descriptions of the following environment variables
- that affect execution: LC_COLLATE, LC_CTYPE, LC_MESSAGES, and NLSPATH.
-
- LC_NUMERIC
-
- Determine the radix character used when interpreting numeric input,
- performing conversions between numeric and string values and for-
- matting numeric output. Regardless of locale, the period character
- (the decimal-point character of the POSIX locale) is the decimal-
- point character recognized in processing awk programs (including
- assignments in command-line arguments).
-
-
-EXIT STATUS
- The following exit values are returned:
-
- 0 All input files were processed successfully.
-
-
- > 0 An error occurred.
-
-
-
- The exit status can be altered within the program by using an exit
- expression.
-
-ATTRIBUTES
- See attributes(7) for descriptions of the following attributes:
-
- /usr/bin/nawk
- +-----------------------------+-----------------------------+
- | ATTRIBUTE TYPE | ATTRIBUTE VALUE |
- +-----------------------------+-----------------------------+
- |Availability |system/core-os |
- +-----------------------------+-----------------------------+
-
- /usr/xpg4/bin/awk
- +-----------------------------+-----------------------------+
- | ATTRIBUTE TYPE | ATTRIBUTE VALUE |
- +-----------------------------+-----------------------------+
- |Availability |system/xopen/xcu4 |
- +-----------------------------+-----------------------------+
-
-SEE ALSO
- awk(1), ed(1), egrep(1), grep(1), lex(1), sed(1), popen(3C),
- printf(3C), system(3C), XPG4(7), attributes(7), environ(7), regex(7)
-
-
- Aho, A. V., B. W. Kernighan, and P. J. Weinberger, The AWK Programming
- Language, Addison-Wesley, 1988.
-
-DIAGNOSTICS
- If any file operand is specified and the named file cannot be accessed,
- nawk writes a diagnostic message to standard error and terminate with-
- out any further action.
-
-
- If the program specified by either the program operand or a progfile
- operand is not a valid nawk program (as specified in EXTENDED DESCRIP-
- TION), the behavior is undefined.
-
-NOTES
- Input white space is not preserved on output if fields are involved.
-
-
- There are no explicit conversions between numbers and strings. To force
- an expression to be treated as a number add 0 to it; to force it to be
- treated as a string concatenate the null string ("") to it.
-
-
-
-Oracle Solaris 11.4 15 Jun 2020 nawk(1)
diff -Nurwb 11.4.30/man1/oawk.1 11.4.33/man1/oawk.1
--- 11.4.30/man1/oawk.1 2021-05-19 16:10:28.830115087 +0000
+++ 11.4.33/man1/oawk.1 2021-05-19 16:11:41.509947830 +0000
@@ -410,4 +410,4 @@
-Oracle Solaris 11.4 04 Jan 2021 oawk(1)
+Oracle Solaris 11.4 11 Feb 2021 oawk(1)
diff -Nurwb 11.4.30/man1/radadrgen.1 11.4.33/man1/radadrgen.1
--- 11.4.30/man1/radadrgen.1 2021-05-19 16:10:28.840149809 +0000
+++ 11.4.33/man1/radadrgen.1 2021-05-19 16:11:41.513532024 +0000
@@ -72,6 +72,16 @@
Reports written filenames.
+ -J {legacy,camel}, --java-method-names {legacy,camel}
+
+ A private option to switch between a legacy Java method naming
+ scheme where interface property and struct field accessors are
+ named e.g. (get|set)Propertywithlongname() and a camel case one
+ where the same method would be (get|set)PropertyWithLongName().
+
+ When omitted, legacy is the default.
+
+
OPERANDS
The following operand must be specified on the command line:
@@ -162,4 +172,4 @@
-Oracle Solaris 11.4 08 Jan 2019 radadrgen(1)
+Oracle Solaris 11.4 05 Feb 2021 radadrgen(1)
diff -Nurwb 11.4.30/man1/split.1 11.4.33/man1/split.1
--- 11.4.30/man1/split.1 2021-05-19 16:10:28.844019579 +0000
+++ 11.4.33/man1/split.1 2021-05-19 16:11:41.526448190 +0000
@@ -10,7 +10,7 @@
[file [name]]
- split [-b n | nk | nm | ng | nt ] [-a suffixlength] [file [name]]
+ split [-b n | nk | nm] [-a suffixlength] [file [name]]
DESCRIPTION
The split utility reads file and writes it in linecount-line pieces
@@ -39,11 +39,19 @@
no files will be created.
- -b n [k|m|g|t]
+ -b n
- Splits a file into pieces of the given number of bytes. The size is
- bytes by default but size can be specified as a number of kilo-
- bytes(k), megabytes(m), gigabytes(g), or terabytes(t).
+ Splits a file into pieces n bytes in size.
+
+
+ -b nk
+
+ Splits a file into pieces n*1024 bytes in size.
+
+
+ -b nm
+
+ Splits a file into pieces n*1048576 bytes in size.
OPERANDS
@@ -95,4 +103,4 @@
-Oracle Solaris 11.4 24 Jul 2020 split(1)
+Oracle Solaris 11.4 4 Feb 2015 split(1)
diff -Nurwb 11.4.30/man2/chmod.2 11.4.33/man2/chmod.2
--- 11.4.30/man2/chmod.2 2021-05-19 16:10:28.848948519 +0000
+++ 11.4.33/man2/chmod.2 2021-05-19 16:11:41.547659272 +0000
@@ -123,7 +123,9 @@
file descriptor was opened without O_SEARCH, the function checks
whether directory searches are permitted using the current permissions
of the directory underlying the file descriptor. If the file descriptor
- was opened with O_SEARCH, the function does not perform the check.
+ was opened with O_SEARCH, the function does not perform the check. If
+ fchmodat() is passed the special value AT_FDCWD in the fd parameter,
+ the current working directory is used.
Values for flag are constructed by a bitwise-inclusive OR of flags from
@@ -134,9 +136,7 @@
- If fchmodat() is passed the special value AT_FDCWD in the fd parameter,
- the current working directory is used. If flag is also 0, the behavior
- shall be identical to a call to chmod().
+ If flag is 0, the behavior shall be identical to a call to chmod().
RETURN VALUES
Upon successful completion, 0 is returned. Otherwise, -1 is returned,
@@ -381,4 +381,4 @@
-Oracle Solaris 11.4 1 May 2020 chmod(2)
+Oracle Solaris 11.4 2 Mar 2021 chmod(2)
diff -Nurwb 11.4.30/man2/chown.2 11.4.33/man2/chown.2
--- 11.4.30/man2/chown.2 2021-05-19 16:10:28.855303047 +0000
+++ 11.4.33/man2/chown.2 2021-05-19 16:11:41.551827142 +0000
@@ -22,10 +22,10 @@
gid_t group, int flag);
DESCRIPTION
- The chown() function sets the owner ID and group ID of the file speci-
- fied by path or referenced by the open file descriptor fildes to owner
- and group respectively. If owner or group is specified as -1, chown()
- does not change the corresponding ID of the file.
+ The chown() and fchown() functions set the owner ID and group ID of the
+ file specified by path or referenced by the open file descriptor fildes
+ to owner and group respectively. If owner or group is specified as -1,
+ these functions do not change the corresponding ID of the file.
The lchown() function sets the owner ID and group ID of the named file
@@ -40,10 +40,17 @@
relative, the path is resolved relative to the fildes argument rather
than the current working directory. If the fildes argument has the spe-
cial value AT_FDCWD, the path resolution reverts back to current work-
- ing directory relative. If the flag argument is set to SYMLNK, the
- function behaves like lchown() with respect to symbolic links. If the
- path argument is absolute, the fildes argument is ignored. If the path
- argument is a null pointer, the function behaves like fchown().
+ ing directory relative. If the path argument is absolute, the fildes
+ argument is ignored. If the path argument is a null pointer, the func-
+ tion behaves like fchown().
+
+
+ Values for flag are constructed by a bitwise-inclusive OR of flags from
+ the following list, defined in <fcntl.h>:
+
+ AT_SYMLINK_NOFOLLOW If path names a symbolic link, then ownership of
+ the symbolic link is changed, as in lchown().
+
If chown(), lchown(), fchown(), or fchownat() is invoked by a process
@@ -73,8 +80,8 @@
except for files owned by uid 0.
- Upon successful completion, chown(), fchown() and lchown() mark for
- update the st_ctime field of the file.
+ Upon successful completion, chown(), fchown(), fchownat(), and lchown()
+ mark for update the st_ctime field of the file.
RETURN VALUES
Upon successful completion, 0 is returned. Otherwise, -1 is returned,
@@ -168,6 +175,12 @@
file system.
+USAGE
+ The ability to specify a null path argument to the fchownat() function
+ is a Solaris extension not specified by the standards, and may not be
+ portable to other systems. Use the fchown() function for greater porta-
+ bility when changing the ownership of an open file descriptor.
+
ATTRIBUTES
See attributes(7) for descriptions of the following attributes:
@@ -186,12 +199,41 @@
The chown() and fchownat() functions are Async-Signal-Safe.
- For chown(), fchown(), and lchown(), see standards(7).
+ See standards(7) for descriptions of the following standards:
+
+
+ +-----------------------+-----------------------------------+
+ | INTERFACES | APPLICABLE STANDARDS |
+ +-----------------------+-----------------------------------+
+ | chown() | |
+ | | POSIX.1-1990 through 2008, |
+ | | SUS through SUSv4, |
+ | | XPG1 through XPG7 |
+ | | |
+ +-----------------------+-----------------------------------+
+ | fchown() | POSIX.1-2001 through 2008, |
+ | lchown() | SUS through SUSv4, |
+ | | XPG4v2 through XPG7 |
+ | | |
+ +-----------------------+-----------------------------------+
+ | fchownat() | |
+ | | POSIX.1-2008, |
+ | | SUSv4, |
+ | | XPG7 |
+ | | |
+ +-----------------------+-----------------------------------+
SEE ALSO
chgrp(1), chown(1), chmod(2), fpathconf(2), system(5), attributes(7),
- standards(7)
+ privileges(7), standards(7)
+
+HISTORY
+ The chown(), fchown(), and lchown() functions have been included in all
+ Sun and Oracle releases of Solaris.
+
+
+ The fchownat() function was added to Solaris in the Solaris 9 release.
-Oracle Solaris 11.4 15 Sep 2010 chown(2)
+Oracle Solaris 11.4 12 Mar 2021 chown(2)
diff -Nurwb 11.4.30/man2/memcntl.2 11.4.33/man2/memcntl.2
--- 11.4.30/man2/memcntl.2 2021-05-19 16:10:28.875171667 +0000
+++ 11.4.33/man2/memcntl.2 2021-05-19 16:11:41.556700454 +0000
@@ -462,6 +462,9 @@
memory or the total amount of system memory is temporarily
insufficient to allocate ADI metadata.
+ The cmd is MC_LOCK_GRANULE and the memory identified by this
+ operation would exceed a limit or resource control.
+
EBUSY When the selection criteria match, some or all of the
addresses in the range [addr, addr + len) are locked and
@@ -560,4 +563,4 @@
-Oracle Solaris 11.4 12 June 2019 memcntl(2)
+Oracle Solaris 11.4 15 Jan 2021 memcntl(2)
diff -Nurwb 11.4.30/man2/processor_affinity.2 11.4.33/man2/processor_affinity.2
--- 11.4.30/man2/processor_affinity.2 2021-05-19 16:10:28.879219771 +0000
+++ 11.4.33/man2/processor_affinity.2 2021-05-19 16:11:41.579107780 +0000
@@ -173,10 +173,6 @@
ferent processor set.
- EINVAL The location pointed to by ps, nids, ids or flags could not
- be accessed.
-
-
EPERM The {PRIV_PROC_OWNER} privilege is not asserted in the effec-
tive set of the calling process and its real or effective
user ID does not match the real or effective user ID of one
@@ -364,10 +360,11 @@
+-----------------------------+-----------------------------+
SEE ALSO
- attributes(7), exec(2), fork(2), lgrpinfo(1), pginfo(8), privileges(7),
- processor_bind(2), processor_info(2), procset.h(3HEAD), pset_bind(2),
- pset_create(2), psradm(8), psrinfo(8), psrset(8), thr_create(3C)
+ lgrpinfo(1), exec(2), fork(2), processor_bind(2), processor_info(2),
+ pset_bind(2), pset_create(2), thr_create(3C), procset.h(3HEAD),
+ attributes(7), privileges(7), pginfo(8), psradm(8), psrinfo(8),
+ psrset(8)
-Oracle Solaris 11.4 25 Mar 2020 processor_affinity(2)
+Oracle Solaris 11.4 22 Feb 2021 processor_affinity(2)
diff -Nurwb 11.4.30/man2/processor_bind.2 11.4.33/man2/processor_bind.2
--- 11.4.30/man2/processor_bind.2 2021-05-19 16:10:28.882375988 +0000
+++ 11.4.33/man2/processor_bind.2 2021-05-19 16:11:41.582494142 +0000
@@ -11,7 +11,7 @@
#include <sys/procset.h>
int processor_bind(idtype_t idtype, id_t id, processorid_t new_binding,
- processorid_t **old_binding);
+ processorid_t *old_binding);
DESCRIPTION
The processor_bind() function binds the LWP (lightweight process) or
@@ -128,4 +128,4 @@
-Oracle Solaris 11.4 13 Mar 2009 processor_bind(2)
+Oracle Solaris 11.4 22 Feb 2021 processor_bind(2)
diff -Nurwb 11.4.30/man3c/accept.3c 11.4.33/man3c/accept.3c
--- 11.4.30/man3c/accept.3c 2021-05-19 16:10:28.885787833 +0000
+++ 11.4.33/man3c/accept.3c 2021-05-19 16:11:41.585803593 +0000
@@ -16,16 +16,16 @@
DESCRIPTION
The accept() function extracts the first connection on the queue of
- pending connections, creates a new socket with the same socket type
- protocol and address family as the specified socket, and allocates a
+ pending connections, creates a new socket with the same socket type,
+ protocol, and address family as the specified socket, and allocates a
new file descriptor for that socket.
The function takes the following arguments:
- socket Specifies a socket that was created with socket(3C), has
- been bound to an address with bind(3C), and has issued a
- successful call to listen(3C).
+ socket A socket created with socket(3C), bound to an address
+ with bind(3C), and in the LISTEN state after a success-
+ ful call to listen(3C).
address Either a null pointer, or a pointer to a sockaddr struc-
@@ -135,8 +135,8 @@
EINVAL The socket is not accepting connections.
- EMFILE OPEN_MAX file descriptors are currently open in the
- calling process.
+ EMFILE The per-process limit of file descriptors are already
+ open in the calling process.
ENFILE The maximum number of file descriptors in the system
@@ -156,11 +156,11 @@
ENOBUFS No buffer space is available.
- ENOMEM There was insufficient memory available to complete the
- operation.
+ ENOMEM There is insufficient memory available to complete the oper-
+ ation.
- ENOSR There was insufficient STREAMS resources available to com-
+ ENOSR There are insufficient STREAMS resources available to com-
plete the operation.
@@ -186,6 +186,14 @@
bind(3C), connect(3C), listen(3C), socket(3C), attributes(7), stan-
dards(7)
+HISTORY
+ The accept() function has been present since the initial release of
+ Solaris.
-Oracle Solaris 11.4 22 Jan 2018 accept(3C)
+ The accept4() function was added to Oracle Solaris in the Solaris
+ 11.4.0 release.
+
+
+
+Oracle Solaris 11.4 2 Feb 2021 accept(3C)
diff -Nurwb 11.4.30/man3c/bind.3c 11.4.33/man3c/bind.3c
--- 11.4.30/man3c/bind.3c 2021-05-19 16:10:28.888915447 +0000
+++ 11.4.33/man3c/bind.3c 2021-05-19 16:11:41.591310241 +0000
@@ -39,6 +39,14 @@
An application program can retrieve the assigned socket name with the
getsockname(3C) function.
+
+ The special value INADDR_ANY may be specified as the sin_addr field of
+ the sockaddr_in structure as a wildcard value matching any IPv4 address
+ on the local machine. For IPv6 sockets, the special value in6addr_any
+ performs the same function when specified as the sin6_addr field of the
+ sockaddr_in6 structure. See the inet(4P) and inet6(4P) manual pages for
+ further details.
+
RETURN VALUES
Upon successful completion, bind() returns 0. Otherwise, -1 is returned
and errno is set to indicate the error.
@@ -54,7 +62,9 @@
EAFNOSUPPORT The specified address is not a valid address for the
- address family of the specified socket.
+ address family of the specified socket, and the code
+ was not built with __USE_SUNOS_SOCKETS__ defined as
+ described in socket.h(3HEAD).
EBADF The socket argument is not a valid file descriptor.
@@ -113,9 +123,9 @@
The bind() function may fail if:
- EACCES The specified address is protected, and {PRIV_NET_PRI-
- VADOR} is not asserted in the effective set of the cur-
- rent process.
+ EACCES The specified address is protected, and the privilege
+ {PRIV_NET_PRIVADDR} is not asserted in the effective
+ set of the current process.
EINVAL The address_len argument is not a valid length for the
@@ -153,13 +163,18 @@
SEE ALSO
connect(3C), getsockname(3C), listen(3C), remove(3C), socket(3C),
- attributes(7), privileges(7), standards(7)
+ socket.h(3HEAD), inet(4P), inet6(4P), attributes(7), privileges(7),
+ standards(7)
NOTES
Binding a name in the UNIX domain creates a socket in the file system
that must be deleted by the caller when it is no longer needed by using
remove(3C).
+HISTORY
+ The bind() function has been present since the initial release of
+ Solaris.
+
-Oracle Solaris 11.4 16 Aug 2017 bind(3C)
+Oracle Solaris 11.4 2 Feb 2021 bind(3C)
diff -Nurwb 11.4.30/man3c/byteorder.3c 11.4.33/man3c/byteorder.3c
--- 11.4.30/man3c/byteorder.3c 2021-05-19 16:10:28.899680992 +0000
+++ 11.4.33/man3c/byteorder.3c 2021-05-19 16:11:41.594119664 +0000
@@ -31,14 +31,14 @@
DESCRIPTION
These functions convert 16-bit, 32-bit, and 64-bit quantities between
network byte order and host byte order. On some architectures these
- routines are defined as NULL macros in the include file <netinet/in.h>.
+ routines are defined as null macros in the include file <netinet/in.h>.
On other architectures, the routines are functional when the host byte
order is different from network byte order.
- These functions are most often used in conjunction with Internet
- addresses and ports as returned by gethostent() and getservent(). See
- gethostbyname(3C) and getservbyname(3C).
+ The functions to convert from network to host byte order are most often
+ used in conjunction with Internet addresses and ports as returned by
+ getaddrinfo(3C), gethostbyname(3C), and getservbyname(3C).
ATTRIBUTES
See attributes(7) for descriptions of the following attributes:
@@ -47,12 +47,23 @@
+-----------------------------+-----------------------------+
| ATTRIBUTE TYPE | ATTRIBUTE VALUE |
+-----------------------------+-----------------------------+
+ |Interface Stability |Committed |
+ +-----------------------------+-----------------------------+
|MT-Level |Safe |
+-----------------------------+-----------------------------+
SEE ALSO
- gethostbyname(3C), getservbyname(3C), inet.h(3HEAD), attributes(7)
+ getaddrinfo(3C), gethostbyname(3C), getservbyname(3C), inet.h(3HEAD),
+ attributes(7)
+
+HISTORY
+ The htonll() and ntohll() functions were added to Oracle Solaris in the
+ Solaris 11.0 release.
+
+
+ The htonl(), htons(), ntohl(), and ntohs() functions have been present
+ since the initial release of Solaris.
-Oracle Solaris 11.4 20 May 2014 byteorder(3C)
+Oracle Solaris 11.4 2 Feb 2021 byteorder(3C)
diff -Nurwb 11.4.30/man3c/connect.3c 11.4.33/man3c/connect.3c
--- 11.4.30/man3c/connect.3c 2021-05-19 16:10:28.915793539 +0000
+++ 11.4.33/man3c/connect.3c 2021-05-19 16:11:41.599363384 +0000
@@ -29,9 +29,8 @@
- If the socket has not already been bound to a local address, connect()
- will bind it to an address which, unless the socket's address family is
- AF_UNIX, is an unused local address.
+ The connect() call will bind the socket to a local unused address if it
+ is not already bound and if the socket type is not AF_UNIX.
If the initiating socket is not connection-mode, then connect() sets
@@ -166,6 +165,11 @@
EACCES Search permission is denied for a component of the path
prefix; or write access to the named socket is denied.
+ Permission checks may be skipped for AF_UNIX sockets if
+ the code was built with __USE_SUNOS_SOCKETS__ defined
+ before including the <sys/socket.h> header, or if it
+ was built on Oracle Solaris 11.3 or earlier without
+ requesting POSIX or X/Open standards conformance.
EADDRINUSE Attempt to establish a connection that uses addresses
@@ -219,8 +223,13 @@
SEE ALSO
close(2), poll(2), accept(3C), bind(3C), getsockname(3C), select(3C),
- send(3C), shutdown(3C), socket(3C), attributes(7), standards(7)
+ send(3C), shutdown(3C), socket(3C), socket.h(3HEAD), attributes(7),
+ standards(7)
+HISTORY
+ The connect() function has been present since the initial release of
+ Solaris.
-Oracle Solaris 11.4 16 Aug 2017 connect(3C)
+
+Oracle Solaris 11.4 2 Feb 2021 connect(3C)
diff -Nurwb 11.4.30/man3c/ethers.3c 11.4.33/man3c/ethers.3c
--- 11.4.30/man3c/ethers.3c 2021-05-19 16:10:28.919690056 +0000
+++ 11.4.33/man3c/ethers.3c 2021-05-19 16:11:41.602219892 +0000
@@ -25,45 +25,50 @@
int ether_line(const char *l, struct ether_addr *e, char *hostname);
DESCRIPTION
- These routines are useful for mapping 48 bit Ethernet numbers to their
- ASCII representations or their corresponding host names, and vice
+ These routines are useful for mapping 48 bit Ethernet addresses to
+ their ASCII representations or their corresponding host names, and vice
versa.
- The function ether_ntoa() converts a 48 bit Ethernet number pointed to
+ The function ether_ntoa() converts a 48 bit Ethernet address pointed to
by e to its standard ASCII representation; it returns a pointer to the
- ASCII string. The representation is of the form x:x:x: x:x:x where x is
- a hexadecimal number between 0 and ff. The function ether_aton() con-
- verts an ASCII string in the standard representation back to a 48 bit
- Ethernet number; the function returns NULL if the string cannot be
- scanned successfully.
+ ASCII string. The representation is of the form x:x:x:x:x:x where each
+ x is a hexadecimal number between 0 and ff.
- The function ether_ntohost() maps an Ethernet number (pointed to by e)
+ The function ether_aton() converts an ASCII string in the standard rep-
+ resentation back to a 48 bit Ethernet address; the function returns
+ NULL if the string cannot be scanned successfully.
+
+
+ The function ether_ntohost() maps an Ethernet address (pointed to by e)
to its associated hostname. The string pointed to by hostname must be
- long enough to hold the hostname and a NULL character. The function
+ long enough to hold the hostname and a null character. The function
returns zero upon success and non-zero upon failure. Inversely, the
function ether_hostton() maps a hostname string to its corresponding
- Ethernet number; the function modifies the Ethernet number pointed to
+ Ethernet address; the function modifies the Ethernet address pointed to
by e. The function also returns zero upon success and non-zero upon
failure. In order to do the mapping, both these functions may lookup
one or more of the following sources: the ethers file, and the NIS maps
ethers.byname and ethers.byaddr. The sources and their lookup order are
- specified in the /etc/nsswitch.conf file. See nsswitch.conf(5) for
- details.
+ specified in the nsswitch.conf(5) configuration.
The function ether_line() scans a line, pointed to by l, and sets the
- hostname and the Ethernet number, pointed to by e. The string pointed
- to by hostname must be long enough to hold the hostname and a NULL
+ hostname and the Ethernet address, pointed to by e. The string pointed
+ to by hostname must be long enough to hold the hostname and a null
character. The function returns zero upon success and non-zero upon
failure. The format of the scanned line is described by ethers(5).
-FILES
- /etc/ethers Ethernet address to hostname database or domain
-
+USAGE
+ Few systems other than boot servers have other machines listed in their
+ ethers file, making it unlikely that host names will be able to be
+ retrieved for a given Ethernet address. Most systems instead rely on
+ arp(4P) to map between Ethernet addresses and IP addresses on their
+ local network.
- /etc/nsswitch.conf configuration file for the name service switch
+FILES
+ /etc/ethers Ethernet address to hostname database
ATTRIBUTES
@@ -73,12 +78,17 @@
+-----------------------------+-----------------------------+
| ATTRIBUTE TYPE | ATTRIBUTE VALUE |
+-----------------------------+-----------------------------+
+ |Interface Stability |Committed |
+ +-----------------------------+-----------------------------+
|MT-Level |MT-Safe |
+-----------------------------+-----------------------------+
SEE ALSO
- ethers(5), nsswitch.conf(5), attributes(7)
+ arp(4P), ethers(5), nsswitch.conf(5), attributes(7)
+
+HISTORY
+ These functions have been present since the initial release of Solaris.
-Oracle Solaris 11.4 20 May 2014 ethers(3C)
+Oracle Solaris 11.4 2 Feb 2021 ethers(3C)
diff -Nurwb 11.4.30/man3c/fclose.3c 11.4.33/man3c/fclose.3c
--- 11.4.30/man3c/fclose.3c 2021-05-19 16:10:28.922794228 +0000
+++ 11.4.33/man3c/fclose.3c 2021-05-19 16:11:41.605168379 +0000
@@ -104,4 +104,4 @@
-Oracle Solaris 11.4 11 Oct 2010 fclose(3C)
+Oracle Solaris 11.4 22 Feb 2021 fclose(3C)
diff -Nurwb 11.4.30/man3c/freeaddrinfo.3c 11.4.33/man3c/freeaddrinfo.3c
--- 11.4.30/man3c/freeaddrinfo.3c 2021-05-19 16:10:28.927000123 +0000
+++ 11.4.33/man3c/freeaddrinfo.3c 2021-05-19 16:11:41.612055119 +0000
@@ -3,7 +3,7 @@
NAME
- freeaddrinfo - get address information
+ freeaddrinfo - release address information memory
SYNOPSIS
#include <sys/socket.h>
@@ -11,230 +11,14 @@
void freeaddrinfo(struct addrinfo *ai);
-
- int getaddrinfo(const char *restrict nodename,
- const char *restrict servname, const struct addrinfo *restrict hints,
- struct addrinfo **restrict res);
-
DESCRIPTION
The freeaddrinfo() function frees one or more addrinfo structures
- returned by getaddrinfo(), along with any additional storage associated
- with those structures. If the ai_next member of the structure is not
- null, the entire list of structures is freed. The freeaddrinfo() func-
- tion supports the freeing of arbitrary sublists of an addrinfo list
+ returned by getaddrinfo(3C), along with any additional storage associ-
+ ated with those structures. If the ai_next member of the structure is
+ not null, the entire list of structures is freed. The freeaddrinfo()
+ function supports the freeing of arbitrary sublists of an addrinfo list
originally returned by getaddrinfo().
-
- The getaddrinfo() function translates the name of a service location
- (for example, a host name) and/or a service name and returns a set of
- socket addresses and associated information to be used in creating a
- socket with which to address the specified service.
-
-
- The nodename and servname arguments are either null pointers or point-
- ers to null-terminated strings. One or both of these two arguments are
- supplied by the application as a non-null pointer.
-
-
- The format of a valid name depends on the address family or families.
- If a specific family is not given and the name could be interpreted as
- valid within multiple supported families, the implementation attempts
- to resolve the name in all supported families and, in absence of
- errors, one or more results are returned.
-
-
- If the nodename argument is not null, it can be a descriptive name or
- can be an address string. If the specified address family is AF_INET,
- AF_INET6, or AF_UNSPEC, valid descriptive names include host names. If
- the specified address family is AF_INET or AF_UNSPEC, address strings
- using Internet standard dot notation as specified in inet_addr(3C) are
- valid.
-
-
- If the specified address family is AF_INET6 or AF_UNSPEC, standard IPv6
- text forms described in inet_ntop(3C) are valid.
-
-
- If nodename is not null, the requested service location is named by
- nodename; otherwise, the requested service location is local to the
- caller.
-
-
- If servname is null, the call returns network-level addresses for the
- specified nodename. If servname is not null, it is a null-terminated
- character string identifying the requested service. This string can be
- either a descriptive name or a numeric representation suitable for use
- with the address family or families. If the specified address family is
- AF_INET, AF_INET6, or AF_UNSPEC, the service can be specified as a
- string specifying a decimal port number.
-
-
- If the hints argument is not null, it refers to a structure containing
- input values that can direct the operation by providing options and by
- limiting the returned information to a specific socket type, address
- family and/or protocol. In this hints structure every member other than
- ai_flags, ai_family , ai_socktype, and ai_protocol is set to 0 or a
- null pointer. A value of AF_UNSPEC for ai_family means that the caller
- accepts any address family. A value of 0 for ai_socktype means that the
- caller accepts any socket type. A value of 0 for ai_protocol means that
- the caller accepts any protocol. If hints is a null pointer, the behav-
- ior is as if it referred to a structure containing the value 0 for the
- ai_flags, ai_socktype, and ai_protocol members, and AF_UNSPEC for the
- ai_family member.
-
-
- The ai_flags member to which the hints parameter points is set to 0 or
- be the bitwise-inclusive OR of one or more of the values AI_PASSIVE,
- AI_CANONNAME, AI_NUMERICHOST, and AI_NUMERICSERV.
-
-
- If the AI_PASSIVE flag is specified, the returned address information
- is suitable for use in binding a socket for accepting incoming connec-
- tions for the specified service. In this case, if the nodename argument
- is null, then the IP address portion of the socket address structure is
- set to INADDR_ANY for an IPv4 address or IN6ADDR_ANY_INIT for an IPv6
- address. If the AI_PASSIVE flag is not specified, the returned address
- information is suitable for a call to connect(3C) (for a connection-
- mode protocol) or for a call to connect(), sendto(3C), or sendmsg(3C)
- (for a connectionless protocol). In this case, if the nodename argument
- is null, then the IP address portion of the socket address structure is
- set to the loopback address.
-
-
- If the AI_CANONNAME flag is specified and the nodename argument is not
- null, the function attempts to determine the canonical name correspond-
- ing to nodename (for example, if nodename is an alias or shorthand
- notation for a complete name).
-
-
- If the AI_NUMERICHOST flag is specified, then a non-null nodename
- string supplied is a numeric host address string. Otherwise, an EAI_NO-
- NAME error is returned. This flag prevents any type of name resolution
- service (for example, the DNS) from being invoked.
-
-
- If the AI_NUMERICSERV flag is specified, then a non-null servname
- string supplied is a numeric port string. Otherwise, an EAI_NONAME
- error is returned. This flag prevents any type of name resolution ser-
- vice (for example, NIS) from being invoked.
-
-
- If the AI_V4MAPPED flag is specified along with an ai_family of
- AF_INET6, then getaddrinfo() returns IPv4-mapped IPv6 addresses on
- finding no matching IPv6 addresses (ai_addrlen is 16). The AI_V4MAPPED
- flag is ignored unless ai_family equals AF_INET6. If the AI_ALL flag is
- used with the AI_V4MAPPED flag, then getaddrinfo() returns all matching
- IPv6 and IPv4 addresses. The AI_ALL flag without the AI_V4MAPPED flag
- is ignored.
-
-
- The ai_socktype member to which argument hints points specifies the
- socket type for the service, as defined in socket(3C). If a specific
- socket type is not given (for example, a value of 0) and the service
- name could be interpreted as valid with multiple supported socket
- types, the implementation attempts to resolve the service name for all
- supported socket types and, in the absence of errors, all possible
- results are returned. A non-zero socket type value limits the returned
- information to values with the specified socket type.
-
-
- If the ai_family member to which hints points has the value AF_UNSPEC,
- addresses are returned for use with any address family that can be used
- with the specified nodename and/or servname. Otherwise, addresses are
- returned for use only with the specified address family. If ai_family
- is not AF_UNSPEC and ai_protocol is not 0, then addresses are returned
- for use only with the specified address family and protocol; the value
- of ai_protocol is interpreted as in a call to the socket() function
- with the corresponding values of ai_family and ai_protocol.
-
-RETURN VALUES
- A 0 return value for getaddrinfo() indicates successful completion; a
- non-zero return value indicates failure. The possible values for the
- failures are listed in the ERRORS section.
-
-
- Upon successful return of getaddrinfo(), the location to which res
- points refers to a linked list of addrinfo structures, each of which
- specifies a socket address and information for use in creating a socket
- with which to use that socket address. The list includes at least one
- addrinfo structure. The ai_next member of each structure contains a
- pointer to the next structure on the list, or a null pointer if it is
- the last structure on the list. Each structure on the list includes
- values for use with a call to the socket function, and a socket address
- for use with the connect function or, if the AI_PASSIVE flag was speci-
- fied, for use with the bind(3C) function. The ai_family , ai_socktype,
- and ai_protocol members are usable as the arguments to the socket()
- function to create a socket suitable for use with the returned address.
- The ai_addr and ai_addrlen members are usable as the arguments to the
- connect() or bind() functions with such a socket, according to the
- AI_PASSIVE flag.
-
-
- If nodename is not null, and if requested by the AI_CANONNAME flag, the
- ai_canonname member of the first returned addrinfo structure points to
- a null-terminated string containing the canonical name corresponding to
- the input nodename. If the canonical name is not available, then
- ai_canonname refers to the nodename argument or a string with the same
- contents. The contents of the ai_flags member of the returned struc-
- tures are undefined.
-
-
- All members in socket address structures returned by getaddrinfo() that
- are not filled in through an explicit argument (for example, sin6_flow-
- info) are set to 0, making it easier to compare socket address struc-
- tures.
-
-ERRORS
- The getaddrinfo() function will fail if:
-
- EAI_AGAIN The name could not be resolved at this time. Future
- attempts might succeed.
-
-
- EAI_BADFLAGS The ai_flags member of the addrinfo structure had an
- invalid value.
-
-
- EAI_FAIL A non-recoverable error occurred when attempting to
- resolve the name.
-
-
- EAI_FAMILY The address family was not recognized.
-
-
- EAI_MEMORY There was a memory allocation failure when trying to
- allocate storage for the return value.
-
-
- EAI_NONAME The name does not resolve for the supplied parameters.
- Neither nodename nor servname were supplied. At least
- one of these must be supplied.
-
-
- EAI_SERVICE The service passed was not recognized for the specified
- socket type.
-
-
- EAI_SOCKTYPE The intended socket type was not recognized.
-
-
- EAI_SYSTEM A system error occurred. The error code can be found in
- errno.
-
-
- EAI_OVERFLOW An argument buffer overflowed.
-
-
-USAGE
- If the caller handles only TCP and not UDP, for example, then the
- ai_protocol member of the hints structure should be set to IPPROTO_TCP
- when getaddrinfo() is called.
-
-
- If the caller handles only IPv4 and not IPv6, then the ai_family member
- of the hints structure should be set to AF_INET when getaddrinfo() is
- called.
-
ATTRIBUTES
See attributes(7) for descriptions of the following attributes:
@@ -250,10 +34,16 @@
+-----------------------------+-----------------------------+
SEE ALSO
- connect(3C), gai_strerror(3C), gethostbyname(3C), getnameinfo(3C), get-
- servbyname(3C), inet_addr(3C), inet_ntop(3C), socket(3C),
- attributes(7), standards(7)
+ getaddrinfo(3C), netdb.h(3HEAD), attributes(7), standards(7)
+
+
+ Gilligan, R. RFC 3493, Basic Socket Interface Extensions for IPv6. Net-
+ work Working Group. February 2003. https://tools.ietf.org/html/rfc3493
+
+HISTORY
+ The freeaddrinfo() function was added to Oracle Solaris in the Solaris
+ 8 release.
-Oracle Solaris 11.4 06 Aug 2018 freeaddrinfo(3C)
+Oracle Solaris 11.4 20 Jan 2021 freeaddrinfo(3C)
diff -Nurwb 11.4.30/man3c/gai_strerror.3c 11.4.33/man3c/gai_strerror.3c
--- 11.4.30/man3c/gai_strerror.3c 2021-05-19 16:10:28.935856047 +0000
+++ 11.4.33/man3c/gai_strerror.3c 2021-05-19 16:11:41.615451822 +0000
@@ -19,6 +19,9 @@
When the ecode argument is one of the following values listed in the
<netdb.h> header:
+ o EAI_ADDRFAMILY
+
+
o EAI_AGAIN
@@ -34,6 +37,9 @@
o EAI_MEMORY
+ o EAI_NODATA
+
+
o EAI_NONAME
@@ -76,5 +82,13 @@
getaddrinfo(3C), getnameinfo(3C), attributes(7), standards(7)
+ Gilligan, R. RFC 3493, Basic Socket Interface Extensions for IPv6. Net-
+ work Working Group. February 2003. https://tools.ietf.org/html/rfc3493
+
+HISTORY
+ The gai_strerror() function was added to Oracle Solaris in the Solaris
+ 8 release.
+
+
-Oracle Solaris 11.4 25 Mar 2014 gai_strerror(3C)
+Oracle Solaris 11.4 20 Jan 2021 gai_strerror(3C)
diff -Nurwb 11.4.30/man3c/getaddrinfo.3c 11.4.33/man3c/getaddrinfo.3c
--- 11.4.30/man3c/getaddrinfo.3c 2021-05-19 16:10:28.941523704 +0000
+++ 11.4.33/man3c/getaddrinfo.3c 2021-05-19 16:11:41.625848219 +0000
@@ -9,48 +9,69 @@
#include <sys/socket.h>
#include <netdb.h>
- int getaddrinfo(const char *nodename, const char *servname,
- const struct addrinfo *hints, struct addrinfo **res);
+ int getaddrinfo(const char *restrict nodename,
+ const char *restrict servname,
+ const struct addrinfo *restrict hints,
+ struct addrinfo **restrict res);
+DESCRIPTION
+ The getaddrinfo() function translates the name of a service location
+ (for example, a host name) and/or a service name and returns a set of
+ socket addresses and associated information to be used in creating a
+ socket with which to address the specified service. The getaddrinfo()
+ function performs the node name to address translation in a protocol-
+ independent manner.
- int getnameinfo(const struct sockaddr *sa, socklen_t salen,
- char *host, socklen_t hostlen, char *serv, socklen_t servlen,
- int flags);
+ The nodename and servname arguments are pointers to null-terminated
+ strings or NULL. One or both of these arguments must be a non-null
+ pointer. In the normal client scenario, both the nodename and servname
+ are specified. In the normal server scenario, only the servname is
+ specified.
- void freeaddrinfo(struct addrinfo *ai);
+ The format of a valid name depends on the address family or families.
+ If a specific family is not given and the name could be interpreted as
+ valid within multiple supported families, the implementation attempts
+ to resolve the name in all supported families and, in absence of
+ errors, one or more results are returned.
- const char *gai_strerror(int errcode);
-DESCRIPTION
- These functions perform translations from node name to address and from
- address to node name in a protocol-independent manner.
+ If nodename is not null, the requested service location is named by
+ nodename; otherwise, the requested service location is local to the
+ caller.
- The getaddrinfo() function performs the node name to address transla-
- tion. The nodename and servname arguments are pointers to null-termi-
- nated strings or NULL. One or both of these arguments must be a non-
- null pointer. In the normal client scenario, both the nodename and
- servname are specified. In the normal server scenario, only the serv-
- name is specified.
+ If the nodename argument is not null, it can be a descriptive name or
+ an address string. If the specified address family is AF_INET,
+ AF_INET6, or AF_UNSPEC, valid descriptive names include host names. If
+ the specified address family is AF_INET or AF_UNSPEC, address strings
+ using Internet standard dot notation as specified in inet_addr(3C) are
+ valid.
- A non-null nodename string can be a node name or a numeric host address
- string. The nodename can also be an IPv6 zone-id in the form:
+ If the specified address family is AF_INET6 or AF_UNSPEC, standard IPv6
+ text forms described in inet_ntop(3C) are valid. The nodename can also
+ be an IPv6 zone-id in the form:
- <address>%<zone-id>
+ address%zone-id
- The address is the literal IPv6 link-local address or host name of the
- destination. The zone-id is the interface ID of the IPv6 link used to
- send the packet. The zone-id can either be a numeric value, indicating
- a literal zone value, or an interface name such as hme0.
+ where the address is the literal IPv6 link-local address or host name
+ of the destination, and the zone-id is the interface ID of the IPv6
+ link used to send the packet. The zone-id can either be a numeric
+ value, indicating a literal zone value, or an interface name such as
+ net0.
- A non-null servname string can be either a service name or a decimal
- port number.
+ If servname is null, the call returns network-level addresses for the
+ specified nodename. If servname is not null, it is a null-terminated
+ character string identifying the requested service. This string can be
+ either a descriptive name or a numeric representation suitable for use
+ with the address family or families. If the specified address family is
+ AF_INET, AF_INET6, or AF_UNSPEC, the service can be specified as a
+ string specifying a decimal port number.
The caller can optionally pass an addrinfo structure, pointed to by the
@@ -175,10 +196,30 @@
configured (other than the IPv4 loopback).
+ The ai_socktype member to which argument hints points specifies the
+ socket type for the service, as defined in socket(3C). If a specific
+ socket type is not given (for example, a value of 0) and the service
+ name could be interpreted as valid with multiple supported socket
+ types, the implementation attempts to resolve the service name for all
+ supported socket types and, in the absence of errors, all possible
+ results are returned. A non-zero socket type value limits the returned
+ information to values with the specified socket type.
+
+
+ If the ai_family member to which hints points has the value AF_UNSPEC,
+ addresses are returned for use with any address family that can be used
+ with the specified nodename and/or servname. Otherwise, addresses are
+ returned for use only with the specified address family. If ai_family
+ is not AF_UNSPEC and ai_protocol is not 0, then addresses are returned
+ for use only with the specified address family and protocol; the value
+ of ai_protocol is interpreted as in a call to the socket() function
+ with the corresponding values of ai_family and ai_protocol.
+
+
All of the information returned by getaddrinfo() is dynamically allo-
cated: the addrinfo structures as well as the socket address structures
and canonical node name strings pointed to by the addrinfo structures.
- The freeaddrinfo() function is called to return this information to the
+ The freeaddrinfo(3C) function is called to return this memory to the
system. For freeaddrinfo(), the addrinfo structure pointed to by the ai
argument is freed, along with any dynamic storage pointed to by the
structure. This operation is repeated until a null ai_next pointer is
@@ -186,97 +227,48 @@
To aid applications in printing error messages based on the EAI_* codes
- returned by getaddrinfo(), the gai_strerror() is defined. The argument
- is one of the EAI_* values defined below and the return value points to
- a string describing the error. If the argument is not one of the EAI_*
- values, the function still returns a pointer to a string whose contents
- indicate an unknown error.
-
-
- The getnameinfo() function looks up an IP address and port number pro-
- vided by the caller in the name service database and system-specific
- database, and returns text strings for both in buffers provided by the
- caller. The function indicates successful completion by a 0 return
- value; a non-zero return value indicates failure.
-
-
- The first argument, sa, points to either a sockaddr_in structure (for
- IPv4) or a sockaddr_in6 structure (for IPv6) that holds the IP address
- and port number. The salen argument gives the length of the sockaddr_in
- or sockaddr_in6 structure.
-
-
- The function returns the node name associated with the IP address in
- the buffer pointed to by the host argument.
-
-
- The function can also return the IPv6 zone-id in the form:
-
- <address>%<zone-id>
-
-
-
- The caller provides the size of this buffer with the hostlen argument.
- The service name associated with the port number is returned in the
- buffer pointed to by serv, and the servlen argument gives the length of
- this buffer. The caller specifies not to return either string by pro-
- viding a 0 value for the hostlen or servlen arguments. Otherwise, the
- caller must provide buffers large enough to hold the node name and the
- service name, including the terminating null characters.
-
-
- To aid the application in allocating buffers for these two returned
- strings, the following constants are defined in <netdb.h>:
-
- #define NI_MAXHOST 1025
- #define NI_MAXSERV 32
-
-
-
- The final argument is a flag that changes the default actions of this
- function. By default, the fully-qualified domain name (FQDN) for the
- host is looked up in the name service database and returned. If the
- flag bit NI_NOFQDN is set, only the node name portion of the FQDN is
- returned for local hosts.
-
-
- If the flag bit NI_NUMERICHOST is set, or if the host's name cannot be
- located in the name service, the numeric form of the host's address is
- returned instead of its name, for example, by calling inet_ntop() (see
- inet(3C)) instead of getipnodebyname(3C). If the flag bit NI_NAMEREQD
- is set, an error is returned if the host's name cannot be located in
- the name service database.
-
-
- If the flag bit NI_NUMERICSERV is set, the numeric form of the service
- address is returned (for example, its port number) instead of its name.
- The two NI_NUMERIC* flags are required to support the -n flag that many
- commands provide.
-
-
- A fifth flag bit, NI_DGRAM, specifies that the service is a datagram
- service, and causes getservbyport(3C) to be called with a second argu-
- ment of udp instead of the default tcp. This is required for the few
- ports (for example, 512-514) that have different services for UDP and
- TCP.
-
-
- These NI_* flags are defined in <netdb.h> along with the AI_* flags
- already defined for getaddrinfo().
+ returned by getaddrinfo(), the gai_strerror(3C) function is defined.
+ The argument is one of the EAI_* values defined below and the return
+ value points to a string describing the error. If the argument is not
+ one of the EAI_* values, the function still returns a pointer to a
+ string whose contents indicate an unknown error.
RETURN VALUES
- For getaddrinfo(), if the query is successful, a pointer to a linked
- list of one or more addrinfo structures is returned by the fourth argu-
- ment and the function returns 0. The order of the addresses returned in
- the fourth argument is discussed in the ADDRESS ORDERING section. If
- the query fails, a non-zero error code will be returned. For getname-
- info(), if successful, the strings hostname and service are copied into
- host and serv, respectively. If unsuccessful, zero values for either
- hostlen or servlen will suppress the associated lookup; in this case no
- data is copied into the applicable buffer. If gai_strerror() is suc-
- cessful, a pointer to a string containing an error message appropriate
- for the EAI_* errors is returned. If errcode is not one of the EAI_*
- values, a pointer to a string indicating an unknown error is returned.
+ A 0 return value for getaddrinfo() indicates successful completion; a
+ non-zero return value indicates failure. The possible values for the
+ failures are listed in the ERRORS section.
+
+
+ Upon successful return of getaddrinfo(), the location to which res
+ points refers to a linked list of addrinfo structures, each of which
+ specifies a socket address and information for use in creating a socket
+ with which to use that socket address. The list includes at least one
+ addrinfo structure. The ai_next member of each structure contains a
+ pointer to the next structure on the list, or a null pointer if it is
+ the last structure on the list. Each structure on the list includes
+ values for use with a call to the socket function, and a socket address
+ for use with the connect function or, if the AI_PASSIVE flag was speci-
+ fied, for use with the bind(3C) function. The ai_family, ai_socktype,
+ and ai_protocol members are usable as the arguments to the socket()
+ function to create a socket suitable for use with the returned address.
+ The ai_addr and ai_addrlen members are usable as the arguments to the
+ connect() or bind() functions with such a socket, according to the
+ AI_PASSIVE flag.
+
+
+ If nodename is not null, and if requested by the AI_CANONNAME flag, the
+ ai_canonname member of the first returned addrinfo structure points to
+ a null-terminated string containing the canonical name corresponding to
+ the input nodename. If the canonical name is not available, then
+ ai_canonname refers to the nodename argument or a string with the same
+ contents. The contents of the ai_flags member of the returned struc-
+ tures are undefined.
+
+
+ All members in socket address structures returned by getaddrinfo() that
+ are not filled in through an explicit argument (for example, sin6_flow-
+ info) are set to 0, making it easier to compare socket address struc-
+ tures.
Address Ordering
AF_INET6 addresses returned by the fourth argument of getaddrinfo() are
@@ -390,15 +382,25 @@
EAI_SYSTEM System error was returned in errno.
+USAGE
+ If the caller handles only TCP and not UDP, for example, then the
+ ai_protocol member of the hints structure should be set to IPPROTO_TCP
+ when getaddrinfo() is called.
+
+
+ If the caller handles only IPv4 and not IPv6, then the ai_family member
+ of the hints structure should be set to AF_INET when getaddrinfo() is
+ called.
+
FILES
- /etc/inet/hosts local database that associates names of nodes
- with IP addresses
+ /etc/inet/hosts local database that associates names of nodes with
+ IP addresses
/etc/netconfig network configuration database
- /etc/nsswitch.conf configuration file for the name service switch
+ /etc/default/nss configuration file for the name service switch
ATTRIBUTES
@@ -416,17 +418,28 @@
+-----------------------------+-----------------------------+
SEE ALSO
- gethostbyname(3C), getipnodebyname(3C), htonl(3C), inet(3C),
- socket(3C), netdb.h(3HEAD), inet6(4P), hosts(5), nsswitch.conf(5),
- attributes(7), standards(7), ipaddrsel(8)
+ bind(3C), connect(3C), freeaddrinfo(3C), gai_strerror(3C), gethostby-
+ name(3C), getipnodebyname(3C), getnameinfo(3C), getservbyname(3C),
+ htonl(3C), inet(3C), inet_addr(3C), inet_ntop(3C), sendmsg(3C),
+ sendto(3C), socket(3C), netdb.h(3HEAD), inet6(4P), hosts(5), nss(5),
+ nsswitch.conf(5), attributes(7), standards(7), ipaddrsel(8)
Draves, R. RFC 3484, Default Address Selection for Internet Protocol
version 6 (IPv6). Network Working Group. February 2003.
+ https://tools.ietf.org/html/rfc3484
+
+
+ Gilligan, R. RFC 3493, Basic Socket Interface Extensions for IPv6. Net-
+ work Working Group. February 2003. https://tools.ietf.org/html/rfc3493
NOTES
IPv4-mapped addresses are not recommended.
+HISTORY
+ The getaddrinfo() function was added to Oracle Solaris in the Solaris 8
+ release.
+
-Oracle Solaris 11.4 20 May 2014 getaddrinfo(3C)
+Oracle Solaris 11.4 20 Jan 2021 getaddrinfo(3C)
diff -Nurwb 11.4.30/man3c/gethostbyname.3c 11.4.33/man3c/gethostbyname.3c
--- 11.4.30/man3c/gethostbyname.3c 2021-05-19 16:10:28.946117826 +0000
+++ 11.4.33/man3c/gethostbyname.3c 2021-05-19 16:11:41.630497671 +0000
@@ -40,13 +40,12 @@
DESCRIPTION
These functions are used to obtain entries describing hosts. An entry
- can come from any of the sources for hosts specified in the /etc/nss-
- witch.conf file. See nsswitch.conf(5). These functions have been super-
- seded by getipnodebyname(3C), getipnodebyaddr(3C), and getaddrinfo(3C),
- which provide greater portability to applications when multithreading
- is performed or technologies such as IPv6 are used. For example, the
- functions described in the following cannot be used with applications
- targeted to work with IPv6.
+ can come from any of the sources for the host database specified in the
+ nsswitch.conf(5) configuration. These functions have been superseded by
+ getaddrinfo(3C), which provides greater portability to applications
+ when multithreading is performed or technologies such as IPv6 are used.
+ For example, the functions described in the following cannot be used
+ with applications targeted to work with IPv6.
The gethostbyname() function searches for information for a host with
@@ -64,7 +63,7 @@
All addresses are returned in network order. In order to interpret the
- addresses, byteorder(3C) must be used for byte order conversion.
+ addresses, ntohl(3C) must be used for byte order conversion.
The sethostent(), gethostent(), and endhostent() functions are used to
@@ -217,6 +216,7 @@
#include <netinet/in.h>
#include <arpa/inet.h>
#include <netdb.h>
+
int main(int argc, const char **argv)
{
in_addr_t addr;
@@ -254,16 +254,13 @@
threaded applications.
FILES
- /etc/hosts hosts file that associates the names of hosts
- with their Internet Protocol (IP) addresses
+ /etc/hosts hosts file that associates the names of hosts with
+ their Internet Protocol (IP) addresses
/etc/netconfig network configuration database
- /etc/nsswitch.conf configuration file for the name service switch
-
-
ATTRIBUTES
See attributes(7) for descriptions of the following attributes:
@@ -271,13 +268,16 @@
+-----------------------------+-----------------------------+
| ATTRIBUTE TYPE | ATTRIBUTE VALUE |
+-----------------------------+-----------------------------+
+ |Interface Stability |Committed |
+ +-----------------------------+-----------------------------+
|MT-Level |See Reentrant Interfaces in |
| |the DESCRIPTION section. |
+-----------------------------+-----------------------------+
SEE ALSO
- Intro(2), byteorder(3C), inet(3C), netdir(3C), netdb.h(3HEAD),
- hosts(5), netconfig(5), nss(5), nsswitch.conf(5), attributes(7)
+ Intro(2), getaddrinfo(3C), inet(3C), netdir(3C), ntohl(3C),
+ netdb.h(3HEAD), hosts(5), netconfig(5), nss(5), nsswitch.conf(5),
+ attributes(7)
WARNINGS
The reentrant interfaces gethostbyname_r(), gethostbyaddr_r(), and
@@ -342,6 +342,15 @@
a word boundary or the code must be changed to memcpy(3C) the argument
to an aligned area; otherwise an error such as a SIGBUS may result.
+HISTORY
+ The reentrant interfaces gethostbyname_r(), gethostbyaddr_r(), and
+ gethostent_r() were added to Oracle Solaris in the Solaris 2.3 release.
+
+
+ The functions gethostbyname(), gethostbyaddr(), gethostent(), sethos-
+ tent(), and addthostent() have been present since the initial release
+ of Solaris.
+
-Oracle Solaris 11.4 19 May 2014 gethostbyname(3C)
+Oracle Solaris 11.4 2 Feb 2021 gethostbyname(3C)
diff -Nurwb 11.4.30/man3c/getifaddrs.3c 11.4.33/man3c/getifaddrs.3c
--- 11.4.30/man3c/getifaddrs.3c 2021-05-19 16:10:28.958592915 +0000
+++ 11.4.33/man3c/getifaddrs.3c 2021-05-19 16:11:41.646044549 +0000
@@ -17,7 +17,7 @@
DESCRIPTION
The getifaddrs() function stores a reference to a linked list of net-
- work interface addresses on the local machine in the memory referenced
+ work interface addresses on the local system in the memory referenced
by ifap. The list consists of ifaddrs structures, as defined in the
include file <ifaddrs.h>. Each element of the list describes one net-
work interface address. The caller can process each ifaddrs structure
@@ -38,6 +38,7 @@
} ifa_ifu;
void *ifa_data; /* Address specific data (unused) */
};
+
#ifndef ifa_broadaddr
#define ifa_broadaddr ifa_ifu.ifu_broadaddr
#endif
@@ -50,7 +51,8 @@
The ifa_name member contains the interface name.
- The ifa_flags member contains the interface flags.
+ The ifa_flags member contains the interface flags returned by a call to
+ the SIOCGLIFFLAGS ioctl(2), as described on the if_tcp(4P) man page.
The ifa_addr member references the address of the interface. (The
@@ -62,6 +64,13 @@
if one is set, otherwise it is NULL.
+ The contents of the ifa_ifu union depend on whether the interface is a
+ point-to-point (P2P) connection or not. This is determined by the pres-
+ ence of the IFF_POINTTOPOINT bit in the ifa_flags. If this bit is set,
+ the ifa_dstaddr member will be set. Otherwise, if the IFF_BROADCAST bit
+ is set in the ifa_flags, the ifa_broadaddr member will be set instead.
+
+
The ifa_broadaddr member, which should only be referenced for non-P2P
interfaces, references the broadcast address associated with ifa_addr,
if one exists, otherwise it is NULL.
@@ -101,6 +110,11 @@
ioctl(2), malloc(3C), socket(3C), if_tcp(4P), attributes(7), ifcon-
fig(8), ipadm(8)
+HISTORY
+ The getifaddrs() and freeifaddrs() functions were added to Oracle
+ Solaris in the Solaris 11.0 release. They were based on the functions
+ of the same names from the FreeBSD Project.
+
-Oracle Solaris 11.4 19 May 2014 getifaddrs(3C)
+Oracle Solaris 11.4 2 Feb 2021 getifaddrs(3C)
diff -Nurwb 11.4.30/man3c/getipnodebyname.3c 11.4.33/man3c/getipnodebyname.3c
--- 11.4.30/man3c/getipnodebyname.3c 2021-05-19 16:10:28.984699606 +0000
+++ 11.4.33/man3c/getipnodebyname.3c 2021-05-19 16:11:41.650131769 +0000
@@ -42,6 +42,11 @@
DESCRIPTION
+ These functions provide a rudimentary lookup by name or address of
+ entries in the hosts(5) database. The getaddrinfo(3C) function is pre-
+ ferred over these functions.
+
+
The getipnodebyname() function searches the ipnodes database from the
beginning. The function finds the first h_name member that matches the
hostname specified by name. The function takes an af argument that
@@ -185,6 +190,13 @@
The array is terminated by a NULL pointer.
+
+ The getipnodebyaddr() function has the same arguments as the existing
+ gethostbyaddr(3C) function, but adds an error number. As with getipn-
+ odebyname(), getipnodebyaddr() is thread-safe. The error_num value is
+ returned to the caller with the appropriate error code to support
+ thread-safe error code returns.
+
RETURN VALUES
Upon successful completion, getipnodebyname() and getipnodebyaddr()
return a hostent structure. Otherwise they return NULL.
@@ -206,36 +218,9 @@
- An error occurs when name is an IPv6 hex address and af equals AF_INET.
- The return value of the function is a NULL pointer and error_num equals
- HOST_NOT_FOUND.
-
-
- The getipnodebyaddr() function has the same arguments as the existing
- gethostbyaddr(3C) function, but adds an error number. As with getipn-
- odebyname(), getipnodebyaddr() is thread-safe. The error_num value is
- returned to the caller with the appropriate error code to support
- thread-safe error code returns. The following error conditions can be
- returned for error_num:
-
- HOST_NOT_FOUND Host is unknown.
-
-
- NO_DATA No address is available for the name specified in the
- server request. This error is not a soft error.
- Another type of name server request might be success-
- ful.
-
-
- NO_RECOVERY An unexpected server failure occurred, which is a
- non-recoverable error.
-
-
- TRY_AGAIN This error is a soft error that indicates that the
- local server did not receive a response from an
- authoritative server. A retry at some later time
- might be successful.
-
+ This structure, and the information pointed to by this structure, are
+ dynamically allocated by getipnodebyname() and getipnodebyaddr(). The
+ freehostent() function frees this memory.
One possible source of confusion is the handling of IPv4-mapped IPv6
@@ -266,14 +251,31 @@
All four steps listed are performed in order.
+ERRORS
+ The following error conditions can be returned in error_num:
+
+ HOST_NOT_FOUND Host is unknown, or name is an IPv6 hex address and
+ af equals AF_INET.
+
+
+ NO_DATA No address is available for the name specified in the
+ server request. This error is not a soft error.
+ Another type of name server request might be success-
+ ful.
+
+
+ NO_RECOVERY An unexpected server failure occurred, which is a
+ non-recoverable error.
+
+
+ TRY_AGAIN This error is a soft error that indicates that the
+ local server did not receive a response from an
+ authoritative server. A retry at some later time
+ might be successful.
- This structure, and the information pointed to by this structure, are
- dynamically allocated by getipnodebyname() and getipnodebyaddr(). The
- freehostent() function frees this memory.
EXAMPLES
- Example 1 Getting the Canonical Name, Aliases, and Internet IP
- Addresses for a Given Hostname
+ Example 1 Getting information for a Given Hostname
@@ -282,8 +284,6 @@
for a given hostname.
-
-
#include <stdio.h>
#include <string.h>
#include <sys/types.h>
@@ -292,12 +292,12 @@
#include <arpa/inet.h>
#include <netdb.h>
+ int
main(int argc, const char **argv)
{
char abuf[INET6_ADDRSTRLEN];
int error_num;
struct hostent *hp;
- char **p;
if (argc != 2) {
(void) printf("usage: %s hostname\n", argv[0]);
@@ -317,15 +317,16 @@
}
exit (1);
}
- for (p = hp->h_addr_list; *p != 0; p++) {
+ for (char **p = hp->h_addr_list; *p != 0; p++) {
struct in6_addr in6;
- char **q;
- bcopy(*p, (caddr_t)&in6, hp->h_length);
- (void) printf("%s\t%s", inet_ntop(AF_INET6, (void *)&in6,
- abuf, sizeof(abuf)), hp->h_name);
- for (q = hp->h_aliases; *q != 0; q++)
+ bcopy(*p, &in6, hp->h_length);
+ (void) printf("%s\t%s",
+ inet_ntop(AF_INET6, &in6, abuf, sizeof(abuf)),
+ hp->h_name);
+ for (char **q = hp->h_aliases; *q != 0; q++) {
(void) printf(" %s", *q);
+ }
(void) putchar('\n');
}
freehostent(hp);
@@ -384,6 +385,9 @@
section are helpful in constructing and manipulating addresses in
either of these forms.
+HISTORY
+ These functions were added to Oracle Solaris in the Solaris 8 release.
+
-Oracle Solaris 11.4 19 May 2014 getipnodebyname(3C)
+Oracle Solaris 11.4 2 Feb 2021 getipnodebyname(3C)
diff -Nurwb 11.4.30/man3c/getipsecalgbyname.3c 11.4.33/man3c/getipsecalgbyname.3c
--- 11.4.30/man3c/getipsecalgbyname.3c 2021-05-19 16:10:29.000812266 +0000
+++ 11.4.33/man3c/getipsecalgbyname.3c 2021-05-19 16:11:41.656168494 +0000
@@ -83,22 +83,8 @@
-
-
- If a_key_increment is non-zero, a_key_sizes[0] contains the default key
- size for the algorithm. a_key_sizes[1] and a_key_sizes[2] specify the
- smallest and biggest key sizes support by the algorithm, and
- a_key_increment specifies the valid key size increments in that range.
-
-
- If a_key_increment is zero, the array a_key_sizes contains the set of
- key sizes, in bits, supported by the algorithm. The last key length in
- the array is followed by an element of value 0. The first element of
- this array is used as the default key size for the algorithm.
-
-
- a_name is an array of algorithm names, terminated by an element con-
- taining a NULL pointer. a_name[0] is the primary name for the algo-
+ a_names is an array of algorithm names, terminated by an element con-
+ taining a NULL pointer. a_names[0] is the primary name for the algo-
rithm.
@@ -112,9 +98,16 @@
the array is followed by an element containing the value 0.
- a_block_sizes is an array containing the supported block lengths or MAC
- lengths, in bytes, supported by the algorithm. The last valid value in
- the array is followed by an element containing the value 0.
+ If a_key_increment is non-zero, a_key_sizes[0] contains the default key
+ size for the algorithm. a_key_sizes[1] and a_key_sizes[2] specify the
+ smallest and biggest key sizes support by the algorithm, and
+ a_key_increment specifies the valid key size increments in that range.
+
+
+ If a_key_increment is zero, the array a_key_sizes contains the set of
+ key sizes, in bits, supported by the algorithm. The last key length in
+ the array is followed by an element of value 0. The first element of
+ this array is used as the default key size for the algorithm.
ERRORS
When the specified algorithm cannot be returned to the caller, getipse-
@@ -138,7 +131,7 @@
+-----------------------------+-----------------------------+
| ATTRIBUTE TYPE | ATTRIBUTE VALUE |
+-----------------------------+-----------------------------+
- |Availability |system/library |
+ |Availability |system/library/libc |
+-----------------------------+-----------------------------+
|MT-Level |MT-Safe |
+-----------------------------+-----------------------------+
@@ -152,7 +145,12 @@
Piper, D. RFC 2407, The Internet IP Security Domain of Interpretation
for ISAKMP. Network Working Group. November, 1998.
+ https://tools.ietf.org/html/rfc2407.
+
+HISTORY
+ These functions were added to Oracle Solaris in the Solaris 10 3/05
+ release.
-Oracle Solaris 11.4 27 Nov 2017 getipsecalgbyname(3C)
+Oracle Solaris 11.4 2 Feb 2021 getipsecalgbyname(3C)
diff -Nurwb 11.4.30/man3c/getipsecprotobyname.3c 11.4.33/man3c/getipsecprotobyname.3c
--- 11.4.30/man3c/getipsecprotobyname.3c 2021-05-19 16:10:29.006812983 +0000
+++ 11.4.33/man3c/getipsecprotobyname.3c 2021-05-19 16:11:41.666819127 +0000
@@ -6,13 +6,12 @@
getipsecprotobyname, getipsecprotobynum - query IPsec protocols entries
SYNOPSIS
- cc-flag ... file ...-lnsl [-library ...]
#include <netdb.h>
- int getipsecprotobyname(const char *proto_name
+ int getipsecprotobyname(const char *proto_name);
- char *getipsecprotobynum(int proto_nump
+ char *getipsecprotobynum(int proto_num);
DESCRIPTION
Use the getipsecprotobyname() and getipsecprotobynum() functions to
@@ -27,7 +26,7 @@
getipsecprotobyname() takes as an argument the name of an IPsec proto-
col and returns its assigned protocol number. The character string
returned by the getipsecprotobyname() function must be freed by the
- called when it is no longer needed.
+ caller when it is no longer needed.
getipsecprotobynum() takes as an argument a protocol number and returns
@@ -49,7 +48,7 @@
proto_name A pointer to the name of an IPsec protocol.
- proto_num A pointer to a protocol number. conditions.
+ proto_num A protocol number.
RETURN VALUES
@@ -67,9 +66,7 @@
+-----------------------------+-----------------------------+
| ATTRIBUTE TYPE | ATTRIBUTE VALUE |
+-----------------------------+-----------------------------+
- |Availability |system/library |
- +-----------------------------+-----------------------------+
- |MT Level |MT Safe |
+ |MT-Level |MT-Safe |
+-----------------------------+-----------------------------+
|Interface Stability |Committed |
+-----------------------------+-----------------------------+
@@ -81,7 +78,12 @@
Piper, D. RFC 2407, The Internet IP Security Domain of Interpretation
for ISAKMP. Network Working Group. November, 1998.
+ https://tools.ietf.org/html/rfc2407.
+
+HISTORY
+ The getipsecprotobyname() and getipsecprotobynum() functions were added
+ to Oracle Solaris in the Solaris 10 3/05 release.
-Oracle Solaris 11.4 04 Apr 2014 getipsecprotobyname(3C)
+Oracle Solaris 11.4 2 Feb 2021 getipsecprotobyname(3C)
diff -Nurwb 11.4.30/man3c/getnameinfo.3c 11.4.33/man3c/getnameinfo.3c
--- 11.4.30/man3c/getnameinfo.3c 2021-05-19 16:10:29.013454746 +0000
+++ 11.4.33/man3c/getnameinfo.3c 2021-05-19 16:11:41.676290164 +0000
@@ -10,8 +10,9 @@
#include <netdb.h>
int getnameinfo(const struct sockaddr *restrict sa, socklen_t salen,
- char *restrict node, socklen_t nodelen, char *restrict service,
- socklen_t servicelen, unsigned flags);
+ char *restrict node, socklen_t nodelen,
+ char *restrict service, socklen_t servicelen,
+ int flags);
DESCRIPTION
The getnameinfo() function translates a socket address to a node name
@@ -38,7 +39,14 @@
string. If the service argument is NULL or the servicelen argument is
zero, the service name is not returned. If the service's name cannot be
located, the numeric form of the service address (for example, its port
- number) is returned instead of its name.
+ number) is returned instead of its name. The function can also return
+ the IPv6 zone-id in the form:
+
+ <address>%<zone-id>
+
+
+
+ as described in getaddrinfo(3C).
The flags argument is a flag that changes the default actions of the
@@ -69,6 +77,9 @@
(SOCK_STREAM).
+
+ These NI_* flags are defined in <netdb.h>.
+
RETURN VALUES
A 0 return value for getnameinfo() indicates successful completion; a
non-zero return value indicates failure. The possible values for the
@@ -136,6 +147,10 @@
gai_strerror(3C), getaddrinfo(3C), getservbyname(3C), socket(3C),
attributes(7), standards(7)
+
+ Gilligan, R. RFC 3493, Basic Socket Interface Extensions for IPv6. Net-
+ work Working Group. February 2003. https://tools.ietf.org/html/rfc3493
+
NOTES
The IPv6 unspecified address ("::") and the IPv6 loopback address
("::1") are not IPv4-compatible addresses. If the address is the IPv6
@@ -151,6 +166,10 @@
numbers (for example, [512,514]) that represent different services for
UDP and TCP.
+HISTORY
+ The getnameinfo() function was added to Oracle Solaris in the Solaris 8
+ release.
+
-Oracle Solaris 11.4 25 Mar 2014 getnameinfo(3C)
+Oracle Solaris 11.4 20 Jan 2021 getnameinfo(3C)
diff -Nurwb 11.4.30/man3c/getnetbyname.3c 11.4.33/man3c/getnetbyname.3c
--- 11.4.30/man3c/getnetbyname.3c 2021-05-19 16:10:29.028041683 +0000
+++ 11.4.33/man3c/getnetbyname.3c 2021-05-19 16:11:41.680407710 +0000
@@ -16,7 +16,7 @@
char *buffer, int buflen);
- struct netent *getnetbyaddr(in_addr_t, int);
+ struct netent *getnetbyaddr(in_addr_t net, int type);
struct netent *getnetbyaddr_r(long net, int type, struct netent *result,
@@ -36,9 +36,9 @@
int endnetent(void);
DESCRIPTION
- These functions are used to obtain entries for networks. An entry may
- come from any of the sources for networks specified in the /etc/nss-
- witch.conf file. See nsswitch.conf(5).
+ These functions are used to obtain entries for IPv4 networks. An entry
+ may come from any of the sources for networks specified in the nss-
+ witch.conf(5) configuration.
getnetbyname() searches for a network entry with the network name spec-
@@ -87,10 +87,9 @@
- This usage is deprecated by the CIDR requirements. See Fuller, V., Li,
- T., Yu, J., and Varadhan, K. RFC 1519, Classless Inter-Domain Routing
- (CIDR): an Address Assignment and Aggregation Strategy. Network Working
- Group. September 1993.
+ This usage is deprecated by the CIDR requirements. See RFC 1519, Class-
+ less Inter-Domain Routing (CIDR): an Address Assignment and Aggregation
+ Strategy.
The functions setnetent(), getnetent(), and endnetent() are used to
@@ -204,6 +203,8 @@
+-----------------------------+-----------------------------+
| ATTRIBUTE TYPE | ATTRIBUTE VALUE |
+-----------------------------+-----------------------------+
+ |Interface Stability |Committed |
+ +-----------------------------+-----------------------------+
|MT-Level |MT-Safe |
+-----------------------------+-----------------------------+
@@ -215,6 +216,7 @@
Fuller, V., Li, T., Yu, J., and Varadhan, K. RFC 1519, Classless Inter-
Domain Routing (CIDR): an Address Assignment and Aggregation Strategy.
Network Working Group. September 1993.
+ https://tools.ietf.org/html/rfc1519.
WARNINGS
The reentrant interfaces getnetbyname_r(), getnetbyaddr_r(), and getne-
@@ -223,8 +225,8 @@
NOTES
The current implementation of these functions only return or accept
- network numbers for the Internet address family (type AF_INET). The
- functions described in inet(3C) may be helpful in constructing and
+ network numbers for the IPv4 Internet address family (type AF_INET).
+ The functions described in inet(3C) may be helpful in constructing and
manipulating addresses and network numbers in this form.
@@ -232,6 +234,14 @@
couraged; enumeration may not be supported for all database sources.
The semantics of enumeration are discussed further in nsswitch.conf(5).
+HISTORY
+ The reentrant interfaces getnetbyname_r(), getnetbyaddr_r(), and getne-
+ tent_r() were added to Oracle Solaris in the Solaris 2.3 release.
+
+
+ The functions getnetbyname(), getnetbyaddr(), getnetent(), setnetent(),
+ and endnetent() have been present since the initial release of Solaris.
+
-Oracle Solaris 11.4 24 May 2016 getnetbyname(3C)
+Oracle Solaris 11.4 2 Feb 2021 getnetbyname(3C)
diff -Nurwb 11.4.30/man3c/getnetconfig.3c 11.4.33/man3c/getnetconfig.3c
--- 11.4.30/man3c/getnetconfig.3c 2021-05-19 16:10:29.031943416 +0000
+++ 11.4.33/man3c/getnetconfig.3c 2021-05-19 16:11:41.685989481 +0000
@@ -50,8 +50,8 @@
A call to setnetconfig() has the effect of "binding" to or "rewinding"
the netconfig database. setnetconfig() must be called before the first
call to getnetconfig() and may be called at any other time. setnetcon-
- fig() need not be called before a call to getnetconfigent(). setnetcon-
- fig() returns a unique handle to be used by getnetconfig().
+ fig() does not need to be called before a call to getnetconfigent().
+ setnetconfig() returns a unique handle to be used by getnetconfig().
endnetconfig() should be called when processing is complete to release
@@ -99,8 +99,8 @@
setnetconfig() was not called previously).
- On success, getnetconfigent() returns a pointer to the struct netcon-
- fig structure corresponding to netid; otherwise it returns NULL.
+ On success, getnetconfigent() returns a pointer to the struct netconfig
+ structure corresponding to netid; otherwise it returns NULL.
nc_sperror() returns a pointer to a buffer which contains the error
@@ -115,12 +115,17 @@
+-----------------------------+-----------------------------+
| ATTRIBUTE TYPE | ATTRIBUTE VALUE |
+-----------------------------+-----------------------------+
+ |Interface Stability |Committed |
+ +-----------------------------+-----------------------------+
|MT-Level |MT-Safe |
+-----------------------------+-----------------------------+
SEE ALSO
getnetpath(3C), netconfig(5), attributes(7), environ(7)
+HISTORY
+ These functions have been present since the initial release of Solaris.
+
-Oracle Solaris 11.4 30 Dec 1996 getnetconfig(3C)
+Oracle Solaris 11.4 2 Feb 2021 getnetconfig(3C)
diff -Nurwb 11.4.30/man3c/getnetgrent.3c 11.4.33/man3c/getnetgrent.3c
--- 11.4.30/man3c/getnetgrent.3c 2021-05-19 16:10:29.037147344 +0000
+++ 11.4.33/man3c/getnetgrent.3c 2021-05-19 16:11:41.689485144 +0000
@@ -28,16 +28,17 @@
DESCRIPTION
These functions are used to test membership in and enumerate members of
"netgroup" network groups defined in a system database. Netgroups are
- sets of (machine,user,domain) triples (see netgroup(5)).
+ sets of (machine,user,domain) triples, as defined in the netgroup(5)
+ man page.
- These functions consult the source specified for netgroup in the
- /etc/nsswitch.conf file (see nsswitch.conf(5)).
+ These functions consult the source specified for netgroup in the nss-
+ witch.conf(5) configuration.
The function innetgr() returns 1 if there is a netgroup netgroup that
- contains the specified machine, user, domain triple as a member; oth-
- erwise it returns 0. Any of the supplied pointers machine, user, and
+ contains the specified machine, user, domain triple as a member; other-
+ wise it returns 0. Any of the supplied pointers machine, user, and
domain may be NULL, signifying a "wild card" that matches all values in
that position of the triple.
@@ -71,9 +72,9 @@
Upon successful return from getnetgrent(), the pointer mp points to a
string containing the name of the machine part of the member triple, up
- points to a string containing the user name and dp points to a string
+ points to a string containing the user name, and dp points to a string
containing the domain name. If the pointer returned for mp, up, or dp
- is NULL, it signifies that the element of the netgroup contains wild
+ is NULL, it signifies that the element of the netgroup contains a wild
card specifier in that position of the triple.
@@ -115,10 +116,6 @@
The functions setnetgrent() and endnetgrent() return 0 upon success.
-FILES
- /etc/nsswitch.conf
-
-
ATTRIBUTES
See attributes(7) for descriptions of the following attributes:
@@ -126,6 +123,8 @@
+-----------------------------+-----------------------------+
| ATTRIBUTE TYPE | ATTRIBUTE VALUE |
+-----------------------------+-----------------------------+
+ |Interface Stability |Committed |
+ +-----------------------------+-----------------------------+
|MT-Level |See DESCRIPTION section. |
+-----------------------------+-----------------------------+
@@ -138,9 +137,18 @@
releases.
NOTES
- Only the Network Information Services, NIS and NIS+, are supported as
- sources for the netgroup database.
+ Only network information services, such as NIS and LDAP, are supported
+ as sources for the netgroup database. There is no files source avail-
+ able for netgroups.
+
+HISTORY
+ The getnetgrent_r() function was added to Oracle Solaris in the Solaris
+ 2.3 release.
+
+
+ The getnetgrent(), setnetgrent(), endnetgrent(), and innetgr() func-
+ tions have been present since the initial release of Solaris.
-Oracle Solaris 11.4 19 May 2014 getnetgrent(3C)
+Oracle Solaris 11.4 2 Feb 2021 getnetgrent(3C)
diff -Nurwb 11.4.30/man3c/getnetpath.3c 11.4.33/man3c/getnetpath.3c
--- 11.4.30/man3c/getnetpath.3c 2021-05-19 16:10:29.044395069 +0000
+++ 11.4.33/man3c/getnetpath.3c 2021-05-19 16:11:41.700305937 +0000
@@ -38,7 +38,9 @@
A call to setnetpath() "binds" to or "rewinds" NETPATH. setnetpath()
must be called before the first call to getnetpath() and may be called
- at any other time. It returns a handle that is used by getnetpath().
+ at any other time. It returns a handle to be used as the handlep argu-
+ ment to getnetpath(), and which is freed by passing it as the handlep
+ argument to endnetpath().
getnetpath() silently ignores invalid NETPATH components. A NETPATH
@@ -60,8 +62,8 @@
RETURN VALUES
setnetpath() returns a handle that is used by getnetpath(). In case of
- an error, setnetpath() returns NULL. nc_perror() or nc_sperror() can
- be used to print out the reason for failure. See getnetconfig(3C).
+ an error, setnetpath() returns NULL. nc_perror() or nc_sperror() can be
+ used to print out the reason for failure. See getnetconfig(3C).
When first called, getnetpath() returns a pointer to the netconfig
@@ -79,12 +81,17 @@
+-----------------------------+-----------------------------+
| ATTRIBUTE TYPE | ATTRIBUTE VALUE |
+-----------------------------+-----------------------------+
+ |Interface Stability |Committed |
+ +-----------------------------+-----------------------------+
|MT-Level |MT-Safe |
+-----------------------------+-----------------------------+
SEE ALSO
getnetconfig(3C), netconfig(5), attributes(7), environ(7)
+HISTORY
+ These functions have been present since the initial release of Solaris.
+
-Oracle Solaris 11.4 30 Dec 1996 getnetpath(3C)
+Oracle Solaris 11.4 2 Feb 2021 getnetpath(3C)
diff -Nurwb 11.4.30/man3c/getpeername.3c 11.4.33/man3c/getpeername.3c
--- 11.4.30/man3c/getpeername.3c 2021-05-19 16:10:29.047437787 +0000
+++ 11.4.33/man3c/getpeername.3c 2021-05-19 16:11:41.707745582 +0000
@@ -18,8 +18,12 @@
pointed to by the address_len argument.
- If the actual length of the address is greater than the length of the
- supplied sockaddr structure, the stored address will be truncated.
+ The caller is responsible for providing a pointer to a memory buffer of
+ suitable size in the address argument (typically a struct sock-
+ addr_storage), and providing the size of that buffer in the value
+ pointed to by the address_len argument. If the actual length of the
+ address is greater than the length of the supplied sockaddr structure,
+ the stored address will be truncated.
If the protocol permits connections by unbound clients, and the peer is
@@ -79,9 +83,13 @@
+-----------------------------+-----------------------------+
SEE ALSO
- accept(3C), bind(3C), getsockname(3C), socket(3C), attributes(7), stan-
- dards(7)
+ accept(3C), bind(3C), getpeerucred(3C), getsockname(3C), socket(3C),
+ socket.h(3HEAD), attributes(7), standards(7)
+HISTORY
+ The getpeername() function has been present since the initial release
+ of Solaris.
-Oracle Solaris 11.4 16 May 2017 getpeername(3C)
+
+Oracle Solaris 11.4 2 Feb 2021 getpeername(3C)
diff -Nurwb 11.4.30/man3c/getprotobyname.3c 11.4.33/man3c/getprotobyname.3c
--- 11.4.30/man3c/getprotobyname.3c 2021-05-19 16:10:29.059813564 +0000
+++ 11.4.33/man3c/getprotobyname.3c 2021-05-19 16:11:41.715868621 +0000
@@ -61,9 +61,7 @@
The entry may come from one of the following sources: the protocols
file (see protocols(5)), and the NIS maps protocols.byname and proto-
cols.bynumber. The sources and their lookup order are specified in the
- /etc/nsswitch.conf file (see nsswitch.conf(5) for details). Some name
- services such as NIS will return only one name for a host, whereas oth-
- ers such as DNS will return all aliases.
+ nsswitch.conf(5) configuration.
The getprotobyname_r() and getprotobynumber_r() functions sequentially
@@ -85,14 +83,14 @@
getprotent() has the same functionality as getprotent_r() except that a
- static buffer is used to store returned results. This routine is unsafe
+ static buffer is used to store returned results. This routine is Unsafe
in a multithreaded application.
setprotoent() "rewinds" to the beginning of the enumeration of protocol
entries. If the stayopen flag is non-zero, resources such as open file
descriptors are not deallocated after each call to getprotobynumber_r()
- and getprotobyname_r(). Calls to getprotobyname_r() , The getprotoby-
+ and getprotobyname_r(). Calls to the getprotobyname_r(), getprotoby-
name(), getprotobynumber_r(), and getprotobynumber() functions might
leave the enumeration in an indeterminate state, so setprotoent()
should be called before the first call to getprotoent_r() or getpro-
@@ -137,9 +135,6 @@
FILES
/etc/protocols
-
- /etc/nsswitch.conf
-
ATTRIBUTES
See attributes(7) for descriptions of the following attributes:
@@ -147,6 +142,8 @@
+-----------------------------+-----------------------------+
| ATTRIBUTE TYPE | ATTRIBUTE VALUE |
+-----------------------------+-----------------------------+
+ |Interface Stability |Committed |
+ +-----------------------------+-----------------------------+
|MT-Level |See NOTES below. |
+-----------------------------+-----------------------------+
@@ -183,6 +180,16 @@
BUGS
Only the Internet protocols are currently understood.
+HISTORY
+ The reentrant interfaces getprotobyname_r(), getprotobynumber_r(), and
+ getprotoent_r() were added to Oracle Solaris in the Solaris 2.3
+ release.
+
+
+ The getprotobyname(), getprotobynumber(), getprotoent(), setprotoent(),
+ and endprotoent() functions have been present since the initial release
+ of Solaris.
+
-Oracle Solaris 11.4 19 May 2014 getprotobyname(3C)
+Oracle Solaris 11.4 2 Feb 2021 getprotobyname(3C)
diff -Nurwb 11.4.30/man3c/getservbyname.3c 11.4.33/man3c/getservbyname.3c
--- 11.4.30/man3c/getservbyname.3c 2021-05-19 16:10:29.064298413 +0000
+++ 11.4.33/man3c/getservbyname.3c 2021-05-19 16:11:41.722814824 +0000
@@ -38,11 +38,11 @@
DESCRIPTION
These functions are used to obtain entries for Internet services. An
entry may come from any of the sources for services specified in the
- /etc/nsswitch.conf file. See nsswitch.conf(5).
+ nsswitch.conf(5) configuration.
The getservbyname() and getservbyport() functions sequentially search
- from the beginning of the file until a matching protocol name or port
+ from the beginning of the file until a matching service name or port
number is found, or until end-of-file is encountered. If a protocol
name is also supplied (non-null), searches must also match the proto-
col.
@@ -57,10 +57,10 @@
All addresses are returned in network order. In order to interpret the
- addresses, byteorder(3C) must be used for byte order conversion. The
- string proto is used by both getservbyname() and getservbyport() to
- restrict the search to entries with the specified protocol. If proto is
- NULL, entries with any protocol can be returned.
+ addresses, ntohs(3C) must be used for byte order conversion. The string
+ proto is used by both getservbyname() and getservbyport() to restrict
+ the search to entries with the specified protocol. If proto is NULL,
+ entries with any protocol can be returned.
The functions setservent(), getservent(), and endservent() are used to
@@ -162,7 +162,7 @@
s_proto The name of the protocol to use when contacting the ser-
- vice
+ vice.
@@ -199,9 +199,6 @@
/etc/netconfig network configuration file
- /etc/nsswitch.conf configuration file for the name-service switch
-
-
ATTRIBUTES
See attributes(7) for descriptions of the following attributes:
@@ -209,13 +206,15 @@
+-----------------------------+-----------------------------+
| ATTRIBUTE TYPE | ATTRIBUTE VALUE |
+-----------------------------+-----------------------------+
+ |Interface Stability |Committed |
+ +-----------------------------+-----------------------------+
|MT-Level |See "Reentrant Interfaces" |
| |in DESCRIPTION. |
+-----------------------------+-----------------------------+
SEE ALSO
- Intro(2), byteorder(3C), netdir(3C), netdb.h(3HEAD), nsswitch.conf(5),
- netconfig(5), services(5), attributes(7)
+ Intro(2), getaddrinfo(3C), netdir(3C), ntohs(3C), netdb.h(3HEAD), nss-
+ witch.conf(5), netconfig(5), services(5), attributes(7)
WARNINGS
The reentrant interfaces getservbyname_r(), getservbyport_r(), and get-
@@ -254,6 +253,15 @@
discouraged; enumeration may not be supported for all database sources.
The semantics of enumeration are discussed further in nsswitch.conf(5).
+HISTORY
+ The reentrant interfaces getservtbyname_r(), getservbyport_r(), and
+ getservent_r() were added to Oracle Solaris in the Solaris 2.3 release.
+
+
+ The getservbyname(), getservbyport(), getservent(), setservent(), and
+ endservent() functions have been present since the initial release of
+ Solaris.
+
-Oracle Solaris 11.4 19 May 2014 getservbyname(3C)
+Oracle Solaris 11.4 2 Feb 2021 getservbyname(3C)
diff -Nurwb 11.4.30/man3c/getsockname.3c 11.4.33/man3c/getsockname.3c
--- 11.4.30/man3c/getsockname.3c 2021-05-19 16:10:29.074126050 +0000
+++ 11.4.33/man3c/getsockname.3c 2021-05-19 16:11:41.732485390 +0000
@@ -18,8 +18,12 @@
the object pointed to by the address_len argument.
- If the actual length of the address is greater than the length of the
- supplied sockaddr structure, the stored address will be truncated.
+ The caller is responsible for providing a pointer to a memory buffer of
+ suitable size in the address argument (typically a struct sock-
+ addr_storage), and providing the size of that buffer in the value
+ pointed to by the address_len argument. If the actual length of the
+ address is greater than the length of the supplied sockaddr structure,
+ the stored address will be truncated.
If the socket has not been bound to a local name, the value stored in
@@ -77,9 +81,13 @@
+-----------------------------+-----------------------------+
SEE ALSO
- accept(3C), bind(3C), getpeername(3C), socket(3C) attributes(7), stan-
+ accept(3C), bind(3C), getpeername(3C), socket(3C), attributes(7), stan-
dards(7)
+HISTORY
+ The getsockname() function has been present since the initial release
+ of Solaris.
-Oracle Solaris 11.4 16 Aug 2017 getsockname(3C)
+
+Oracle Solaris 11.4 2 Feb 2021 getsockname(3C)
diff -Nurwb 11.4.30/man3c/getsockopt.3c 11.4.33/man3c/getsockopt.3c
--- 11.4.30/man3c/getsockopt.3c 2021-05-19 16:10:29.085194984 +0000
+++ 11.4.33/man3c/getsockopt.3c 2021-05-19 16:11:41.755358050 +0000
@@ -171,14 +171,14 @@
sockets. Requires PRIV_SYS_FLOW_CONFIG privilege.
- SO_NOSIGPIPE Get and set whether this specific socket returns
- only EPIPE on write when the socket is discon-
- nected or whether a SIGPIPE is send.
+ SO_NOSIGPIPE Get and set whether this specific socket only
+ returns EPIPE on write when the socket is discon-
+ nected, or whether a SIGPIPE signal is also sent.
SO_RECVUCRED enable/disable receiving the senders credential
using a SCM_UCRED message. Only supported on
- DGRAM sockets.
+ SOCK_DGRAM sockets. See ucred_get(3C).
@@ -257,7 +257,7 @@
for that particular protocol. Use the ipadm(8) utility to determine the
current default values. See the Oracle Solaris 11.4 Tunable Parameters
Reference Manual for information on setting the values of max_buf for
- either TCP, UDP or both. At present, lowering SO_RCVBUF on a TCP con-
+ either TCP, UDP, or both. At present, lowering SO_RCVBUF on a TCP con-
nection after it has been established has no effect.
@@ -341,19 +341,15 @@
tion is established, connect() returns.
- SO_FLOW_SLA socket option can be used to set per socket service level
- properties for the socket. The properties, priority and bandwidth limit
- are supported in SOCK_FLOW_PROP_VERSION1. These properties are effec-
- tive for both outbound and inbound packets.
-
-
- Only TCP and UDP PF_INET/PF_INET6 sockets are supported at this time.
-
-
- The socket option takes a pointer to a sock_flow_props_t structure as
- the value:
+ The SO_FLOW_SLA socket option can be used to set per socket service
+ level properties for the socket. The properties, priority, and band-
+ width limit are supported in SOCK_FLOW_PROP_VERSION1. These properties
+ are effective for both outbound and inbound packets. Only TCP and UDP
+ PF_INET/PF_INET6 sockets are supported at this time.
+ The SO_FLOW_SLA socket option takes a pointer to a sock_flow_props_t
+ structure as the value:
typedef struct sock_flow_props_s {
int sfp_version;
@@ -385,29 +381,29 @@
ignored.
USAGE
- Example 1 Examples of Usage
+ Example 1 Creating and using flows
- a. at the time of socket(3c) call
+ /* a. at the time of socket(3c) call */
sock_flow_props_t sprop;
...
sock = socket(AF_INET, SOCK_DGRAM, 0);
sprop.sfp_version = SOCK_FLOW_PROP_VERSION1;
sprop.sfp_mask = SFP_PRIORITY;
sprop.sfp_priority = SFP_PRIO_HIGH;
- setsockopt(sock, SOL_SOCKET, SO_FLOW_SLA, &sprop, sizeof
- (sprop));
+ setsockopt(sock, SOL_SOCKET, SO_FLOW_SLA, &sprop,
+ sizeof (sprop));
...
- b. at the time of the accept(3c) call
+ /* b. at the time of the accept(3c) call */
sock_flow_props_t sprop;
...
newsock = accept(listen_sock, (struct sockaddr *)&from,
&fromlen);
// construct sprop
- setsockopt(newsock, SOL_SOCKET, SO_FLOW_SLA, &sprop, sizeof
- (sprop));
+ setsockopt(newsock, SOL_SOCKET, SO_FLOW_SLA, &sprop,
+ sizeof (sprop));
...
@@ -455,8 +451,8 @@
The following is an example code using SO_FLOW_NAME:
-
char flow[MAXUSERFLOWNAMELEN];
+
(void) strlcpy(flow, "tenantA", MAXUSERFLOWNAMELEN);
/* Assign a socket to the flow */
rv = setsockopt(sock1, SOL_SOCKET, SO_FLOW_NAME, flow, strlen(flow));
@@ -471,7 +467,6 @@
For a given socket, this sequence of setsockopt() calls is allowed:
-
setsockopt(s, SO_FLOW_NAME, ...)
setsockopt(s, SO_FLOW_SLA, ...)
@@ -484,7 +479,6 @@
For a given socket, this sequence is not allowed:
-
setsockopt(s, SO_FLOW_SLA, ...);
setsockopt(s, SO_FLOW_NAME, ...);
@@ -582,14 +576,51 @@
+-----------------------------+-----------------------------+
SEE ALSO
- close(2), ioctl(2), read(2), write(2), bind(3C), connect(3C), getproto-
- byname(3C), recv(3C), recvmsg(3C), send(3C), socket(3C),
+ close(2), ioctl(2), read(2), write(2), bind(3C), connect(3C),
+ getprotobyname(3C), recv(3C), recvmsg(3C), send(3C), socket(3C),
socket.h(3HEAD), tcp(4P), udp(4P), attributes(7), zones(7), flowadm(8),
ipadm(8)
Oracle Solaris 11.4 Tunable Parameters Reference Manual
+HISTORY
+ The getsockopt() and setsockopt() functions have been present since the
+ initial release of Solaris.
+
+
+ Support for the following options is available in Oracle Solaris start-
+ ing with the listed release:
+
+
+ +-------------------------------------------------+--------------------+
+ | OPTION | RELEASE |
+ +-------------------------------------------------+--------------------+
+ |SO_FLOW_NAME, SO_NOSIGPIPE |11.4.0 |
+ +-------------------------------------------------+--------------------+
+ |SO_LISTENQLIMIT |11.3.22 |
+ +-------------------------------------------------+--------------------+
+ |SO_FLOW_SLA |11.2.0 |
+ +-------------------------------------------------+--------------------+
+ |SO_EXCLBIND, SO_PASSIVE_CONNECT, SO_REUSEPORT, |11.0.0 |
+ |SO_TIMESTAMP | |
+ +-------------------------------------------------+--------------------+
+ |SO_DOMAIN |10 4/08 (Update 5) |
+ +-------------------------------------------------+--------------------+
+ |SO_ALLZONES |10 8/07 (Update 4) |
+ +-------------------------------------------------+--------------------+
+ |SO_MAC_EXEMPT |10 11/06 (Update 3) |
+ +-------------------------------------------------+--------------------+
+ |SO_RECVUCRED |10 3/05 |
+ +-------------------------------------------------+--------------------+
+ |SO_DGRAM_ERRIND |2.6 |
+ +-------------------------------------------------+--------------------+
+ |SO_BROADCAST, SO_DEBUG, SO_DONTROUTE, SO_ERROR, |2.0 |
+ |SO_KEEPALIVE, SO_LINGER, SO_OOBINLINE, | |
+ |SO_PROTOTYPE, SO_RCVBUF, SO_RCVTIMEO, | |
+ |SO_REUSEADDR, SO_SNDBUF, SO_SNDTIMEO, SO_TYPE | |
+ +-------------------------------------------------+--------------------+
+
-Oracle Solaris 11.4 8 Oct 2019 getsockopt(3C)
+Oracle Solaris 11.4 2 Feb 2021 getsockopt(3C)
diff -Nurwb 11.4.30/man3c/getsourcefilter.3c 11.4.33/man3c/getsourcefilter.3c
--- 11.4.30/man3c/getsourcefilter.3c 2021-05-19 16:10:29.091823983 +0000
+++ 11.4.33/man3c/getsourcefilter.3c 2021-05-19 16:11:41.771249591 +0000
@@ -151,8 +151,13 @@
socket(3C), if_nametoindex(3C), attributes(7)
- RFC 3678
+ RFC 3678, Socket Interface Extensions for Multicast Source Filters.
+ January 2004. https://tools.ietf.org/html/rfc3678
+HISTORY
+ These functions were added to Oracle Solaris in the Solaris 10 1/06
+ release (Solaris 10 Update 1).
-Oracle Solaris 11.4 19 May 2014 getsourcefilter(3C)
+
+Oracle Solaris 11.4 2 Feb 2021 getsourcefilter(3C)
diff -Nurwb 11.4.30/man3c/if_nametoindex.3c 11.4.33/man3c/if_nametoindex.3c
--- 11.4.30/man3c/if_nametoindex.3c 2021-05-19 16:10:29.096879843 +0000
+++ 11.4.33/man3c/if_nametoindex.3c 2021-05-19 16:11:41.780610296 +0000
@@ -16,7 +16,7 @@
char *if_indextoname(unsigned int ifindex, char *ifname);
- struct if_nameindex *if_nameindex(void)
+ struct if_nameindex *if_nameindex(void);
void if_freenameindex(struct if_nameindex *ptr);
@@ -38,38 +38,39 @@
dynamic memory allocated by the previous function.
- Network interfaces are normally known by names such as eri0, sl1, and
+ Network interfaces are normally known by names such as net0, net1, and
the like. The ifname argument must point to a buffer of at least
IF_NAMESIZE bytes into which the interface name corresponding to the
specified index is returned. IF_NAMESIZE is defined in <net/if.h> and
its value includes a terminating null byte at the end of the interface
name.
- if_nametoindex() The if_nametoindex() function returns the interface
- index corresponding to the interface name pointed
- to by the ifname pointer. If the specified inter-
- face name does not exist, the return value is 0,
- and errno is set to ENXIO. If there was a system
- error, such as running out of memory, the return
- value is 0 and errno is set to the proper value,
- for example, ENOMEM.
-
-
- if_indextoname() The if_indextoname() function maps an interface
- index into its corresponding name. This pointer is
- also the return value of the function. If there is
- no interface corresponding to the specified index,
- NULL is returned, and errno is set to ENXIO, if
- there was a system error, such as running out of
- memory, if_indextoname() returns NULL and errno
- would be set to the proper value, for example,
+ if_nametoindex()
+
+ The if_nametoindex() function returns the interface index corre-
+ sponding to the interface name pointed to by the ifname pointer. If
+ the specified interface name does not exist, the return value is 0,
+ and errno is set to ENXIO. If there was a system error, such as
+ running out of memory, the return value is 0 and errno is set to
+ the proper value, for example, ENOMEM.
+
+
+ if_indextoname()
+
+ The if_indextoname() function maps an interface index into its cor-
+ responding name. This pointer is also the return value of the func-
+ tion. If there is no interface corresponding to the specified
+ index, NULL is returned, and errno is set to ENXIO, if there was a
+ system error, such as running out of memory, if_indextoname()
+ returns NULL and errno is set to the proper value, for example,
ENOMEM.
- if_nameindex() The if_nameindex() function returns an array of
- if_nameindex structures, one structure per inter-
- face. The if_nameindex structure holds the informa-
- tion about a single interface and is defined when
+ if_nameindex()
+
+ The if_nameindex() function returns an array of if_nameindex struc-
+ tures, one structure per interface. The if_nameindex structure
+ holds the information about a single interface and is defined when
the <net/if.h> header is included:
@@ -78,24 +79,23 @@
char *if_name; /* "net0", ... */
};
- While any IPMP IP interfaces are returned by
- if_nameindex(), the underlying IP interfaces that
- comprise each IPMP group are not returned.
-
- The end of the array of structures is indicated by
- a structure with an if_index of 0 and an if_name of
- NULL. The function returns a null pointer upon an
- error and sets errno to the appropriate value. The
- memory used for this array of structures along with
- the interface names pointed to by the if_name mem-
- bers is obtained dynamically. This memory is freed
- by the if_freenameindex() function.
-
-
- if_freenameindex() The if_freenameindex() function frees the dynamic
- memory that was allocated by if_nameindex(). The
- argument to this function must be a pointer that
- was returned by if_nameindex().
+ While any IPMP IP interfaces are returned by if_nameindex(), the
+ underlying IP interfaces that comprise each IPMP group are not
+ returned.
+
+ The end of the array of structures is indicated by a structure with
+ an if_index of 0 and an if_name of NULL. The function returns a
+ null pointer upon an error and sets errno to the appropriate value.
+ The memory used for this array of structures along with the inter-
+ face names pointed to by the if_name members is obtained dynami-
+ cally. This memory is freed by the if_freenameindex() function.
+
+
+ if_freenameindex()
+
+ The if_freenameindex() function frees the dynamic memory that was
+ allocated by if_nameindex(). The argument to this function must be
+ a pointer that was returned by if_nameindex().
ATTRIBUTES
@@ -105,8 +105,6 @@
+-----------------------------+-----------------------------+
| ATTRIBUTE TYPE | ATTRIBUTE VALUE |
+-----------------------------+-----------------------------+
- |Availability |system/library |
- +-----------------------------+-----------------------------+
|Interface Stability |Committed |
+-----------------------------+-----------------------------+
|MT-Level |MT-Safe |
@@ -115,8 +113,15 @@
+-----------------------------+-----------------------------+
SEE ALSO
- if(4P), attributes(7), ifconfig(8)
+ if(4P), attributes(7), dladm(8), ifconfig(8), ipadm(8)
+
+
+ Gilligan, R. RFC 3493, Basic Socket Interface Extensions for IPv6. Net-
+ work Working Group. February 2003. https://tools.ietf.org/html/rfc3493
+
+HISTORY
+ These functions were added to Oracle Solaris in the Solaris 8 release.
-Oracle Solaris 11.4 16 Sep 2014 if_nametoindex(3C)
+Oracle Solaris 11.4 2 Feb 2021 if_nametoindex(3C)
diff -Nurwb 11.4.30/man3c/inet.3c 11.4.33/man3c/inet.3c
--- 11.4.30/man3c/inet.3c 2021-05-19 16:10:29.100484794 +0000
+++ 11.4.33/man3c/inet.3c 2021-05-19 16:11:41.787348961 +0000
@@ -40,8 +40,11 @@
char *inet_ntoa(struct in_addr in);
DESCRIPTION
- The inet_ntop() and inet_pton() functions can manipulate both IPv4 and
- IPv6 addresses. The inet_aton(), inet_addr(), inet_network(),
+ These functions manipulate IP addresses in various ways, including
+ transformations between string representations and numeric address
+ forms. The inet_ntop() and inet_pton() functions can manipulate both
+ IPv4 and IPv6 addresses, and are thus recommended over their older
+ IPv4-only counterparts. The inet_aton(), inet_addr(), inet_network(),
inet_makeaddr(), inet_lnaof(), inet_netof(), and inet_ntoa() functions
can only manipulate IPv4 addresses.
@@ -85,8 +88,12 @@
address, respectively.
+ The inet_addr() function has been obsoleted by inet_aton(), which in
+ turn has been superseded by inet_pton().
+
+
The inet_ntoa() function returns a pointer to a string in the base 256
- notation d.d.d.d. See the following section on IPv4 addresses.
+ notation d.d.d.d. See the following section on IPv4 Addresses.
Internet addresses are returned in network order, bytes ordered from
@@ -133,8 +140,6 @@
::FFFF:129.144.52.38
::129.144.52.38
-
-
The ::FFFF:d.d.d.d and ::d.d.d.d pieces are the general
forms of an IPv4-mapped IPv6 address and an IPv4-compatible
IPv6 address.
@@ -203,9 +208,6 @@
Each number has one to three digits with a decimal value between 0 and
255.
-
- The inet_addr() function has been obsoleted by inet_aton().
-
RETURN VALUES
The inet_aton() function returns nonzero if the address is valid, 0 if
the address is invalid.
@@ -248,13 +250,17 @@
+-----------------------------+-----------------------------+
- The inet_ntop(), inet_pton(), inet_aton(), inet_addr(), and inet_net-
- work() functions are Committed. The inet_lnaof(), inet_makeaddr(),
+ The inet_ntop(), inet_pton(), inet_aton(), inet_addr(), and inet_ntoa()
+ functions are Committed. The inet_lnaof(), inet_makeaddr(),
inet_netof(), and inet_network() functions are Committed (Obsolete).
SEE ALSO
- gethostbyname(3C), getipnodebyname(3C), getnetbyname(3C),
- inet.h(3HEAD), hosts(5), networks(5), attributes(7)
+ byteorder(3C), getaddrinfo(3C), getnetbyname(3C), inet.h(3HEAD),
+ hosts(5), networks(5), attributes(7)
+
+
+ Gilligan, R. RFC 3493, Basic Socket Interface Extensions for IPv6. Net-
+ work Working Group. February 2003. https://tools.ietf.org/html/rfc3493
NOTES
The return value from inet_ntoa() points to a buffer which is overwrit-
@@ -266,9 +272,21 @@
BUGS
The problem of host byte ordering versus network byte ordering is con-
- fusing. A simple way to specify Class C network addresses in a manner
- similar to that for Class B and Class A is needed.
+ fusing. See the byteorder(3C) man page for functions to handle byte
+ ordering.
+
+HISTORY
+ The inet_aton() function was added to Oracle Solaris in the Solaris 10
+ 4/08 (Update 5) release.
+
+
+ The inet_ntop() and inet_pton() functions were added to Oracle Solaris
+ in the Solaris 8 release.
+
+
+ The rest of the functions described in this man page have been present
+ since the initial release of Solaris.
-Oracle Solaris 11.4 24 Nov 2017 inet(3C)
+Oracle Solaris 11.4 2 Feb 2021 inet(3C)
diff -Nurwb 11.4.30/man3c/inet6_opt.3c 11.4.33/man3c/inet6_opt.3c
--- 11.4.30/man3c/inet6_opt.3c 2021-05-19 16:10:29.109796858 +0000
+++ 11.4.33/man3c/inet6_opt.3c 2021-05-19 16:11:41.792849364 +0000
@@ -39,8 +39,8 @@
void *val, socklen_t *vallen);
DESCRIPTION
- The inet6_opt functions enable users to manipulate options without hav-
- ing to know the structure of the option header.
+ The inet6_opt functions enable users to manipulate IPv6 options without
+ having to know the structure of the option header.
The inet6_opt_init() function returns the number of bytes needed for
@@ -86,7 +86,7 @@
The inet6_opt_next() function parses the received option extension
headers which return the next option. The extbuf and extlen parameters
specify the extension header. The offset should be zero for the first
- option or the length returned by a previous call to either
+ option, or the length returned by a previous call to either
inet6_opt_next() or inet6_opt_find(). The offset specifies where to
continue scanning the extension buffer. The subsequent option is
returned by updating typep, lenp, and databufp. The typep argument
@@ -155,9 +155,14 @@
+-----------------------------+-----------------------------+
SEE ALSO
- RFC 3542 - Advanced Sockets Application Programming Interface (API) for
- IPv6, The Internet Society. May 2003
+ RFC 3542, Advanced Sockets Application Program Interface (API) for
+ IPv6, The Internet Society. May 2003.
+ https://tools.ietf.org/html/rfc3542
+HISTORY
+ These functions were added to Oracle Solaris in the Solaris 10 3/05
+ release.
-Oracle Solaris 11.4 19 May 2014 inet6_opt(3C)
+
+Oracle Solaris 11.4 2 Feb 2021 inet6_opt(3C)
diff -Nurwb 11.4.30/man3c/inet6_rth.3c 11.4.33/man3c/inet6_rth.3c
--- 11.4.30/man3c/inet6_rth.3c 2021-05-19 16:10:29.121767639 +0000
+++ 11.4.33/man3c/inet6_rth.3c 2021-05-19 16:11:41.798219873 +0000
@@ -28,7 +28,7 @@
struct in6_addr *inet6_rth_getaddr(const void *bp, int index);
DESCRIPTION
- The inet6_rth functions enable users to manipulate routing headers
+ The inet6_rth functions enable users to manipulate IPv6 routing headers
without having knowledge of their structure.
@@ -70,8 +70,6 @@
To receive a routing header, the application must enable the
IPV6_RECVRTHDR socket option:
-
-
int on = 1;
setsockopt (fd, IPPROTO_IPV6, IPV6_RECVRTHDR, &on, sizeof(on));
@@ -84,7 +82,7 @@
To send a routing header, the application specifies it either as ancil-
lary data in a call to sendmsg() or by using setsockopt(). For the
sending side, this API assumes the number of occurrences of the routing
- header as described in RFC-2460. Applications can specify no more than
+ header as described in RFC 2460. Applications can specify no more than
one outgoing routing header.
@@ -100,18 +98,16 @@
should be accessed using the inet6_rth functions.
- The following constant is defined as a result of including the
+ The following constant is defined as a result of including the header
<netinet/in.h>:
-
-
#define IPV6_RTHDR_TYPE_0 0 /* IPv6 Routing header type 0 */
- ROUTING HEADER OPTION
+ Routing Header Option
Source routing in IPv6 is accomplished by specifying a routing header
as an extension header. There are a number of different routing head-
- ers, but IPv6 currently defines only the Type 0 header. See RFC-2460.
+ ers, but IPv6 currently defines only the Type 0 header. See RFC 2460.
The Type 0 header supports up to 127 intermediate nodes, limited by the
length field in the extension header. With this maximum number of
intermediate nodes, a source, and a destination, there are 128 hops.
@@ -155,9 +151,21 @@
+-----------------------------+-----------------------------+
SEE ALSO
- RFC 3542- Advanced Sockets Application Programming Interface (API) for
- IPv6, The Internet Society. May 2003
+ setsockopt(3C), sendmsg(3C)
+
+
+ RFC 2460, Internet Protocol, Version 6 (IPv6) Specification, The Inter-
+ net Society. December 1998. https://tools.ietf.org/html/rfc2460
+
+
+ RFC 3542, Advanced Sockets Application Program Interface (API) for
+ IPv6, The Internet Society. May 2003.
+ https://tools.ietf.org/html/rfc3542
+
+HISTORY
+ These functions were added to Oracle Solaris in the Solaris 10 3/05
+ release.
-Oracle Solaris 11.4 19 May 2014 inet6_rth(3C)
+Oracle Solaris 11.4 2 Feb 2021 inet6_rth(3C)
diff -Nurwb 11.4.30/man3c/listen.3c 11.4.33/man3c/listen.3c
--- 11.4.30/man3c/listen.3c 2021-05-19 16:10:29.127940721 +0000
+++ 11.4.33/man3c/listen.3c 2021-05-19 16:11:41.813878167 +0000
@@ -92,6 +92,10 @@
SEE ALSO
accept(3C), connect(3C), socket(3C), attributes(7), standards(7)
+HISTORY
+ The listen() function has been present since the initial release of
+ Solaris.
-Oracle Solaris 11.4 16 Aug 2017 listen(3C)
+
+Oracle Solaris 11.4 2 Feb 2021 listen(3C)
diff -Nurwb 11.4.30/man3c/netdir.3c 11.4.33/man3c/netdir.3c
--- 11.4.30/man3c/netdir.3c 2021-05-19 16:10:29.137564697 +0000
+++ 11.4.33/man3c/netdir.3c 2021-05-19 16:11:41.830641075 +0000
@@ -45,6 +45,11 @@
port.
+ These functions are primarily used with the RPC and TLI frameworks. For
+ general use, especially with the sockets API, the getaddrinfo(3C) and
+ getnameinfo(3C) functions are recommended instead.
+
+
The netdir_getbyname() function maps the machine name and service name
in the nd_hostserv structure to a collection of addresses of the type
understood by the transport identified in the netconfig structure. This
@@ -159,40 +164,46 @@
The specific actions of each option follow.
- ND_SET_BROADCAST Sets the transport provider up to allow broad-
- cast if the transport supports broadcast.
- fildes is a file descriptor into the trans-
- port, that is, the result of a t_open of
- /dev/udp. pointer_to_args is not used. If this
- completes, broadcast operations can be per-
- formed on file descriptor fildes.
-
-
- ND_SET_RESERVEDPORT Allows the application to bind to a reserved
- port if that concept exists for the transport
- provider. fildes is an unbound file descriptor
- into the transport. If pointer_to_args is
- NULL, fildes is bound to a reserved port. If
- pointer_to_args is a pointer to a netbuf
- structure, an attempt is made to bind to any
- reserved port on the specified address.
-
-
- ND_CHECK_RESERVEDPORT Used to verify that the address corresponds to
- a reserved port if that concept exists for the
- transport provider. fildes is not used.
- pointer_to_args is a pointer to a netbuf
- structure that contains the address. This
- option returns 0 only if the address specified
- in pointer_to_args is reserved.
-
-
- ND_MERGEADDR Used to take a "local address" such as a
- 0.0.0.0 TCP address and return a "real
- address" to which client machines can connect.
- fildes is not used. pointer_to_args is a
- pointer to a struct nd_mergearg which has the
- following members:
+ ND_SET_BROADCAST
+
+ Sets the transport provider up to allow broadcast if the transport
+ supports broadcast. fildes is a file descriptor into the transport,
+ that is, the result of a t_open of /dev/udp. pointer_to_args is not
+ used. If this completes, broadcast operations can be performed on
+ file descriptor fildes.
+
+
+ ND_SET_RESERVEDPORT
+
+ Allows the application to bind to a reserved port if that concept
+ exists for the transport provider. fildes is an unbound file
+ descriptor into the transport. If pointer_to_args is NULL, fildes
+ is bound to a reserved port. If pointer_to_args is a pointer to a
+ netbuf structure, an attempt is made to bind to any reserved port
+ on the specified address.
+
+
+ ND_CHECK_RESERVEDPORT
+
+ Used to verify that the address corresponds to a reserved port if
+ that concept exists for the transport provider. fildes is not used.
+ pointer_to_args is a pointer to a netbuf structure that contains
+ the address. This option returns 0 only if the address specified in
+ pointer_to_args is reserved.
+
+ This option only checks the port value against IPPORT_RESERVED and
+ does not take into account the controls on port usage handled via
+ privileges(7) or additional ports restricted via the "extra-priv-
+ ports" or "smallest-nonpriv-port" protocol properties which may be
+ set via ipadm(8).
+
+
+ ND_MERGEADDR
+
+ Used to take a "local address" such as a 0.0.0.0 TCP address and
+ return a "real address" to which client machines can connect.
+ fildes is not used. pointer_to_args is a pointer to a struct
+ nd_mergearg which has the following members:
@@ -203,11 +214,9 @@
- If s_uaddr is an address such as 0.0.0.0.1.12,
- and the call is successful m_uaddr is set to
- an address such as 192.11.109.89.1.12. For
- most transports, m_uaddr is identical to
- s_uaddr.
+ If s_uaddr is an address such as 0.0.0.0.1.12, and the call is suc-
+ cessful m_uaddr is set to an address such as 192.11.109.89.1.12.
+ For most transports, m_uaddr is identical to s_uaddr.
RETURN VALUES
@@ -236,13 +245,18 @@
+-----------------------------+-----------------------------+
| ATTRIBUTE TYPE | ATTRIBUTE VALUE |
+-----------------------------+-----------------------------+
+ |Interface Stability |Committed |
+ +-----------------------------+-----------------------------+
|MT-Level |Safe |
+-----------------------------+-----------------------------+
SEE ALSO
- gethostname(3C), getnetconfig(3C), getnetpath(3C), netconfig(5),
- attributes(7)
+ getaddrinfo(3C), gethostname(3C), getnetconfig(3C), getnetpath(3C),
+ netconfig(5), attributes(7)
+
+HISTORY
+ These functions have been present since the initial release of Solaris.
-Oracle Solaris 11.4 17 Aug 2018 netdir(3C)
+Oracle Solaris 11.4 2 Feb 2021 netdir(3C)
diff -Nurwb 11.4.30/man3c/rcmd.3c 11.4.33/man3c/rcmd.3c
--- 11.4.30/man3c/rcmd.3c 2021-05-19 16:10:29.148875414 +0000
+++ 11.4.33/man3c/rcmd.3c 2021-05-19 16:11:41.837280216 +0000
@@ -117,6 +117,14 @@
~/.rhosts user's trusted hosts and users
+USAGE
+ The protocols underlying these functions use weak authentication and
+ offer no protection against spoofing or snooping of traffic. The
+ in.rshd(8) server is disabled by default on Oracle Solaris and most
+ other modern operating systems. Use of the sshd(8) server is strongly
+ recommended instead, and a programming interface to it is available via
+ the libssh2 library.
+
ATTRIBUTES
See attributes(7) for descriptions of the following attributes:
@@ -124,6 +132,8 @@
+-----------------------------+-----------------------------+
| ATTRIBUTE TYPE | ATTRIBUTE VALUE |
+-----------------------------+-----------------------------+
+ |Interface Stability |Committed |
+ +-----------------------------+-----------------------------+
|MT-Level |Unsafe |
+-----------------------------+-----------------------------+
@@ -135,6 +145,14 @@
rlogin(1), rsh(1), Intro(2), getaddrinfo(3C), gethostbyname(3C),
rexec(3C), attributes(7), in.rexecd(8), in.rshd(8)
+HISTORY
+ The rcmd_af() and rresvport_af() functions were added to Oracle Solaris
+ in the Solaris 8 release.
+
+
+ The rcmd(), rresvport(), and ruserok() functions have been present
+ since the initial release of Solaris.
+
-Oracle Solaris 11.4 16 May 2014 rcmd(3C)
+Oracle Solaris 11.4 2 Feb 2021 rcmd(3C)
diff -Nurwb 11.4.30/man3c/recv.3c 11.4.33/man3c/recv.3c
--- 11.4.30/man3c/recv.3c 2021-05-19 16:10:29.156187967 +0000
+++ 11.4.33/man3c/recv.3c 2021-05-19 16:11:41.849694150 +0000
@@ -23,12 +23,12 @@
If from is a non-NULL pointer, the source address of the message is
- filled in. The value-result parameter fromlen is initialized to the
- size of the buffer associated with from and modified on return to indi-
- cate the actual size of the address stored in the buffer. The length of
- the message is returned. If a message is too long to fit in the sup-
- plied buffer, excess bytes may be discarded depending on the type of
- socket from which the message is received. See socket(3C).
+ filled in. The value-result parameter fromlen is initialized by the
+ caller to the size of the buffer associated with from and modified on
+ return to indicate the actual size of the address stored in the buffer.
+ The length of the message is returned. If a message is too long to fit
+ in the supplied buffer, excess bytes may be discarded depending on the
+ type of socket from which the message is received. See socket(3C).
If no messages are available at the socket, the receive call waits for
@@ -38,7 +38,7 @@
For processes on the same host, recvmsg() can be used to receive a file
descriptor from another process, but it cannot receive ancillary data.
- See libxnet(3LIB).
+ See socket.h(3HEAD).
If a zero-length buffer is specified for a message, an EOF condition
@@ -47,7 +47,8 @@
provided when recvmsg() passes a file descriptor.
- The select(3C) call can be used to determine when more data arrives.
+ The poll(2) or select(3C) calls can be used to determine when more data
+ arrives.
The flags parameter is formed by an OR operation on one or more of the
@@ -87,7 +88,17 @@
The recvmsg() function call uses a msghdr structure defined in
- <sys/socket.h> to minimize the number of directly supplied parameters.
+ socket.h(3HEAD) to minimize the number of directly supplied parameters.
+ recvmmsg(3C) is an extension of the recvmsg() function that allows
+ receiving multiple messages in a single call.
+
+
+ The contents of the msghdr structure differ depending on whether or not
+ __USE_SUNOS_SOCKETS__ is defined before including the <sys/socket.h>
+ header. All source files accessing msghdr structures or calling the
+ recvmsg() function must be compiled with either __USE_SUNOS_SOCKETS__
+ defined or all with it undefined -- mixing and matching will not work.
+ See the socket.h(3HEAD) manual page for details.
RETURN VALUES
Upon successful completion, these functions return the number of bytes
@@ -157,14 +168,15 @@
EFAULT msg points to an illegal address.
- EINVAL The msg_iovlen member of the msghdr structure pointed to by
- msg is less than or equal to 0, or greater than [IOV_MAX}.
- See Intro(2) for a definition of [IOV_MAX}.
+ EMSGSIZE The msg_iovlen member of the msghdr structure pointed to by
+ msg is less than or equal to 0, or greater than {IOV_MAX}.
+ See Intro(2) for a definition of {IOV_MAX}.
- EINVAL One of the iov_len values in the msg_iov array member of the
- msghdr structure pointed to by msg is negative, or the sum of
- the iov_len values in the msg_iov array overflows a ssize_t.
+ EINVAL One of the iov_len values in the msg_iov array member of
+ the msghdr structure pointed to by msg is negative, or the
+ sum of the iov_len values in the msg_iov array overflows a
+ ssize_t.
ATTRIBUTES
@@ -182,10 +194,13 @@
+-----------------------------+-----------------------------+
SEE ALSO
- fcntl(2), ioctl(2), read(2), connect(3C), getsockopt(3C), recvmmsg(3C),
- select(3C), send(3C), socket(3C), socket.h(3HEAD), libxnet(3LIB),
+ fcntl(2), ioctl(2), poll(2), read(2), connect(3C), getsockopt(3C),
+ recvmmsg(3C), select(3C), send(3C), socket(3C), socket.h(3HEAD),
attributes(7)
+HISTORY
+ These functions have been present since the initial release of Solaris.
+
-Oracle Solaris 11.4 4 May 2020 recv(3C)
+Oracle Solaris 11.4 2 Feb 2021 recv(3C)
diff -Nurwb 11.4.30/man3c/recvmmsg.3c 11.4.33/man3c/recvmmsg.3c
--- 11.4.30/man3c/recvmmsg.3c 2021-05-19 16:10:29.175042867 +0000
+++ 11.4.33/man3c/recvmmsg.3c 2021-05-19 16:11:41.853407837 +0000
@@ -12,7 +12,8 @@
unsigned int flags, struct timespec *timeout);
PARAMETERS
- s The socket descriptor
+ s The socket descriptor. For more information, see the
+ socket(3C) man page.
msgvec Pointer to an array of mmsghdr structures
@@ -21,27 +22,23 @@
vlen The number of elements in the array of mmsghdr structures
- flags Flags for receiving as in the recvmsg() function. In addi-
+ flags Flags for receiving as in the recvmsg(3C) function. In addi-
tion the following flag is defined:
-
MSG_WAITFORONE Turns on MSG_DONTWAIT after the first mes-
sage has been received.
-
timeout Pointer to a struct timespec defining a timeout for the
receive operation. The specified timeout is subjected to
- rounding, based on system clock resolution
-
+ rounding, based on system clock resolution.
DESCRIPTION
- The recvmmsg() function is an extension to the existing recvmsg() func-
- tion that allows the caller to receive multiple messages on a socket in
- a single invocation. The s socket is created using the socket() func-
- tion. For more information, see the socket(3C) man page.
+ The recvmmsg() function is an extension to the recvmsg(3C) function
+ that allows the caller to receive multiple messages on a socket in a
+ single invocation.
A blocking recvmmsg() function call blocks until the vlen messages have
@@ -52,15 +49,13 @@
The mmsghdr structure is defined as:
-
struct mmsghdr {
struct msghdr msg_hdr; /* Message header */
ssize_t msg_len; /* Number of bytes received */
};
-
- msg_hdr msghdr structure as described in <sys/socket.h>
+ msg_hdr msghdr structure as described in socket.h(3HEAD)
msg_len Is used to return the number of bytes received in the mes-
@@ -69,25 +64,30 @@
+ The contents of the msghdr structure differ depending on whether or not
+ __USE_SUNOS_SOCKETS__ is defined before including the <sys/socket.h>
+ header. All source files accessing msghdr structures or calling the
+ recvmmsg() function must be compiled with either __USE_SUNOS_SOCKETS__
+ defined or all with it undefined -- mixing and matching will not work.
+ See the socket.h(3HEAD) manual page for details.
+
RETURN VALUES
Upon successful completion, the recvmmsg() function returns the number
of messages received. The number of bytes received is the arithmetic
sum of the msg_len members of each valid mmsghdr structure.
- The functions returns -1 if an error occurs and errno is set to indi-
- cate the error.
+ The function returns -1 if an error occurs and errno is set to indicate
+ the error.
ERRORS
Errors are the same as per the recvmsg() function. In addition, the
following error is also returned:
-
EINVAL The timeout argument is invalid
-
For more information, see the recvmsg(3C) man page.
ATTRIBUTES
@@ -107,9 +107,9 @@
socket.h(3HEAD), attributes(7)
HISTORY
- The recvmmsg() and sendmmsg() functions were added to Oracle Solaris in
- the 11.3 SRU 32 release.
+ The recvmmsg() function was added to Oracle Solaris in the 11.3 SRU 32
+ release.
-Oracle Solaris 11.4 9 Jul 2018 recvmmsg(3C)
+Oracle Solaris 11.4 2 Feb 2021 recvmmsg(3C)
diff -Nurwb 11.4.30/man3c/rexec.3c 11.4.33/man3c/rexec.3c
--- 11.4.30/man3c/rexec.3c 2021-05-19 16:10:29.181592343 +0000
+++ 11.4.33/man3c/rexec.3c 2021-05-19 16:11:41.856452712 +0000
@@ -17,41 +17,47 @@
const char *passwd, const char *cmd, int *fd2p, int af);
DESCRIPTION
- The rexec() and rexec_af() functions look up the host ahost using
+ These functions open a connection to a remote host to execute a com-
+ mand, and return a socket connected to the remote command's standard
+ input and output file descriptors. The protocol for connection is
+ described in detail in in.rexecd(8).
+
+
+ The rexec() and rexec_af() functions first look up the host ahost using
getaddrinfo(3C) and return -1 if the host does not exist. Otherwise
- ahost is set to the standard name of the host. The username and pass-
- word are used in remote host authentication. When a username and pass-
- word are not specified, the .netrc file in the user's home directory is
- searched for the appropriate information. If the search fails, the user
- is prompted for the information.
+ ahost is set to the standard name of the host. The user and passwd
+ parameters are used as the username and password in remote host authen-
+ tication. When a username and password are not specified, the .netrc
+ file in the user's home directory is searched for the appropriate
+ information. If the search fails, the user is prompted for the informa-
+ tion.
The rexec() function always returns a socket of the AF_INET address
- family. The rexec_af() function supports AF_INET, AF_INET6, or
- AF_UNSPEC for the address family. An application can choose which type
- of socket is returned by passing AF_INET or AF_INET6 as the address
- family. The use of AF_UNSPEC means that the caller will accept any
- address family. Choosing AF_UNSPEC provides a socket that best suits
- the connectivity to the remote host.
+ family. The rexec_af() function accepts AF_INET, AF_INET6, or AF_UNSPEC
+ for the address family parameter af. An application can choose which
+ type of socket is returned by passing AF_INET or AF_INET6 as the
+ address family. The use of AF_UNSPEC means that the caller will accept
+ any address family. Choosing AF_UNSPEC provides a socket that best
+ suits the connectivity to the remote host.
- The port inport specifies which TCP port to use for the connection. The
- port number used must be in network byte order, as supplied by a call
- to htons(3C). The protocol for connection is described in detail in
- in.rexecd(8).
+ The parameter inport specifies which TCP port to use for the connec-
+ tion. The port number used must be in network byte order, as supplied
+ by a call to htons(3C).
If the call succeeds, a socket of type SOCK_STREAM is returned to the
caller, and given to the remote command as its standard input and stan-
- dard output. If fd2p is non-zero, an auxiliary channel to a control
+ dard output. If fd2p is non-null, an auxiliary channel to a control
process is set up and a file descriptor for it is placed in *fd2p. The
control process returns diagnostic output (file descriptor 2), from the
command on the auxiliary channel. The control process also accepts
bytes on this channel as signal numbers to be forwarded to the process
- group of the command. If fd2p is 0, the standard error (file descriptor
- 2) of the remote command is made the same as its standard output. No
- provision is made for sending arbitrary signals to the remote process,
- other than possibly sending out-of-band data.
+ group of the command. If fd2p is NULL, the standard error (file
+ descriptor 2) of the remote command is made the same as its standard
+ output, and no provision is made for sending arbitrary signals to the
+ remote process, other than possibly sending out-of-band data.
There is no way to specify options to the socket() call made by the
@@ -72,6 +78,15 @@
If either rexec() or rexec_af() fails, -1 is returned.
+USAGE
+ The protocol underlying these functions uses weak authentication and
+ offers no protection against spoofing or snooping of traffic. The
+ in.rexecd(8) server is disabled by default on Oracle Solaris and most
+ other modern operating systems, and may be removed in future versions
+ of Oracle Solaris. Use of the sshd(8) server is strongly recommended
+ instead, and a programming interface to it is available via the libssh2
+ library.
+
ATTRIBUTES
See attributes(7) for descriptions of the following attributes:
@@ -79,6 +94,8 @@
+-----------------------------+-----------------------------+
| ATTRIBUTE TYPE | ATTRIBUTE VALUE |
+-----------------------------+-----------------------------+
+ |Interface Stability |Committed |
+ +-----------------------------+-----------------------------+
|MT-Level |Unsafe |
+-----------------------------+-----------------------------+
@@ -87,9 +104,16 @@
faces should be called only from the main thread.
SEE ALSO
- getaddrinfo(3C), gethostbyname(3C), getservbyname(3C), htonl(3C),
- socket(3C), attributes(7), in.rexecd(8)
+ getaddrinfo(3C), htons(3C), socket(3C), attributes(7), in.rexecd(8)
+
+HISTORY
+ The rexec() function has been present since the initial release of
+ Solaris.
+
+
+ The rexec_af() function was added to Oracle Solaris in the Solaris 8
+ release.
-Oracle Solaris 11.4 13 Nov 2017 rexec(3C)
+Oracle Solaris 11.4 2 Feb 2021 rexec(3C)
diff -Nurwb 11.4.30/man3c/send.3c 11.4.33/man3c/send.3c
--- 11.4.30/man3c/send.3c 2021-05-19 16:10:29.187794630 +0000
+++ 11.4.33/man3c/send.3c 2021-05-19 16:11:41.869114271 +0000
@@ -62,12 +62,23 @@
MSG_NOSIGNAL The MSG_NOSIGNAL flag requests not to send the SIGPIPE
signal if an attempt to send is made on a stream-ori-
- ented socket that is no longer connected. The [EPIPE]
+ ented socket that is no longer connected. The EPIPE
error is still returned.
- See recv(3C) for a description of the msghdr structure.
+ The sendmsg() function call uses a msghdr structure defined in
+ socket.h(3HEAD) to minimize the number of directly supplied parameters.
+ sendmmsg(3C) is an extension of the sendmsg() function that allows
+ receiving multiple messages in a single call.
+
+
+ The contents of the msghdr structure differ depending on whether or not
+ __USE_SUNOS_SOCKETS__ is defined before including the <sys/socket.h>
+ header. All source files accessing msghdr structures or calling the
+ sendmsg() function must be compiled with either __USE_SUNOS_SOCKETS__
+ defined or all with it undefined -- mixing and matching will not work.
+ See the socket.h(3HEAD) manual page for details.
RETURN VALUES
Upon successful completion, these functions return the number of bytes
@@ -186,6 +197,9 @@
fcntl(2), poll(2), write(2), connect(3C), getsockopt(3C), recv(3C),
select(3C), sendmmsg(3C), socket(3C), socket.h(3HEAD), attributes(7)
+HISTORY
+ These functions have been present since the initial release of Solaris.
+
-Oracle Solaris 11.4 4 May 2020 send(3C)
+Oracle Solaris 11.4 2 Feb 2021 send(3C)
diff -Nurwb 11.4.30/man3c/sendfile.3c 11.4.33/man3c/sendfile.3c
--- 11.4.30/man3c/sendfile.3c 2021-05-19 16:10:29.199000084 +0000
+++ 11.4.33/man3c/sendfile.3c 2021-05-19 16:11:41.872624571 +0000
@@ -12,7 +12,7 @@
DESCRIPTION
The sendfile() function copies data from in_fd to out_fd, starting at
- specified offset and of length len bytes.
+ an offset of off bytes and continuing for a length of len bytes.
The in_fd argument should be a file descriptor to a regular file opened
@@ -37,8 +37,9 @@
a regular file.
- The sendfile() function can also be used to send buffers by pointing
- in_fd to SFV_FD_SELF.
+ The sendfile() function can also be used to send buffers from the call-
+ ing program's memory by setting in_fd to SFV_FD_SELF and off to the
+ address of the memory buffer.
RETURN VALUES
Upon successful completion, sendfile() returns the total number of
@@ -50,7 +51,7 @@
The sendfile() function will fail if:
EAFNOSUPPORT The implementation does not support the specified
- address family for socket.
+ address family of the socket.
EAGAIN Mandatory file or record locking is set on either the
@@ -62,7 +63,7 @@
EBADF The out_fd or in_fd argument is either not a valid file
- descriptor, out_fd is not opened for writing. or in_fd
+ descriptor, out_fd is not opened for writing, or in_fd
is not opened for reading.
@@ -189,12 +190,12 @@
if (errno != EINTR) {
perror("sendfile");
exit(1);
- } else continue;
+ } else
+ continue;
len -= res;
}
-
ATTRIBUTES
See attributes(7) for descriptions of the following attributes:
@@ -210,6 +211,10 @@
SEE ALSO
open(2), sendfilev(3C), socket(3C), attributes(7), lf64(7)
+HISTORY
+ The sendfile() function was added to Oracle Solaris in the Solaris 9
+ release.
+
-Oracle Solaris 11.4 04 Oct 2016 sendfile(3C)
+Oracle Solaris 11.4 2 Feb 2021 sendfile(3C)
diff -Nurwb 11.4.30/man3c/sendfilev.3c 11.4.33/man3c/sendfilev.3c
--- 11.4.30/man3c/sendfilev.3c 2021-05-19 16:10:29.203207292 +0000
+++ 11.4.33/man3c/sendfilev.3c 2021-05-19 16:11:41.876056022 +0000
@@ -14,13 +14,13 @@
PARAMETERS
The sendfilev() function supports the following parameters:
- fildes A file descriptor to a regular file or to a AF_INET, or
+ fildes A file descriptor to a regular file, or to a AF_INET or
AF_INET6 family type SOCK_STREAM socket that is open for
writing.
- vec An array of SENDFILEVEC_T, as defined in the sendfilevec
- structure above.
+ vec An array of sendfilevec_t, as defined in the sendfilevec
+ structure below.
sfvcnt The number of members in vec.
@@ -33,7 +33,7 @@
The sendfilev() function attempts to write data from the sfvcnt buffers
specified by the members of vec array: vec[0], vec[1], ... ,
vec[sfvcnt-1]. The fildes argument is a file descriptor to a regular
- file or to an AF_INET, or AF_INET6 family type SOCK_STREAM socket that
+ file, or to an AF_INET or AF_INET6 family type SOCK_STREAM socket that
is open for writing.
@@ -57,10 +57,10 @@
- To send a file, open the file for reading and point sfv_fd to the file
+ To send a file, open the file for reading and set sfv_fd to the file
descriptor returned as a result. See open(2). sfv_off should contain
the offset within the file. sfv_len should have the length of the file
- to be transferred.
+ portion to be transferred.
The xferred argument is updated to record the total number of bytes
@@ -162,7 +162,7 @@
vec[0].sfv_flag = 0;
vec[0].sfv_off = "HEADER_DATA";
vec[0].sfv_len = strlen("HEADER_DATA");
- vec[1].sfv_fd = open("input_file",.... );
+ vec[1].sfv_fd = open("input_file", ... );
vec[1].sfv_flag = 0;
vec[1].sfv_off = 0;
vec[1].sfv_len = 100;
@@ -189,6 +189,10 @@
SEE ALSO
open(2), writev(2), sendfile(3C), socket(3C), attributes(7)
+HISTORY
+ The sendfilev() function was added to Oracle Solaris in the Solaris 8
+ 7/01 (Update 5) release.
-Oracle Solaris 11.4 27 Nov 2017 sendfilev(3C)
+
+Oracle Solaris 11.4 2 Feb 2021 sendfilev(3C)
diff -Nurwb 11.4.30/man3c/sendmmsg.3c 11.4.33/man3c/sendmmsg.3c
--- 11.4.30/man3c/sendmmsg.3c 2021-05-19 16:10:29.210274303 +0000
+++ 11.4.33/man3c/sendmmsg.3c 2021-05-19 16:11:41.889328676 +0000
@@ -12,7 +12,8 @@
unsigned int flags);
PARAMETERS
- s The socket descriptor
+ s The socket descriptor. For more information, see the
+ socket(3C) man page.
msgvec Pointer to an array of mmsghdr structures
@@ -21,15 +22,13 @@
vlen The number of elements in the array of mmsghdr structures
- flags Flags for sending as in the sendmsg() function.
-
+ flags Flags for sending as in the sendmsg(3C) function.
DESCRIPTION
- The sendmmsg() function is an extension to the existing sendmsg() func-
- tion that allows the caller to transmit multiple messages on a socket
- in a single invocation. The s socket is created using the socket()
- function. For more information, see the socket(3C) man page.
+ The sendmmsg() function is an extension to the sendmsg(3C) function
+ that allows the caller to transmit multiple messages on a socket in a
+ single invocation.
A blocking sendmmsg() function call blocks until vlen messages have
@@ -42,15 +41,13 @@
The mmsghdr structure is defined as:
-
struct mmsghdr {
struct msghdr msg_hdr; /* Message header */
ssize_t msg_len; /* Number of bytes transmitted */
};
-
- msg_hdr msghdr structure as described in <sys/socket.h>
+ msg_hdr msghdr structure as described in socket.h(3HEAD)
msg_len Is used to return the number of bytes sent from the message
@@ -59,6 +56,13 @@
+ The contents of the msghdr structure differ depending on whether or not
+ __USE_SUNOS_SOCKETS__ is defined before including the <sys/socket.h>
+ header. All source files accessing msghdr structures or calling the
+ sendmmsg() function must be compiled with either __USE_SUNOS_SOCKETS__
+ defined or all with it undefined -- mixing and matching will not work.
+ See the socket.h(3HEAD) manual page for details.
+
RETURN VALUES
Upon successful completion, the sendmmsg() function returns the number
of messages sent. The number of bytes sent is the arithmetic sum of the
@@ -91,9 +95,9 @@
socket.h(3HEAD), attributes(7)
HISTORY
- The recvmmsg() and sendmmsg() functions were added to Oracle Solaris in
- the 11.3 SRU 32 release.
+ The sendmmsg() function was added to Oracle Solaris in the 11.3 SRU 32
+ release.
-Oracle Solaris 11.4 9 Jul 2018 sendmmsg(3C)
+Oracle Solaris 11.4 2 Feb 2021 sendmmsg(3C)
diff -Nurwb 11.4.30/man3c/shutdown.3c 11.4.33/man3c/shutdown.3c
--- 11.4.30/man3c/shutdown.3c 2021-05-19 16:10:29.218122560 +0000
+++ 11.4.33/man3c/shutdown.3c 2021-05-19 16:11:41.893761613 +0000
@@ -11,8 +11,8 @@
int shutdown(int socket, int how);
DESCRIPTION
- The shutdown() function disables subsequent send() and receive() opera-
- tions on a socket, depending on the value of the how argument.
+ The shutdown() function disables subsequent send and receive operations
+ on a socket, depending on the value of the how argument.
PARAMETERS
how Specifies the type of shutdown. The values are as follows:
@@ -75,10 +75,15 @@
+-----------------------------+-----------------------------+
SEE ALSO
- getsockopt(3C), recv(3C), recvfrom(3C), recvmsg(3C), select(3C),
- send(3C), sendto(3C), setsockopt(3C), socket(3C), attributes(7), stan-
+ getsockopt(3C), recv(3C), recvfrom(3C), recvmsg(3C), recvmmsg(3C),
+ select(3C), send(3C), sendfile(3C), sendfilev(3C), sendmsg(3C), send-
+ mmsg(3C), sendto(3C), setsockopt(3C), socket(3C), attributes(7), stan-
dards(7)
+HISTORY
+ The shutdown() function has been present since the initial release of
+ Solaris.
-Oracle Solaris 11.4 16 Aug 2017 shutdown(3C)
+
+Oracle Solaris 11.4 2 Feb 2021 shutdown(3C)
diff -Nurwb 11.4.30/man3c/sockatmark.3c 11.4.33/man3c/sockatmark.3c
--- 11.4.30/man3c/sockatmark.3c 2021-05-19 16:10:29.222578675 +0000
+++ 11.4.33/man3c/sockatmark.3c 2021-05-19 16:11:41.898180597 +0000
@@ -72,6 +72,10 @@
SEE ALSO
recv(3C), recvmsg(3C), select(3C), attributes(7), standards(7)
+HISTORY
+ The sockatmark() function was added to Oracle Solaris in the Solaris 10
+ 3/05 release.
-Oracle Solaris 11.4 16 Aug 2017 sockatmark(3C)
+
+Oracle Solaris 11.4 2 Feb 2021 sockatmark(3C)
diff -Nurwb 11.4.30/man3c/socket.3c 11.4.33/man3c/socket.3c
--- 11.4.30/man3c/socket.3c 2021-05-19 16:10:29.228564253 +0000
+++ 11.4.33/man3c/socket.3c 2021-05-19 16:11:41.901715318 +0000
@@ -38,8 +38,8 @@
SOCK_STREAM
SOCK_DGRAM
- SOCK_RAW
SOCK_SEQPACKET
+ SOCK_RAW
SOCK_RDM
@@ -83,7 +83,7 @@
manual page and received as described on the recv(3C) manual page.
- The communications protocols used to implement a SOCK_STREAM insure
+ The communications protocols used to implement a SOCK_STREAM ensure
that data is not lost or duplicated. If a piece of data for which the
peer protocol has buffer space cannot be successfully transmitted
within a reasonable length of time, then the connection is considered
@@ -121,7 +121,7 @@
Some file descriptor flags can be specified at socket creation time to
avoid race conditions. These options are passed by using a bitwise-
- inclusive-OR of values from the following list with the value passwd
+ inclusive-OR of values from the following list with the value passed
for the type parameter to the socket(). See the open(2) man page for
details on what each flag does.
@@ -202,7 +202,8 @@
SEE ALSO
close(2), fcntl(2), ioctl(2), read(2), write(2), accept(3C), bind(3C),
connect(3C), getsockname(3C), getsockopt(3C), listen(3C), recv(3C),
- send(3C), setsockopt(3C), shutdown(3C), socketpair(3C), in.h(3HEAD),
+ recvmmsg(3C), send(3C), sendfile(3C), sendfilev(3C), sendmmsg(3C), set-
+ sockopt(3C), shutdown(3C), sockatmark(3C), socketpair(3C), in.h(3HEAD),
socket.h(3HEAD), attributes(7)
NOTES
@@ -210,12 +211,22 @@
New code should be careful to use PF_* as necessary.
HISTORY
- Support for SOCK_* flags as part of the type parameter was added to
- Oracle Solaris in the 11.4 release.
+ The socket() function has been present since the initial release of
+ Solaris.
+
+ Support for PF_UNIX and PF_INET protocol families has been present
+ since the initial release of Solaris. Support for PF_INET6 was added in
+ Solaris 8.
- Support for PF_NCA sockets was removed in Oracle Solaris 11.4.
+
+ Support for PF_NCA sockets was added in Solaris 8 7/01 (Update 5), and
+ removed in Oracle Solaris 11.4.
+
+
+ Support for SOCK_* flags as part of the type parameter was added to
+ Oracle Solaris in the 11.4 release.
-Oracle Solaris 11.4 9 Jul 2018 socket(3C)
+Oracle Solaris 11.4 2 Feb 2021 socket(3C)
diff -Nurwb 11.4.30/man3c/socketpair.3c 11.4.33/man3c/socketpair.3c
--- 11.4.30/man3c/socketpair.3c 2021-05-19 16:10:29.232601927 +0000
+++ 11.4.33/man3c/socketpair.3c 2021-05-19 16:11:41.905406339 +0000
@@ -20,8 +20,8 @@
Some file descriptor flags can be specified at socket creation time to
avoid race conditions. These options are passed by using a bitwise-
- inclusive-OR of flags with the value passed for the type parameter to
- the socket(). See the socket(3c) man page for the available flags.
+ inclusive-OR of flags with the value passed for the type parameter. See
+ the socket(3C) man page for the available flags.
RETURN VALUES
socketpair() returns -1 on failure and 0 on success.
@@ -76,9 +76,13 @@
This call is currently implemented only for the AF_UNIX address family.
HISTORY
+ The socketpair() function has been present since the initial release of
+ Solaris.
+
+
Support for SOCK_* flags as part of the type parameter was added to
Oracle Solaris in the 11.4 release.
-Oracle Solaris 11.4 9 Jul 2018 socketpair(3C)
+Oracle Solaris 11.4 2 Feb 2021 socketpair(3C)
diff -Nurwb 11.4.30/man3head/netdb.h.3head 11.4.33/man3head/netdb.h.3head
--- 11.4.30/man3head/netdb.h.3head 2021-05-19 16:10:29.235705639 +0000
+++ 11.4.33/man3head/netdb.h.3head 2021-05-19 16:11:41.909031192 +0000
@@ -12,7 +12,168 @@
The <netdb.h> header defines the type in_port_t and the type in_addr_t
as described in in.h(3HEAD).
+ Address Information Structure
+ The <netdb.h> header defines the addrinfo structure, which includes the
+ following members:
+
+ int ai_flags /* Input flags */
+ int ai_family /* Address family of socket */
+ int ai_socktype /* Socket type */
+ int ai_protocol /* Protocol of socket */
+ socklen_t ai_addrlen /* Length of socket address */
+ struct sockaddr *ai_addr /* Socket address of socket */
+ char *ai_canonname /* Canonical name of service location */
+ struct addrinfo *ai_next /* Pointer to next in list */
+
+
+
+ See the getaddrinfo(3C) man page for details on the usage of these mem-
+ bers in the addrinfo structure.
+
+
+ The <netdb.h> header defines the following symbolic constants that
+ evaluate to bitwise-distinct integer constants for use in the flags
+ field of the addrinfo structure:
+
+ AI_PASSIVE
+
+ Socket address is intended for bind(3C).
+
+
+ AI_CANONNAME
+
+ Request for canonical name.
+
+
+ AI_NUMERICHOST
+
+ Return numeric host address as name.
+
+
+ AI_NUMERICSERV
+
+ Inhibit service name resolution.
+
+
+ AI_V4MAPPED
+
+ If no IPv6 addresses are found, query for IPv4 addresses and return
+ them to the caller as IPv4-mapped IPv6 addresses.
+
+
+ AI_ALL
+
+ Query for both IPv4 and IPv6 addresses.
+
+
+ AI_ADDRCONFIG
+
+ Query for IPv4 addresses only when an IPv4 address is configured;
+ query for IPv6 addresses only when an IPv6 address is configured.
+
+
+
+ The <netdb.h> header defines the following symbolic constants that
+ evaluate to bitwise-distinct integer constants for use in the flags
+ argument to getnameinfo(3C):
+
+ NI_NOFQDN
+
+ Only the nodename portion of the FQDN is returned for local hosts.
+
+
+ NI_NUMERICHOST
+
+ The numeric form of the node's address is returned instead of its
+ name.
+
+
+ NI_NAMEREQD
+
+ Return an error if the node's name cannot be located in the data-
+ base.
+
+
+ NI_NUMERICSERV
+
+ The numeric form of the service address is returned instead of its
+ name.
+
+
+ NI_NUMERICSCOPE
+
+ For IPv6 addresses, the numeric form of the scope identifier is
+ returned instead of its name.
+
+ NI_DGRAM
+
+ Indicates that the service is a datagram service (SOCK_DGRAM).
+
+
+ Address Information Errors
+ The <netdb.h> header defines the following macros for use as error val-
+ ues for getaddrinfo(3C) and getnameinfo(3C). The gai_strerror(3C) func-
+ tion translates these values to error message strings for user presen-
+ tation.
+
+ EAI_AGAIN
+
+ The name could not be resolved at this time. Future attempts may
+ succeed.
+
+
+ EAI_BADFLAGS
+
+ The flags had an invalid value.
+
+
+ EAI_FAIL
+
+ A non-recoverable error occurred.
+
+
+ EAI_FAMILY
+
+ The address family was not recognized or the address length was
+ invalid for the specified family.
+
+
+ EAI_MEMORY
+
+ There was a memory allocation failure.
+
+
+ EAI_NONAME
+
+ The name does not resolve for the supplied parameters.
+
+ NI_NAMEREQD is set and the host's name cannot be located, or both
+ nodename and servname were null.
+
+
+ EAI_SERVICE
+
+ The service passed was not recognized for the specified socket
+ type.
+
+
+ EAI_SOCKTYPE
+
+ The intended socket type was not recognized.
+
+
+ EAI_SYSTEM
+
+ A system error occurred. The error code can be found in errno.
+
+
+ EAI_OVERFLOW
+
+ An argument buffer overflowed.
+
+
+ Legacy Host Information Structure
The <netdb.h> header defines the hostent structure that includes the
following members:
@@ -71,26 +232,27 @@
The <netdb.h> header defines the macro IPPORT_RESERVED with the value
- of the highest reserved Internet port number.
+ of the highest normally reserved Internet port number. This will not
+ reflect system configuration changes via the "smallest-nonpriv-port"
+ property which may be set by ipadm(8).
The <netdb.h> header provides a declaration for h_errno:
-
extern int h_errno;
+
The <netdb.h> header defines the following macros for use as error val-
ues for gethostbyaddr() and gethostbyname():
-
-
- HOST_NOT_FOUND NO_DATA
- NO_RECOVERY TRY_AGAIN
-
+ HOST_NOT_FOUND
+ NO_DATA
+ NO_RECOVERY
+ TRY_AGAIN
Inclusion of the <netdb.h> header may also make visible all symbols
- from in.h(3HEAD).
+ from in.h(3HEAD) and socket.h(3HEAD).
ATTRIBUTES
See attributes(7) for descriptions of the following attributes:
@@ -105,10 +267,17 @@
+-----------------------------+-----------------------------+
SEE ALSO
- endhostent(3C), endhostent(3C), endnetent(3C), endnetent(3C), endpro-
- toent(3C), endprotoent(3C), endservent(3C), endservent(3C),
- in.h(3HEAD), intro(3), attributes(7), standards(7)
+ endhostent(3C), endnetent(3C), endprotoent(3C), endservent(3C),
+ freeaddrinfo(3C), gai_strerror(3C), getaddrinfo(3C), gethostbyname(3C),
+ gethostent(3C), getnameinfo(3C), getnetent(3C), getprotoent(3C),
+ getservbyname(3C), getservent(3C), sethostent(3C), setnetent(3C),
+ setprotoent(3C), setservent(3C), in.h(3HEAD), socket.h(3HEAD),
+ intro(3), attributes(7), standards(7)
+
+
+ Gilligan, R. RFC 3493, Basic Socket Interface Extensions for IPv6. Net-
+ work Working Group. February 2003. https://tools.ietf.org/html/rfc3493
-Oracle Solaris 11.4 27 Nov 2017 netdb.h(3HEAD)
+Oracle Solaris 11.4 2 Feb 2021 netdb.h(3HEAD)
diff -Nurwb 11.4.30/man3head/procset.h.3head 11.4.33/man3head/procset.h.3head
--- 11.4.30/man3head/procset.h.3head 2021-05-19 16:10:29.238916348 +0000
+++ 11.4.33/man3head/procset.h.3head 2021-05-19 16:11:41.913897968 +0000
@@ -16,12 +16,11 @@
tains the following fields:
-
- idop_t p_op; /* operator connecting left/right sets */
- idtype_t p_lidtype; /* left set `ID type */
- id_t p_lid; /* left set ID */
- idtype_t p_ridtype; /* right set ID type */
- id_t p_rid; /* right set ID */
+ idop_t p_op; /* Operator connecting left/right sets */
+ idtype_t p_lidtype; /* Type of the left operand. */
+ id_t p_lid; /* Id of the left operand. */
+ idtype_t p_ridtype; /* Type of the right operand. */
+ id_t p_rid; /* Id of the right operand. */
@@ -30,7 +29,6 @@
type and ID of the right set. The following ID types can be used:
-
P_PID process identifier
P_PPID parent process identifier
P_PGID process group (job control group) identifier
@@ -77,12 +75,13 @@
The following macro, defined in procset.h, offers a convenient way to
initialize a procset structure:
+
#define setprocset(ps, op, ltype, lid, rtype, rid) \
- (psp)->p_op = (op), \
- (psp)->p_lidtype = (ltype), \
- (psp)->p_lid = (lid), \
- (psp)->p_ridtype = (rtype), \
- (psp)->p_rid = (rid),
+ (psp)->p_op = (op); \
+ (psp)->p_lidtype = (ltype); \
+ (psp)->p_lid = (lid); \
+ (psp)->p_ridtype = (rtype); \
+ (psp)->p_rid = (rid);
EXAMPLES
@@ -90,19 +89,17 @@
-
#include <procset.h>
+
procset_t ps;
setprocset(&PS, POP_AND, P_PID, P_MYID, P_ALL, 0);
-
Example 2 Specifying the Current LWP in the Current Process
-
#include <thread.h>
#include <procset.h>
@@ -114,7 +111,6 @@
-
#include <thread.h>
#include <procset.h>
@@ -123,13 +119,11 @@
-
Example 4 Specifying All of User 323's Processes That are Running
Inside Zone 7
-
#include <thread.h>
#include <procset.h>
@@ -151,4 +145,4 @@
-Oracle Solaris 11.4 19 Feb 2013 procset.h(3HEAD)
+Oracle Solaris 11.4 22 Feb 2021 procset.h(3HEAD)
diff -Nurwb 11.4.30/man3head/socket.h.3head 11.4.33/man3head/socket.h.3head
--- 11.4.30/man3head/socket.h.3head 2021-05-19 16:10:29.242847736 +0000
+++ 11.4.33/man3head/socket.h.3head 2021-05-19 16:11:41.918493040 +0000
@@ -3,380 +3,460 @@
NAME
- socket.h, socket, sockaddr - Internet Protocol family
+ socket.h, socket, sockaddr - sockets API header and structures
SYNOPSIS
#include <sys/socket.h>
DESCRIPTION
- The <sys/socket.h> header defines the unsigned integral type sa_fam-
- ily_t through typedef.
+ The <sys/socket.h> header provides definitions and declarations for the
+ sockets interfaces for inter-process and network communications.
+ Depending on the feature test macros defined, these may be either stan-
+ dards-conforming or historical versions of the interfaces, as described
+ in the following sections.
+ Common Interfaces
+ These interfaces are always available, regardless of whether
+ __USE_SUNOS_SOCKETS__ is defined.
- The <sys/socket.h> header defines the sockaddr structure that includes
- the following members:
+ The <sys/socket.h> header defines the unsigned integral types
+ sa_family_t and socklen_t through typedef.
- sa_family_t sa_family /* address family */
- char sa_data[] /* socket address (variable-length
- data) */
+ The <sys/socket.h> header defines the sockaddr structure to hold a
+ socket address, which includes the following members:
+ struct sockaddr {
+ sa_family_t sa_family; /* address family */
+ char sa_data[]; /* socket address */
+ };
- libxnet Interfaces
- These libxnet interfaces are available to XPG4v2 standard-conforming
- applications. See standards(7).
- By default, and when POSIX conformance is requested by defining
- _XOPEN_SOURCE=500 or higher, the <sys/socket.h> header defines the
- msghdr structure to include the following members:
+ The <sys/socket.h> header defines the sockaddr_storage structure, which
+ is large enough to accommodate all supported protocol-specific address
+ structures, and aligned at an appropriate boundary so that pointers to
+ it can be cast as pointers to protocol-specific address structures and
+ used to access the fields of those structures without alignment prob-
+ lems. The sockaddr_storage structure contains a member:
- void *msg_name /* optional address */
- socklen_t msg_namelen /* size of address */
- struct iovec *msg_iov /* scatter/gather array */
- int msg_iovlen /* members in msg_iov */
- void *msg_control /* ancillary data, see below */
- socklen_t msg_controllen /* ancillary data buffer len */
- int msg_flags /* flags on received message */
+ struct sockaddr {
+ sa_family_t ss_family; /* address family */
+ [...]
+ };
+ which may be used to determine what type of socket address the struc-
+ ture should be cast to in order to interpret the address data.
- The <sys/socket.h> header defines the cmsghdr structure to include the
- following members:
+ The <sys/socket.h> header defines the linger structure that includes
+ the following members:
- socklen_t cmsg_len /* data byte count, including hdr */
- int cmsg_level /* originating protocol */
- int cmsg_type /* protocol-specific type */
+ struct linger {
+ int l_onoff; /* indicates whether linger option is enabled */
+ int l_linger; /* linger time, in seconds */
+ };
- Ancillary data consists of a sequence of pairs, each consisting of a
- cmsghdr structure followed by a data array. The data array contains the
- ancillary data message, and the cmsghdr structure contains descriptive
- information that allows an application to correctly parse the data.
+ The <sys/socket.h> header defines the following macros:
+ SOCK_DGRAM Datagram socket
- The values for cmsg_level will be legal values for the level argument
- to the getsockopt() and setsockopt() functions. The SCM_RIGHTS type is
- supported for level SOL_SOCKET.
+ SOCK_RAW Raw protocol interface
- Ancillary data is also possible at the socket level. The <sys/socket.h>
- header defines the following macros for use as the cmsg_type values
- when cmsg_level is SOL_SOCKET.
- SCM_RIGHTS Indicates that the data array contains the access rights
- to be sent or received.
+ SOCK_STREAM Byte-stream socket
- SCM_UCRED Indicates that the data array contains a ucred_t to be
- received. The ucred_t is the credential of the sending
- process at the time the message was sent. The size is
- variable but never larger than the value returned by
- ucred_size(3C). This is a Solaris-specific, Committed
- interface. See ucred_get(3C).
+ SOCK_SEQPACKET Sequenced-packet socket
- The IPv4 data formats generally use the same values for data passed
- back in cmsghdr as for setsockopt() to enable the feature. The IPv4
- data formats are listed below with the associated payload for each.
+ The <sys/socket.h> header defines the following macros for use as the
+ level argument of setsockopt() and getsockopt().
- IPPROTO_IP
- IP_RECVDSTADDR
+ SOL_SOCKET Options to be accessed at the socket level, not the pro-
+ tocol level.
- ipaddr_t, IP address
+ SOL_ROUTE Options to be accessed at the routing socket level, not
+ the protocol level.
- IPPROTO_IP
- IP_RECVOPTS
- variable-length IP options, up to 40 bytes
+ The <sys/socket.h> header defines the following macros for use as the
+ option_name argument of getsockopt() or setsockopt() calls:
+ SO_ACCEPTCONN Socket is accepting connections.
- IPPROTO_IP
- IP_RECVIF
+ SO_BROADCAST Transmission of broadcast messages is supported.
- uint_t, ifIndex number
+ SO_DEBUG Debugging information is being recorded.
- IPPROTO_IP
- IP_RECVSLLA
+ SO_DONTROUTE Bypass normal routing for outgoing messages
- struct sockaddr_dl, link layer address
+ SO_ERROR Socket error status.
- IPPROTO_IP
- IP_RECVTTL
+ SO_KEEPALIVE Connections are kept alive with periodic messages.
- uint8_t
+ SO_LINGER Socket lingers on close.
- SOL_SOCKET
- SO_RECVUCRED
+ SO_OOBINLINE Out-of-band data is transmitted in line.
- ucred_t -- cmsghdr.cmsg_type is SCM_UCRED, not SO_RECVUCRED
+ SO_RCVBUF Receive buffer size.
+ SO_RCVLOWAT Receive "low water mark".
- The IPv6 data formats use different values for enabling the option and
- for passing the value back to the application. The IPv6 data formats
- are listed below with the associated payload for each.
- IPPROTO_IPV6
- IPV6_RECVPKTINFO
+ SO_RCVTIMEO Receive timeout.
- in_pktinfo, cmsg_type IPV6_PKTINFO
+ SO_REUSEADDR Reuse of local addresses is supported.
- IPPROTO_IPV6
- IPV6_RECVTCLASS
+ SO_SNDBUF Send buffer size.
- uint_t, cmsg_type IPV6_TCLASS
+ SO_SNDLOWAT Send "low water mark".
- IPPROTO_IPV6
- IPV6_RECVPATHMTU
+ SO_SNDTIMEO Send timeout.
- ip6_mtuinfo, cmsg_type IPV6_PATHMTU
+ SO_TYPE Socket type.
- IPPROTO_IPV6
- IPV6_RECVHOPLIMIT
- uint_t, cmsg_type IPV6_HOPLIMIT
+ The <sys/socket.h> header also defines the following macros as exten-
+ sions to the standard for use as the option_name argument of getsock-
+ opt() or setsockopt() calls:
+ SO_ALLZONES
+ Bypass zone boundaries (privileged).
- IPPROTO_IPV6
- IPV6_RECVHOPOPTS
- variable-length IPv6 options, cmsg_type IPV6_HOPOPTS
+ SO_DOMAIN
+ Get the domain used in the socket (get only)
- IPPROTO_IPV6
- IPV6_RECVDSTOPTS
+ SO_FLOW_NAME
- variable-length IPv6 options, cmsg_type IPV6_DSTOPTS
+ Make the socket a flow filter of the specified MAC flow.
+ It is applicable to TCP/UDP PF_INET/PF_INET6 sockets. Requires
+ PRIV_SYS_FLOW_CONFIG privilege.
- IPPROTO_IPV6
- IPV6_RECVRTHDR
+ SO_FLOW_SLA
- variable-length IPv6 options, cmsg_type IPV6_RTHDR
+ Set per socket service level properties: priority and bandwidth
+ limit.
+ It is applicable to TCP/UDP PF_INET/PF_INET6 sockets. Requires
+ PRIV_SYS_FLOW_CONFIG privilege.
- IPPROTO_IPV6
- IPV6_RECVRTHDRDSTOPTS
+ SO_MAC_EXEMPT
- variable-length IPv6 options, cmsg_type IPV6_DSTOPTS
+ Mandatory Access Control (MAC) exemption for unlabeled peers. This
+ option is available only if the system is configured with Trusted
+ Extensions.
+ SO_NOSIGPIPE
+ Control whether this specific socket only returns EPIPE on write
+ when the socket is disconnected, or whether a SIGPIPE signal is
+ also sent.
- The <sys/socket.h> header defines the following macros to gain access
- to the data arrays in the ancillary data associated with a message
- header:
+ SO_PASSIVE_CONNECT
- CMSG_DATA(cmsg)
+ Modify connect(3C) to wait for connection request from a peer
+ instead of initiating a connection request to it. It is applicable
+ to TCP/SCTP PF_INET/PF_INET6 socket.
- If the argument is a pointer to a cmsghdr structure, this macro
- returns an unsigned character pointer to the data array associated
- with the cmsghdr structure.
+ SO_PROTOTYPE
- CMSG_NXTHDR(mhdr, cmsg)
+ For socket in domains PF_INET and PF_INET6, get the underlying pro-
+ tocol number used in the socket. For socket in domain PF_ROUTE, get
+ the address family used in the socket.
- If the first argument is a pointer to a msghdr structure and the
- second argument is a pointer to a cmsghdr structure in the ancil-
- lary data, pointed to by the msg_control field of that msghdr
- structure, this macro returns a pointer to the next cmsghdr struc-
- ture, or a null pointer if this structure is the last cmsghdr in
- the ancillary data.
+ SO_RECVUCRED
- CMSG_FIRSTHDR(mhdr)
+ Request the reception of user credential ancillary data, as
+ described for the SCM_UCRED value of cmsg_type below. This is a
+ Solaris-specific, Committed interface. This is only valid for sock-
+ ets of type SOCK_DGRAM. See ucred_get(3C).
- If the argument is a pointer to a msghdr structure, this macro
- returns a pointer to the first cmsghdr structure in the ancillary
- data associated with this msghdr structure, or a null pointer if
- there is no ancillary data associated with the msghdr structure.
- CMSG_SPACE(len)
+ The <sys/socket.h> header defines the following symbolic constant for
+ use as the maximum backlog queue length which may be specified by the
+ backlog argument to the listen() function:
- Given the length of an ancillary data object, CMSG_SPACE() returns
- the space required by the object and its cmsghdr structure, includ-
- ing any padding needed to satisfy alignment requirements. This
- macro can be used, for example, to allocate space dynamically for
- the ancillary data. This macro should not be used to initialize the
- cmsg_len member of a cmsghdr structure. Use the CMSG_LEN() macro
- instead.
+ SOMAXCONN The maximum backlog queue length.
- CMSG_LEN(len)
- Given the length of an ancillary data object, CMSG_LEN() returns
- the value to store in the cmsg_len member of the cmsghdr structure,
- taking into account any padding needed to satisfy alignment
- requirements.
+ The <sys/socket.h> header defines the following macros for use as the
+ valid values for the msg_flags field in the msghdr structure, or the
+ flags parameter in recvfrom(), recvmsg(), recvmmsg(), sendto(),
+ sendmsg(), or sendmmsg() calls:
+ MSG_CTRUNC Control data truncated.
- The <sys/socket.h> header defines the linger structure that includes
- the following members:
+ MSG_EOR Terminates a record (if supported by the protocol).
+
+
+ MSG_OOB Out-of-band data.
- int l_onoff /* indicates whether linger option is enabled */
- int l_linger /* linger time, in seconds */
+
+ MSG_PEEK Leave received data in queue.
+
+
+ MSG_TRUNC Normal data truncated.
+
+
+ MSG_WAITALL Wait for complete message.
+
+
+ MSG_CMSG_CLOEXEC Atomically set the FD_CLOEXEC flag on any file
+ descriptors created via SCM_RIGHTS during
+ recvmsg().
+
+
+ MSG_CMSG_CLOFORK Atomically set the FD_CLOFORK flag on any file
+ descriptors created via SCM_RIGHTS during
+ recvmsg().
The <sys/socket.h> header defines the following macros:
- SOCK_DGRAM Datagram socket
+ AF_INET Internet domain sockets for use with IPv4 addresses.
- SOCK_STREAM Byte-stream socket
+ AF_INET6 Internet domain sockets for use with IPv6 addresses.
- SOCK_SEQPACKET Sequenced-packet socket
+ AF_UNIX UNIX domain sockets.
+
+
+ AF_UNSPEC Unspecified socket type.
The <sys/socket.h> header defines the following macros for use as the
- level argument of setsockopt() and getsockopt().
+ how argument to the shutdown(3C) function:
- SOL_SOCKET Options to be accessed at the socket level, not the pro-
- tocol level.
+ SHUT_RD Disables further receive operations.
- SOL_ROUTE Options to be accessed at the routing socket level, not
- the protocol level.
+ SHUT_WR Disables further send operations.
+ SHUT_RDWR Disables further send and receive operations.
- The <sys/socket.h> header defines the following macros for use as the
- option_name argument of getsockopt() or setsockopt() calls:
- SO_DEBUG Debugging information is being recorded.
+ Standard Interfaces
+ These interfaces are available to XPG4v2 standard-conforming applica-
+ tions. See standards(7).
+
+
+ By default, when __USE_SUNOS_SOCKETS__ is not defined, and when POSIX
+ conformance is requested by defining _XOPEN_SOURCE=500 or higher, the
+ <sys/socket.h> header defines the msghdr structure to include the fol-
+ lowing members:
+
+ struct msghdr {
+ void * msg_name; /* optional address */
+ socklen_t msg_namelen; /* size of address */
+ struct iovec * msg_iov; /* scatter/gather array */
+ int msg_iovlen; /* members in msg_iov */
+ void * msg_control; /* ancillary data, see below */
+ socklen_t msg_controllen; /* ancillary data buffer len */
+ int msg_flags; /* flags on received message */
+ };
- SO_ACCEPTCONN Socket is accepting connections.
+ The <sys/socket.h> header defines the cmsghdr structure to include the
+ following members:
- SO_BROADCAST Transmission of broadcast messages is supported.
+ struct cmsghdr {
+ socklen_t cmsg_len /* data byte count, including hdr */
+ int cmsg_level /* originating protocol */
+ int cmsg_type /* protocol-specific type */
+ };
- SO_REUSEADDR Reuse of local addresses is supported.
+ Ancillary data consists of a sequence of pairs, each consisting of a
+ cmsghdr structure followed by a data array. The data array contains the
+ ancillary data message, and the cmsghdr structure contains descriptive
+ information that allows an application to correctly parse the data.
- SO_KEEPALIVE Connections are kept alive with periodic messages.
+ The values for cmsg_level will be legal values for the level argument
+ to the getsockopt() and setsockopt() functions.
- SO_LINGER Socket lingers on close.
+ The <sys/socket.h> header defines the following macros for use as the
+ cmsg_type values when cmsg_level is SOL_SOCKET.
- SO_OOBINLINE Out-of-band data is transmitted in line.
+ SCM_RIGHTS
+ Indicates that the data array contains the access rights to be sent
+ or received.
- SO_SNDBUF Send buffer size.
+ SCM_UCRED
- SO_RCVBUF Receive buffer size.
+ Indicates that the data array contains a ucred_t to be received.
+ The ucred_t is the credential of the sending process at the time
+ the message was sent. The size is variable but never larger than
+ the value returned by ucred_size(3C). This is a Solaris-specific,
+ Committed interface. See ucred_get(3C).
- SO_ERROR Socket error status.
+ The <sys/socket.h> header defines the following macros for use as the
+ cmsg_type values when cmsg_level is IPPROTO_IP. The IPv4 data formats
+ generally use the same values for data passed back in cmsghdr as for
+ setsockopt() to enable the feature. The IPv4 data formats are listed
+ below with the associated payload for each.
- SO_TYPE Socket type.
+ IP_RECVDSTADDR ipaddr_t, IP address
- SO_RECVUCRED Request the reception of user credential ancillary
- data. This is a Sun-specific, Committed interface. See
- ucred_get(3C).
+ IP_RECVOPTS variable-length IP options, up to 40 bytes
- SO_MAC_EXEMPT Mandatory Access Control (MAC) exemption for unlabeled
- peers. This option is available only if the system is
- configured with Trusted Extensions.
+ IP_RECVIF uint_t, ifIndex number
- SO_ALLZONES Bypass zone boundaries (privileged).
+ IP_RECVSLLA struct sockaddr_dl, link layer address
- SO_NOSIGPIPE Whether SIGPIPE is send or only EPIPE is returned
+ IP_RECVTTL uint8_t
The <sys/socket.h> header defines the following macros for use as the
- valid values for the msg_flags field in the msghdr structure, or the
- flags parameter in recvfrom(), recvmsg(), sendto(), or sendmsg() calls:
+ cmsg_type values when cmsg_level is IPPROTO_IPV6. The IPv6 data formats
+ use different values for enabling the option and for passing the value
+ back to the application. The IPv6 data formats are listed below with
+ the associated payload for each.
- MSG_CTRUNC Control data truncated.
+ IPV6_RECVPKTINFO
+ in_pktinfo, cmsg_type IPV6_PKTINFO
- MSG_EOR Terminates a record (if supported by the protocol).
+ IPV6_RECVTCLASS
- MSG_OOB Out-of-band data.
+ uint_t, cmsg_type IPV6_TCLASS
- MSG_PEEK Leave received data in queue.
+ IPV6_RECVPATHMTU
+ ip6_mtuinfo, cmsg_type IPV6_PATHMTU
- MSG_TRUNC Normal data truncated.
+ IPV6_RECVHOPLIMIT
- MSG_WAITALL Wait for complete message.
+ uint_t, cmsg_type IPV6_HOPLIMIT
- MSG_CMSG_CLOEXEC Atomically set the FD_CLOEXEC flag on any file
- descriptors created via SCM_RIGHTS during
- recvmsg().
+ IPV6_RECVHOPOPTS
+ variable-length IPv6 options, cmsg_type IPV6_HOPOPTS
- MSG_CMSG_CLOFORK Atomically set the FD_CLOFORK flag on any file
- descriptors created via SCM_RIGHTS during
- recvmsg().
+ IPV6_RECVDSTOPTS
+ variable-length IPv6 options, cmsg_type IPV6_DSTOPTS
- The <sys/socket.h> header defines the following macros:
- AF_UNIX UNIX domain sockets
+ IPV6_RECVRTHDR
+ variable-length IPv6 options, cmsg_type IPV6_RTHDR
- AF_INET Internet domain sockets
+ IPV6_RECVRTHDRDSTOPTS
+ variable-length IPv6 options, cmsg_type IPV6_DSTOPTS
- The <sys/socket.h> header defines the following macros:
- SHUT_RD Disables further receive operations.
+ The <sys/socket.h> header defines the following macros to gain access
+ to the data arrays in the ancillary data associated with a message
+ header:
- SHUT_WR Disables further send operations.
+ CMSG_DATA(cmsg)
+
+ If the argument is a pointer to a cmsghdr structure, this macro
+ returns an unsigned character pointer to the data array associated
+ with the cmsghdr structure.
- SHUT_RDWR Disables further send and receive operations.
+ CMSG_NXTHDR(mhdr, cmsg)
+ If the first argument is a pointer to a msghdr structure and the
+ second argument is a pointer to a cmsghdr structure in the ancil-
+ lary data, pointed to by the msg_control field of that msghdr
+ structure, this macro returns a pointer to the next cmsghdr struc-
+ ture, or a null pointer if this structure is the last cmsghdr in
+ the ancillary data.
+
+
+ CMSG_FIRSTHDR(mhdr)
- libsocket Interfaces
+ If the argument is a pointer to a msghdr structure, this macro
+ returns a pointer to the first cmsghdr structure in the ancillary
+ data associated with this msghdr structure, or a null pointer if
+ there is no ancillary data associated with the msghdr structure.
+
+
+ CMSG_SPACE(len)
+
+ Given the length of an ancillary data object, CMSG_SPACE() returns
+ the space required by the object and its cmsghdr structure, includ-
+ ing any padding needed to satisfy alignment requirements. This
+ macro can be used, for example, to allocate space dynamically for
+ the ancillary data. This macro should not be used to initialize the
+ cmsg_len member of a cmsghdr structure. Use the CMSG_LEN() macro
+ instead.
+
+
+ CMSG_LEN(len)
+
+ Given the length of an ancillary data object, CMSG_LEN() returns
+ the value to store in the cmsg_len member of the cmsghdr structure,
+ taking into account any padding needed to satisfy alignment
+ requirements.
+
+
+ Historical Interfaces
For applications that are written to use the old SunOS4.x (BSD 4.3)
style sockets, __USE_SUNOS_SOCKETS__ must be defined before including
<sys/socket.h>, as in:
@@ -400,7 +480,7 @@
The msg_name and msg_namelen parameters specify the destination address
- when the socket is unconnected The msg_name can be specified as a NULL
+ when the socket is unconnected. The msg_name can be specified as a NULL
pointer if no names are desired or required. The msg_iov and msg_iovlen
parameters describe the scatter-gather locations, as described in
read(2). The msg_accrights parameter specifies the buffer in which
@@ -424,12 +504,36 @@
+-----------------------------+-----------------------------+
SEE ALSO
- accept(3C), bind(3C), connect(3C), getpeername(3C), getpeerucred(3C),
- getsockname(3C), getsockopt(3C), listen(3C), recv(3C), recvfrom(3C),
- recvmsg(3C), send(3C), sendmsg(3C), sendto(3C), setsockopt(3C), shut-
- down(3C), sockatmark(3C), socket(3C), socketpair(3C), ucred_get(3C),
+ accept(3C), accept4(3C), bind(3C), connect(3C), getpeername(3C),
+ getpeerucred(3C), getsockname(3C), getsockopt(3C), listen(3C),
+ recv(3C), recvfrom(3C), recvmsg(3C), recvmmsg(3C), send(3C),
+ sendmsg(3C), sendmmsg(3C), sendto(3C), setsockopt(3C), shutdown(3C),
+ sockatmark(3C), socket(3C), socketpair(3C), ucred_get(3C),
attributes(7), standards(7)
+ Gilligan, R. RFC 3493, Basic Socket Interface Extensions for IPv6. Net-
+ work Working Group. February 2003. https://tools.ietf.org/html/rfc3493
+
+HISTORY
+ The functions declared in this header were provided in the lib-
+ socket(3LIB) library in Solaris 2 through 11.3, and moved to the
+ libc(3LIB) library in Solaris 11.4.
+
+
+ The X/Open standard-conforming interfaces were also available via the
+ libxnet(3LIB) filter library in Solaris 2.6 through 11.3. This library
+ became a filter on the libc(3LIB) library in Solaris 11.4.
+
+
+ The Historical Functionality was the default behavior when building
+ applications on Solaris 11.3 and earlier releases, and use of the Stan-
+ dard Functionality on those releases required defining
+ _XOPEN_SOURCE=500 or higher when building applications. Oracle Solaris
+ 11.4 changed the default to the standards-conforming version, and added
+ the requirement to define __USE_SUNOS_SOCKETS__ before including the
+ <sys/socket.h> header to use the historical version instead.
+
+
-Oracle Solaris 11.4 30 Apr 2020 socket.h(3HEAD)
+Oracle Solaris 11.4 2 Feb 2021 socket.h(3HEAD)
diff -Nurwb 11.4.30/man3lib/libnsl.3lib 11.4.33/man3lib/libnsl.3lib
--- 11.4.30/man3lib/libnsl.3lib 2021-05-19 16:10:29.245564879 +0000
+++ 11.4.33/man3lib/libnsl.3lib 2021-05-19 16:11:41.922626770 +0000
@@ -23,10 +23,10 @@
are exposed because they are used elsewhere through a private inter-
face. One such example is the set of symbols beginning with the _xti
prefix. Those symbols are used in implementing the X/Open Transport
- Interface (XTI) interfaces documented in libxnet. See libxnet(3LIB).
+ Interface (XTI) interfaces.
FILES
- /lib/libnsl.so.1 shared object
+ /lib/libnsl.so.1 32-bit shared object
/lib/64/libnsl.so.1 64-bit shared object
@@ -39,7 +39,9 @@
+-----------------------------+-----------------------------+
| ATTRIBUTE TYPE | ATTRIBUTE VALUE |
+-----------------------------+-----------------------------+
- |Availability |system/library |
+ |Availability |system/library/libc |
+ +-----------------------------+-----------------------------+
+ |Interface Stability |Obsolete Committed |
+-----------------------------+-----------------------------+
|MT-Level |Safe with exceptions |
+-----------------------------+-----------------------------+
@@ -47,6 +49,10 @@
SEE ALSO
pvs(1), Intro(2), libxnet(3LIB), intro(3), attributes(7)
+HISTORY
+ The historical content of the libnsl library moved to the libc(3LIB)
+ library in Solaris 11.4.
+
-Oracle Solaris 11.4 14 May 2014 libnsl(3LIB)
+Oracle Solaris 11.4 12 Feb 2021 libnsl(3LIB)
diff -Nurwb 11.4.30/man3lib/libpool.3lib 11.4.33/man3lib/libpool.3lib
--- 11.4.30/man3lib/libpool.3lib 2021-05-19 16:10:29.251943558 +0000
+++ 11.4.33/man3lib/libpool.3lib 2021-05-19 16:11:41.930029879 +0000
@@ -655,4 +655,4 @@
-Oracle Solaris 11.4 17 Jul 2020 libpool(3LIB)
+Oracle Solaris 11.4 11 Feb 2021 libpool(3LIB)
diff -Nurwb 11.4.30/man3lib/libsendfile.3lib 11.4.33/man3lib/libsendfile.3lib
--- 11.4.30/man3lib/libsendfile.3lib 2021-05-19 16:10:29.256194860 +0000
+++ 11.4.33/man3lib/libsendfile.3lib 2021-05-19 16:11:41.932897468 +0000
@@ -6,11 +6,10 @@
libsendfile - sendfile library
SYNOPSIS
- cc [ flag... ] file... -lsendfile [ library... ]
#include <sys/sendfile.h>
DESCRIPTION
- Historically, this library provided routines that enable files to be
+ Historically, this library provided routines that enabled files to be
sent over sockets, buffers to be sent over sockets, files to be copied
to files, and buffers to be copied to files. This functionality now
resides in libc(3LIB).
@@ -21,11 +20,6 @@
as a filter on libc.so.1. New application development need not specify
-lsendfile.
-
- The functions in this library provide routines that enable files to be
- sent over sockets, buffers to be sent over sockets, files to be copied
- to files, and buffers to be copied to files.
-
INTERFACES
The shared object libsendfile.so.1 provides the public interfaces
defined below. See intro(3) for additional information on shared object
@@ -44,7 +38,7 @@
FILES
- /lib/libsendfile.so.1 shared object
+ /lib/libsendfile.so.1 32-bit shared object
/lib/64/libsendfile.so.1 64-bit shared object
@@ -57,9 +51,9 @@
+-----------------------------+-----------------------------+
| ATTRIBUTE TYPE | ATTRIBUTE VALUE |
+-----------------------------+-----------------------------+
- |Availability |system/library |
+ |Availability |system/library/libc |
+-----------------------------+-----------------------------+
- |Interface Stability |Committed |
+ |Interface Stability |Obsolete Committed |
+-----------------------------+-----------------------------+
|MT-Level |MT-Safe |
+-----------------------------+-----------------------------+
@@ -67,6 +61,14 @@
SEE ALSO
pvs(1), sendfile(3C), sendfilev(3C), intro(3), attributes(7)
+HISTORY
+ This library was added to Oracle Solaris in the Solaris 8 7/01 (Update
+ 5) release.
+
+
+ The historical contents of this library moved to the libc(3LIB) library
+ in Solaris 11.4.
+
-Oracle Solaris 11.4 14 April 2015 libsendfile(3LIB)
+Oracle Solaris 11.4 12 Feb 2021 libsendfile(3LIB)
diff -Nurwb 11.4.30/man3lib/libsocket.3lib 11.4.33/man3lib/libsocket.3lib
--- 11.4.30/man3lib/libsocket.3lib 2021-05-19 16:10:29.259877978 +0000
+++ 11.4.33/man3lib/libsocket.3lib 2021-05-19 16:11:41.936940385 +0000
@@ -6,9 +6,9 @@
libsocket - sockets library
DESCRIPTION
- Historically, this library provided the socket internetworking, primar-
- ily used with the TCP/IP protocol suite. This functionality now resides
- in libc(3LIB).
+ Historically, this library provided the socket API, primarily used with
+ the TCP/IP protocol suite. This functionality now resides in
+ libc(3LIB).
This library is maintained to provide backward compatibility for both
@@ -17,7 +17,7 @@
specify -lsocket.
FILES
- /lib/libsocket.so.1 shared object
+ /lib/libsocket.so.1 32-bit shared object
/lib/64/libsocket.so.1 64-bit shared object
@@ -30,7 +30,9 @@
+-----------------------------+----------------------------------------+
| ATTRIBUTE TYPE | ATTRIBUTE VALUE |
+-----------------------------+----------------------------------------+
- |Availability |system/library |
+ |Availability |system/library/libc |
+ +-----------------------------+----------------------------------------+
+ |Interface Stability |Obsolete Committed |
+-----------------------------+----------------------------------------+
|MT-Level |See the manual page for each interface. |
+-----------------------------+----------------------------------------+
@@ -38,6 +40,15 @@
SEE ALSO
pvs(1), Intro(2), socket.h(3HEAD), intro(3), attributes(7)
+HISTORY
+ The htonl(), htons(), ntohl(), and ntohs() functions were provided in
+ the libsocket(3LIB) library in Solaris 2 through Solaris 10, and moved
+ to the libc(3LIB) library in Solaris 11.0.
+
+
+ The rest of the historical content of the libsocket library moved to
+ the libc(3LIB) library in Solaris 11.4.
+
-Oracle Solaris 11.4 14 May 2014 libsocket(3LIB)
+Oracle Solaris 11.4 12 Feb 2021 libsocket(3LIB)
diff -Nurwb 11.4.30/man3lib/libxnet.3lib 11.4.33/man3lib/libxnet.3lib
--- 11.4.30/man3lib/libxnet.3lib 2021-05-19 16:10:29.268338175 +0000
+++ 11.4.33/man3lib/libxnet.3lib 2021-05-19 16:11:41.942941431 +0000
@@ -17,7 +17,7 @@
specify -lxnet.
FILES
- /lib/libxnet.so.1 shared object
+ /lib/libxnet.so.1 32-bit shared object
/lib/64/libxnet.so.1 64-bit shared object
@@ -30,9 +30,9 @@
+-----------------------------+-----------------------------+
| ATTRIBUTE TYPE | ATTRIBUTE VALUE |
+-----------------------------+-----------------------------+
- |Availability |system/library |
+ |Availability |system/library/libc |
+-----------------------------+-----------------------------+
- |Interface Stability |Committed |
+ |Interface Stability |Obsolete Committed |
+-----------------------------+-----------------------------+
|MT-Level |Safe |
+-----------------------------+-----------------------------+
@@ -42,6 +42,11 @@
SEE ALSO
intro(3), attributes(7), standards(7)
+HISTORY
+ The libxnet library was introduced in Solaris 2.6 as a filter on the
+ libsocket(3LIB) and libnsl(3LIB) libraries. This library became a fil-
+ ter on the libc(3LIB) library in Solaris 11.4.
-Oracle Solaris 11.4 14 May 2014 libxnet(3LIB)
+
+Oracle Solaris 11.4 12 Feb 2021 libxnet(3LIB)
diff -Nurwb 11.4.30/man3pool/pool_resource_create.3pool 11.4.33/man3pool/pool_resource_create.3pool
--- 11.4.30/man3pool/pool_resource_create.3pool 2021-05-19 16:10:29.276645666 +0000
+++ 11.4.33/man3pool/pool_resource_create.3pool 2021-05-19 16:11:41.956538980 +0000
@@ -42,13 +42,13 @@
The pool_resource_create() function creates and returns a new resource
of the given name and type in the provided configuration. If there is
already a resource of the given name, the operation will fail. The only
- resource type is "pset".
+ resource type is pset.
The pool_resource_destroy() function removes the specified resource
- from its configuration file. Pset resources created by the pset_create
- system call cannot be destroyed by this API. See pset_create(2) for
- destroying such resources.
+ from its configuration file. pset resources created by the pset_cre-
+ ate() system call cannot be destroyed by this API. See pset_create(2)
+ for destroying such resources.
The pool_resource_info() function returns a string describing the given
@@ -65,20 +65,20 @@
The pool_resource_transfer() function transfers size CPUs from the
source pset to the target. Both psets must have property pset.restype
- equal to "cpu". Transferring CPUs is always performed as series of
+ equal to cpu. Transferring CPUs is always performed as series of
pool_resource_xtransfer() operations, since discrete CPUs must be iden-
tified for transfer.
The pool_resource_xtransfer() function transfers the specific CPUs from
the source pset to the target. Both psets must be have property
- pset.restype equal to "cpu". The components argument is a null-termi-
- nated list of pool_component_t.
+ pset.restype equal to cpu. The components argument is a null-terminated
+ list of values of type pool_component_t.
The transfer functions cannot transfer components between pset
- resources created by the pset_create system call. Use pset_assign(2) to
- manipulate such psets and cpus.
+ resources created by the pset_create() system call. Use pset_assign(2)
+ to manipulate such psets and CPUs.
The conf argument for each function refers to the target configuration
@@ -123,7 +123,7 @@
POE_INVALID_CONF The resource element could not be created because
- the configuration would be invalid.
+ the configuration conf would be invalid.
POE_PUTPROP One of the supplied properties could not be set.
@@ -154,7 +154,7 @@
1.
- POE_INVALID_CONF The configuration is invalid.
+ POE_INVALID_CONF The configuration conf is invalid.
POE_SYSTEM A system error has occurred. Check the system error
@@ -168,7 +168,7 @@
POF_VALID.
- POE_INVALID_CONF The configuration is invalid.
+ POE_INVALID_CONF The configuration conf is invalid.
POE_SYSTEM A system error has occurred. Check the system error
@@ -187,8 +187,9 @@
POE_SYSTEM A system error has occurred. Check the system error
code for more details.
- Errno will be set to ENOTSUP of the source or target
- pset is a pset created by the pset_create system call.
+ Errno will be set to ENOTSUP if the source or target
+ pset is a pset created by the pset_create() system
+ call.
@@ -207,9 +208,9 @@
POE_SYSTEM A system error has occurred. Check the system error
code for more details.
- Errno will be set to ENOTSUP of the source or tar-
- get pset is a pset created by the pset_create sys-
- tem call.
+ Errno will be set to ENOTSUP if the source or tar-
+ get pset is a pset created by the pset_create()
+ system call.
EXAMPLES
@@ -218,7 +219,6 @@
#include <pool.h>
#include <stdio.h>
-
...
pool_conf_t *conf;
@@ -250,5 +250,5 @@
-Oracle Solaris 11.4 10 Feb 2020
+Oracle Solaris 11.4 22 Feb 2021
pool_resource_create(3POOL)
diff -Nurwb 11.4.30/man3resolv/resolver.3resolv 11.4.33/man3resolv/resolver.3resolv
--- 11.4.30/man3resolv/resolver.3resolv 2021-05-19 16:10:29.292979870 +0000
+++ 11.4.33/man3resolv/resolver.3resolv 2021-05-19 16:11:41.970927816 +0000
@@ -41,21 +41,21 @@
int res_nsearch(res_state statp, const char *dname, int class, int type,
- u_char *answer, int anslen);
+ uchar_t *answer, int anslen);
int res_nquerydomain(res_state statp, const char *name,
- const char *domain, int class, int type, u_char *answer,
+ const char *domain, int class, int type, uchar_t *answer,
int anslen);
int res_nmkquery(res_state statp, int op, const char *dname, int class,
- int type, const u_char *data, int datalen,
- const u_char *newrr_in, u_char *buf, int buflen);
+ int type, const uchar_t *data, int datalen,
+ const uchar_t *newrr_in, uchar_t *buf, int buflen);
- int res_nsend(res_state statp, const u_char *msg, int msglen,
- u_char *answer, int anslen);
+ int res_nsend(res_state statp, const uchar_t *msg, int msglen,
+ uchar_t *answer, int anslen);
void res_nclose(res_state statp);
@@ -65,23 +65,23 @@
int msglen, ns_tsig_key *key, uchar_t *answer, int anslen);
- int dn_comp(const char *exp_dn, u_char *comp_dn, int length,
- u_char **dnptrs, **lastdnptr);
+ int dn_comp(const char *exp_dn, uchar_t *comp_dn, int length,
+ uchar_t **dnptrs, uchar_t **lastdnptr);
- int dn_expand(const u_char *msg, *eomorig, *comp_dn, char *exp_dn,
- int length);
+ int dn_expand(const uchar_t *msg, const uchar_t *eomorig,
+ const uchar_t *comp_dn, char *exp_dn, int length);
const char *hstrerror(int err);
- void res_setservers(res_state statp, const union res_sockaddr_union *set,
- int cnt);
+ void res_setservers(res_state statp,
+ const union res_sockaddr_union *set, int cnt);
- int res_getservers(res_state statp, union res_sockaddr_union *set,
- int cnt);
+ int res_getservers(res_state statp,
+ union res_sockaddr_union *set, int cnt);
Deprecated Interfaces
@@ -98,19 +98,19 @@
int res_query(const char *dname, int class, int type,
- u_char *answer, int anslen);
+ uchar_t *answer, int anslen);
int res_search(const char *dname, int class, int type,
- u_char *answer, int anslen);
+ uchar_t *answer, int anslen);
int res_mkquery(int op, const char *dname, int class,
int type, const uchar_t *data, int datalen,
- const uchar_t *newrr, u_char *buf, int buflen);
+ const uchar_t *newrr, uchar_t *buf, int buflen);
- int res_send(const u_char *msg, int msglen, u_char *answer,
+ int res_send(const uchar_t *msg, int msglen, uchar_t *answer,
int anslen);
@@ -121,6 +121,11 @@
reply messages with Domain Name System (DNS) servers.
+ Most applications will not call these routines directly, but instead
+ use the higher level, name-service-independent routines getaddrinfo(3C)
+ and getnameinfo(3C).
+
+
State information is kept in statp and is used to control the behavior
of these functions. Set statp to all zeros prior to making the first
call to any of these functions.
@@ -195,7 +200,7 @@
Network daemons should set this option.
- RES_BLAST If the RES_BLAST option is defined, resolver() queries
+ RES_BLAST If the RES_BLAST option is defined, resolver queries
will be sent to all servers. If the RES_BLAST option
is not defined, but RES_ROTATE is , the list of name-
servers are rotated according to a round-robin scheme.
@@ -373,8 +378,11 @@
set the list of servers to be queried.
EXAMPLES
- Example 1 The following example shows basic usage of the resolver's
- API.
+ Example 1 Basic API Usage
+
+
+
+ The following example shows basic usage of the resolver's API.
#include <resolv.h>
@@ -422,7 +430,6 @@
}
-
ATTRIBUTES
See attributes(7) for descriptions of the following attributes:
@@ -445,23 +452,25 @@
Lottor, M. RFC 1033, Domain Administrators Operations Guide. Network
- Working Group. November 1987.
+ Working Group. November 1987. https://tools.ietf.org/html/rfc1033
Mockapetris, Paul. RFC 1034, Domain Names - Concepts and Facilities.
Network Working Group. November 1987.
+ https://tools.ietf.org/html/rfc1034
Mockapetris, Paul. RFC 1035, Domain Names - Implementation and Specifi-
cation. Network Working Group. November 1987.
+ https://tools.ietf.org/html/rfc1035
Partridge, Craig. RFC 974, Mail Routing and the Domain System. Network
- Working Group. January 1986.
+ Working Group. January 1986. https://tools.ietf.org/html/rfc974
Stahl, M. RFC 1032, Domain Administrators Guide. Network Working Group.
- November 1987.
+ November 1987. https://tools.ietf.org/html/rfc1032
Vixie, Paul, Dunlap, Kevin J., Karels, Michael J. Name Server Opera-
@@ -475,4 +484,4 @@
-Oracle Solaris 11.4 30 Sept 2016 resolver(3RESOLV)
+Oracle Solaris 11.4 2 Feb 2021 resolver(3RESOLV)
diff -Nurwb 11.4.30/man4d/vtio.4d 11.4.33/man4d/vtio.4d
--- 11.4.30/man4d/vtio.4d 1969-12-31 16:00:00.000000000 +0000
+++ 11.4.33/man4d/vtio.4d 2021-05-19 16:11:41.975513528 +0000
@@ -0,0 +1,44 @@
+Device Drivers & /dev files vtio(4D)
+
+
+
+NAME
+ vtio - Virtio misc module
+
+DESCRIPTION
+ The vtio kernel misc module is part of the Virtio software stack.
+
+
+ The vtio module provides PCI/PCI-E communication, interrupt, virtqueue,
+ and buffer managment for the Virtio driver modules vtioblk(4D), vtioen-
+ tropy(4D), vtionet(4D), vtioscsi(4D).
+
+FILES
+ /kernel/misc/amd64/vtio 64-bit driver binary. (x86).
+
+
+ATTRIBUTES
+ See attributes(7) for descriptions of the following attributes:
+
+
+ +-----------------------------+-----------------------------+
+ | ATTRIBUTE TYPE | ATTRIBUTE VALUE |
+ +-----------------------------+-----------------------------+
+ |Availability |system/vtio |
+ +-----------------------------+-----------------------------+
+ |Architecture |x86 |
+ +-----------------------------+-----------------------------+
+ |Interface Stability |Committed |
+ +-----------------------------+-----------------------------+
+
+SEE ALSO
+ attributes(7), vtioblk(4D), vtioentropy(4D), vtionet(4D), vtioscsi(4D)
+
+ Virtio I/O Device (VIRTIO) Version 1.1, Committee Specification 01
+
+ https://docs.oasis-open.org/virtio/virtio/v1.1/virtio-v1.1.html
+
+
+
+
+Oracle Solaris 11.4 11 Feb 2021 vtio(4D)
diff -Nurwb 11.4.30/man4d/vtioblk.4d 11.4.33/man4d/vtioblk.4d
--- 11.4.30/man4d/vtioblk.4d 1969-12-31 16:00:00.000000000 +0000
+++ 11.4.33/man4d/vtioblk.4d 2021-05-19 16:11:41.990880336 +0000
@@ -0,0 +1,44 @@
+Device Drivers & /dev files vtioblk(4D)
+
+
+
+NAME
+ vtioblk - Virtio block device driver
+
+DESCRIPTION
+ The vtioblk host driver is a nexus driver that supports the Virtio
+ Block Device. It uses the blkdev(7D) service to expose the block
+ devices as disks.
+
+FILES
+ /kernel/drv/vtioblk.conf Driver configuration file.
+
+
+ /kernel/drv/amd64/vtioblk 64-bit driver binary. (x86).
+
+
+ATTRIBUTES
+ See attributes(7) for descriptions of the following attributes:
+
+
+ +-----------------------------+-----------------------------+
+ | ATTRIBUTE TYPE | ATTRIBUTE VALUE |
+ +-----------------------------+-----------------------------+
+ |Availability |driver/storage/vtioblk |
+ +-----------------------------+-----------------------------+
+ |Architecture |x86 |
+ +-----------------------------+-----------------------------+
+ |Interface Stability |Committed |
+ +-----------------------------+-----------------------------+
+
+SEE ALSO
+ vtio(4D), blkdev(4D), driver.conf(5), pci(5), attributes(7), prtconf(8)
+
+ Virtio I/O Device (VIRTIO) Version 1.1, Committee Specification 01
+
+ https://docs.oasis-open.org/virtio/virtio/v1.1/virtio-v1.1.html
+
+
+
+
+Oracle Solaris 11.4 13 Dec 2020 vtioblk(4D)
diff -Nurwb 11.4.30/man4d/vtioentropy.4d 11.4.33/man4d/vtioentropy.4d
--- 11.4.30/man4d/vtioentropy.4d 1969-12-31 16:00:00.000000000 +0000
+++ 11.4.33/man4d/vtioentropy.4d 2021-05-19 16:11:41.994408157 +0000
@@ -0,0 +1,85 @@
+Device Drivers & /dev files vtioentropy(4D)
+
+
+
+NAME
+ vtioentropy - Virtio entropy driver
+
+DESCRIPTION
+ The vtioentropy plugin for the Cryptographic Framework uses the Virtio
+ Entropy Device to provide entropy to the kernel random pools.
+
+
+ The vtioentropy provider is not enabled by default and must be enabled
+ using the cryptoadm command if the Virtio Entropy Device is provided by
+ the host.
+
+OPERATION
+ Use the cryptoadm command to enable or disable the vtioentropy
+ provider.
+
+
+ To enable the vtioentropy entropy provider plugin:
+
+ # cryptoadm enable provider=vtioentropy random
+
+
+
+ To disable the use of vtioentropy plugin for entropy:
+
+ # cryptoadm disable provider=vtioentropy random
+
+
+
+ Check the status of the vtioentropy provider:
+
+ $ cryptoadm list -p provider=vtioentropy
+
+
+EXAMPLES
+ Example 1 Checking the policy of the vtioentropy provider:
+
+
+ # cryptoadm list -p provider=vtioentropy
+ vtioentropy: random is enabled.
+
+
+FILES
+ /kernel/drv/vtioentropy.conf
+
+ Driver configuration file.
+
+
+ /kernel/drv/amd64/vtioentropy
+
+ 64-bit driver binary. (x86).
+
+
+ATTRIBUTES
+ See attributes(7) for descriptions of the following attributes:
+
+
+ +-----------------------------+-----------------------------+
+ | ATTRIBUTE TYPE | ATTRIBUTE VALUE |
+ +-----------------------------+-----------------------------+
+ |Availability |driver/crypto/vtioentropy |
+ +-----------------------------+-----------------------------+
+ |Architecture |x86 |
+ +-----------------------------+-----------------------------+
+ |Interface Stability |Committed |
+ +-----------------------------+-----------------------------+
+
+SEE ALSO
+ attributes(7), cryptoadm(8), vtio(4D)
+
+
+ Managing Encryption and Certificates in Oracle Solaris 11.4
+
+ Virtio I/O Device (VIRTIO) Version 1.1, Committee Specification 01
+
+ https://docs.oasis-open.org/virtio/virtio/v1.1/virtio-v1.1.html
+
+
+
+
+Oracle Solaris 11.4 12 Dec 2020 vtioentropy(4D)
diff -Nurwb 11.4.30/man4d/vtionet.4d 11.4.33/man4d/vtionet.4d
--- 11.4.30/man4d/vtionet.4d 1969-12-31 16:00:00.000000000 +0000
+++ 11.4.33/man4d/vtionet.4d 2021-05-19 16:11:41.999025236 +0000
@@ -0,0 +1,124 @@
+Device Drivers & /dev files vtionet(4D)
+
+
+
+NAME
+ vtionet - Virtio network driver
+
+SYNOPSIS
+ /dev/vtionet
+
+DESCRIPTION
+ The vtionet Ethernet driver is a multi-threaded, loadable, clonable,
+ GLD-based STREAMS driver supporting the Data Link Provider Interface,
+ dlpi(4P), for Virtio network device instances.
+
+
+ The vtionet driver supports multiple Virtio network device instances
+ installed within the system.
+
+
+ The vtionet driver functions include including Virtio queue and buffer
+ initialization, frame transmit and receive, promiscous and multicast
+ support, and error recovery and reporting.
+
+APPLICATION PROGRAMMING INTERFACE
+ The cloning character-special device, /dev/vtionet, is used to access
+ all Virtio network device instances installed within the system.
+
+
+ The vtionet driver is managed by the dladm(8) command line utility,
+ which allows VLANs to be defined on top of vtionet instances and for
+ vtionet instances to be aggregated. See dladm(8) for more details.
+
+
+ You must send an explicit DL_ATTACH_REQ message to associate the opened
+ stream with a particular device (PPA). The PPA ID is interpreted as an
+ unsigned integer data type and indicates the corresponding device
+ instance (unit) number. The driver returns an error (DL_ERROR_ACK) if
+ the PPA field value does not correspond to a valid device instance num-
+ ber.
+
+
+ The values returned by the driver in the DL_INFO_ACK primitive in
+ response to the DL_INFO_REQ are as follows:
+
+ o Maximum SDU (with jumbo frame) is as high as 65535.
+
+
+ o Minimum SDU is 0. The driver pads to the mandatory 60-octet
+ minimum packet size.
+
+
+ o The dlsap address length is 8.
+
+
+ o MAC type is DL_ETHER.
+
+
+ o The sap length value is -2, means that the physical address
+ component is followed immediately by a 2-byte sap component
+ within the DLSAP address.
+
+
+ o The broadcast address value is Ethernet/IEEE broadcast
+ address (FF:FF:FF:FF:FF:FF).
+
+
+CONFIGURATION
+ The vtionet driver is managed by the dladm(8) command line utility.
+
+
+ The vtionet driver always reports link speed of 1Gb/s and full duplex
+ mode. This does not reflect the speed and mode of the host interface or
+ any rate caps.
+
+FILES
+ /dev/vtionet Character special device.
+
+
+ /kernel/drv/vtionet.conf Driver configuration file.
+
+
+ /kernel/drv/amd64/vtionet 64-bit driver binary. (x86).
+
+
+ATTRIBUTES
+ See attributes(7) for descriptions of the following attributes:
+
+
+ +-----------------------------+--------------------------------+
+ | ATTRIBUTE TYPE | ATTRIBUTE VALUE |
+ +-----------------------------+--------------------------------+
+ |Availability |driver/network/ethernet/vtionet |
+ +-----------------------------+--------------------------------+
+ |Architecture |x86 |
+ +-----------------------------+--------------------------------+
+ |Interface Stability |Committed |
+ +-----------------------------+--------------------------------+
+
+SEE ALSO
+ streamio(4I), dlpi(4P), driver.conf(5), attributes(7), dladm(8), net-
+ stat(8), vtio(4D)
+
+
+ Writing Device Drivers in Oracle Solaris 11.4
+
+
+ STREAMS Programming Guide
+
+
+ Managing Network Virtualization and Network Resources in Oracle Solaris
+ 11.4
+
+
+ Managing Network Datalinks in Oracle Solaris 11.4
+
+ Virtio I/O Device (VIRTIO) Version 1.1, Committee Specification 01
+
+ https://docs.oasis-open.org/virtio/virtio/v1.1/virtio-v1.1.html
+
+
+
+
+Oracle Solaris 11.4 12 Dec 2020 vtionet(4D)
diff -Nurwb 11.4.30/man4d/vtioscsi.4d 11.4.33/man4d/vtioscsi.4d
--- 11.4.30/man4d/vtioscsi.4d 1969-12-31 16:00:00.000000000 +0000
+++ 11.4.33/man4d/vtioscsi.4d 2021-05-19 16:11:42.002988862 +0000
@@ -0,0 +1,53 @@
+Device Drivers & /dev files vtioscsi(4D)
+
+
+
+NAME
+ vtioscsi - Virtio SCSI host adapter driver
+
+DESCRIPTION
+ The vtioscsi host bus adapter driver is a nexus driver that supports
+ the Virtio SCSI Host Device.
+
+
+ The vtioscsi driver is a SCSAv3 compliant, Self-Identifying driver. It
+ can enumerate all the supported targets automatically. See scsi(5),
+ sd(4D), st(4D), and ses(4D) for further information.
+
+DRIVER CONFIGURATION
+ The vtioscsi.conf file does not contain user editable parameters.
+
+FILES
+ /kernel/drv/amd64/vtioscsi 64-bit x86 ELF kernel module
+
+
+ /kernel/drv/vtioscsi.conf optional configuration file
+
+
+ATTRIBUTES
+ See attributes(7) for descriptions of the following attributes:
+
+
+ +-----------------------------+-----------------------------+
+ | ATTRIBUTE TYPE | ATTRIBUTE VALUE |
+ +-----------------------------+-----------------------------+
+ |Architecture |x86 |
+ +-----------------------------+-----------------------------+
+ |Availability |driver/storage/vtioscsi |
+ +-----------------------------+-----------------------------+
+
+SEE ALSO
+ vtio(4D), sd(4D), ses(4D), st(4D), driver.conf(5), pci(5), scsi(5),
+ attributes(7), prtconf(8), scsi_abort(9F), scsi_hba_attach(9F),
+ scsi_ifgetcap(9F), scsi_ifsetcap(9F), scsi_reset(9F),
+ scsi_sync_pkt(9F), scsi_transport(9F), scsi_device(9S),
+ scsi_extended_sense(9S), scsi_inquiry(9S), scsi_pkt(9S)
+
+ Virtio I/O Device (VIRTIO) Version 1.1, Committee Specification 01
+
+ https://docs.oasis-open.org/virtio/virtio/v1.1/virtio-v1.1.html
+
+
+
+
+Oracle Solaris 11.4 15 Dec 2020 vtioscsi(4D)
diff -Nurwb 11.4.30/man4m/tirdwr.4m 11.4.33/man4m/tirdwr.4m
--- 11.4.30/man4m/tirdwr.4m 2021-05-19 16:10:29.313335976 +0000
+++ 11.4.33/man4m/tirdwr.4m 2021-05-19 16:11:42.007043976 +0000
@@ -111,12 +111,12 @@
SEE ALSO
- getmsg(2), putmsg(2), read(2), write(2), intro(3), intro(3),
- streamio(4I), timod(4M)
+ getmsg(2), putmsg(2), read(2), write(2), intro(3), streamio(4I),
+ timod(4M)
STREAMS Programming Guide
-Oracle Solaris 11.4 3 Jul 1990 tirdwr(4M)
+Oracle Solaris 11.4 11 Feb 2021 tirdwr(4M)
diff -Nurwb 11.4.30/man4p/inet.4p 11.4.33/man4p/inet.4p
--- 11.4.30/man4p/inet.4p 2021-05-19 16:10:29.316760176 +0000
+++ 11.4.33/man4p/inet.4p 2021-05-19 16:11:42.010521604 +0000
@@ -27,6 +27,11 @@
and the User Datagram Protocol ("UDP").
+ Two versions of the Internet Protocol are supported, the previous ver-
+ sion 4 ("IPv4"), and the current version 6 ("IPv6"). This manual page
+ documents IPv4. See the inet6(4P) manual page for details of IPv6.
+
+
TCP supports the socket interface's SOCK_STREAM abstraction and TLI's
T_COTS_ORD service type. UDP supports the SOCK_DGRAM socket abstraction
and the TLI T_CLTS service type. See tcp(4P) and udp(4P). A direct
@@ -37,26 +42,18 @@
Ethernet addresses. See arp(4P).
- The 32-bit IP address is divided into network number and host number
- parts. It is frequency-encoded. The most-significant bit is zero in
- Class A addresses, in which the high-order 8 bits represent the network
- number. Class B addresses have their high order two bits set to 10 and
- use the high-order 16 bits as the network number field. Class C
- addresses have a 24-bit network number part of which the high order
- three bits are 110. Sites with a cluster of IP networks may chose to
- use a single network number for the cluster; this is done by using sub-
- net addressing. The host number portion of the address is further sub-
- divided into subnet number and host number parts. Within a subnet, each
- subnet appears to be an individual network. Externally, the entire
- cluster appears to be a single, uniform network requiring only a single
- routing entry. Subnet addressing is enabled and examined by the follow-
- ing ioctl(2) commands. They have the same form as the SIOCSIFADDR com-
- mand.
+ The 32-bit IPv4 address is divided into network number and host number
+ parts, using a network interface mask with bits set to 1 for the net-
+ work portion and bits set to 0 for the host portion. Sites with multi-
+ ple IP networks may chose to use subnet addressing to split their net-
+ work address range into smaller units. Within a subnet, each subnet
+ appears to be an individual network. Externally, the entire cluster
+ appears to be a single, uniform network requiring only a single routing
+ entry. Subnet addressing is enabled and examined by the following
+ ioctl(2) commands. They have the same form as the SIOCSIFADDR command.
SIOCSIFNETMASK Set interface network mask. The network mask defines
- the network part of the address; if it contains more
- of the address than the address type would indicate,
- then subnets are in use.
+ the network part of the address.
SIOCGIFNETMASK Get interface network mask.
@@ -69,7 +66,7 @@
Addresses in the Internet protocol family use the sockaddr_in struc-
- ture, which has that following members:
+ ture, which has the following members:
short sin_family;
ushort_t sin_port;
@@ -84,8 +81,8 @@
The sin_addr field of the sockaddr_in structure specifies a local or
remote IP address. Each network interface has its own unique IP
- address. The special value INADDR_ANY may be used in this field to
- effect "wildcard" matching. Given in a bind(3C) call, this value leaves
+ address. The special value INADDR_ANY may be used in this field to per-
+ form "wildcard" matching. Given in a bind(3C) call, this value leaves
the local IP address of the socket unspecified, so that the socket will
receive connections or messages directed at any of the valid IP
addresses of the system. This can prove useful when a process neither
@@ -93,7 +90,7 @@
to receive requests using all of its network interfaces. The sock-
addr_in structure given in the bind(3C) call must specify an in_addr
value of either INADDR_ANY or one of the system's valid IP addresses.
- Requests to bind any other address will elicit the error EADDRNOTAVAIL.
+ Requests to bind any other address will return the error EADDRNOTAVAIL.
When a connect(3C) call is made for a socket that has a wildcard local
address, the system sets the sin_addr field of the socket to the IP
address of the network interface that the packets for that connection
@@ -102,19 +99,24 @@
The sin_port field of the sockaddr_in structure specifies a port number
used by TCP or UDP. The local port address specified in a bind(3C) call
- is restricted to be greater than IPPORT_RESERVED (defined in
- <<netinet/in.h>>) unless the creating process is running as the supe-
- ruser, providing a space of protected port numbers. In addition, the
- local port address must not be in use by any socket of same address
- family and type. Requests to bind sockets to port numbers being used by
- other sockets return the error EADDRINUSE. If the local port address is
- specified as 0, then the system picks a unique port address greater
- than IPPORT_RESERVED. A unique local port address is also picked when a
- socket which is not bound is used in a connect(3C) or sendto (see
- send(3C)) call. This allows programs which do not care which local port
- number is used to set up TCP connections by simply calling socket(3C)
- and then connect(3C), and to send UDP datagrams with a socket(3C) call
- followed by a sendto() call.
+ is restricted to be greater than or equal to smallest-nonpriv-port, and
+ not one of the extra-priv-ports, unless the process has the
+ PRIV_NET_PRIVADDR privilege asserted, as described in the privileges(7)
+ manual page. The smallest-nonpriv-port and extra-priv-ports properties
+ may be modified or queried via the ipadm(8) command. The default value
+ for smallest-nonpriv-port is the constant IPPORT_RESERVED (defined in
+ <netinet/in.h>). In addition, the local port address must not be in use
+ by any socket of same address family and type. Requests to bind sockets
+ to port numbers being used by other sockets return the error EADDRI-
+ NUSE. If the local port address is specified as 0, then the system
+ picks a unique port address in the range (smallest-anon-port, largest-
+ anon-port), where the smallest-anon-port and largest-anon-port proper-
+ ties may be modified or queried via the ipadm(8) command. A unique
+ local port address is also picked when a socket which is not bound is
+ used in a connect(3C) or sendto(3C) call. This allows programs which do
+ not care which local port number is used to set up TCP connections by
+ simply calling socket(3C) and then connect(3C), and to send UDP data-
+ grams with a socket(3C) call followed by a sendto(3C) call.
Although this implementation restricts sockets to unique local port
@@ -122,7 +124,7 @@
same local port number so long as the remote IP addresses or port num-
bers are different for each connection. Programs may explicitly over-
ride the socket restriction by setting the SO_REUSEADDR socket option
- with setsockopt (see getsockopt(3C)).
+ with setsockopt(3C)).
TLI applies somewhat different semantics to the binding of local port
@@ -130,13 +132,16 @@
using the TLI.
SEE ALSO
- ioctl(2), bind(3C), byteorder(3C), connect(3C), gethostbyname(3C), get-
- netbyname(3C), getprotobyname(3C), getservbyname(3C), getsockopt(3C),
- send(3C), socket(3C), arp(4P), icmp(4P), ip(4P), tcp(4P), udp(4P)
+ ioctl(2), bind(3C), byteorder(3C), connect(3C), getaddrinfo(3C),
+ getnameinfo(3C), getnetbyname(3C), getprotobyname(3C),
+ getservbyname(3C), inet(3C), sendto(3C), setsockopt(3C), socket(3C),
+ arp(4P), icmp(4P), inet6(4P), ip(4P), tcp(4P), udp(4P), privileges(7),
+ ipadm(8)
+
+ Internet Engineering Task Force Standards:
+ https://www.ietf.org/standards/
- Network Information Center, DDN Protocol Handbook (3 vols.), Network
- Information Center, SRI International, Menlo Park, Calif., 1985.
NOTES
The Internet protocol support is subject to change as the Internet pro-
@@ -145,4 +150,4 @@
-Oracle Solaris 11.4 3 Aug 2000 inet(4P)
+Oracle Solaris 11.4 2 Feb 2021 inet(4P)
diff -Nurwb 11.4.30/man4p/inet6.4p 11.4.33/man4p/inet6.4p
--- 11.4.30/man4p/inet6.4p 2021-05-19 16:10:29.320660311 +0000
+++ 11.4.33/man4p/inet6.4p 2021-05-19 16:11:42.015927298 +0000
@@ -179,20 +179,25 @@
The sin6_port field of the sockaddr_in6 structure specifies a port num-
- ber used by TCP or UDP. The local port address specified in a bind()
- call is restricted to be greater than IPPORT_RESERVED (defined in
- <netinet/in.h>) unless the creating process is running as the super-
- user, providing a space of protected port numbers. In addition, the
- local port address cannot be in use by any socket of the same address
- family and type. Requests to bind sockets to port numbers being used by
- other sockets return the error EADDRINUSE. If the local port address is
- specified as 0, the system picks a unique port address greater than
- IPPORT_RESERVED. A unique local port address is also selected when a
- socket which is not bound is used in a connect(3C) or sendto() call.
- See send(3C). This allows programs that do not care which local port
- number is used to set up TCP connections by simply calling socket(3C)
- and then connect(3C), and then sending UDP datagrams with a socket()
- call followed by a sendto() call.
+ ber used by TCP or UDP. The local port address specified in a bind(3C)
+ call is restricted to be greater than or equal to smallest-nonpriv-
+ port, and not one of the extra-priv-ports, unless the process has the
+ PRIV_NET_PRIVADDR privilege asserted, as described in the privileges(7)
+ manual page. The smallest-nonpriv-port and extra-priv-ports properties
+ may be modified or queried via the ipadm(8) command. The default value
+ for smallest-nonpriv-port is the constant IPPORT_RESERVED (defined in
+ <netinet/in.h>). In addition, the local port address cannot be in use
+ by any socket of the same address family and type. Requests to bind
+ sockets to port numbers being used by other sockets return the error
+ EADDRINUSE. If the local port address is specified as 0, the system
+ picks a unique port address in the range (smallest-anon-port, largest-
+ anon-port), where the smallest-anon-port and largest-anon-port proper-
+ ties may be modified or queried via the ipadm(8) command. A unique
+ local port address is also selected when a socket which is not bound is
+ used in a connect(3C) or sendto(3C) call. This allows programs that do
+ not care which local port number is used to set up TCP connections by
+ simply calling socket(3C) and then connect(3C), and to send UDP data-
+ grams with a socket(3C) call followed by a sendto(3C) call.
Although this implementation restricts sockets to unique local port
@@ -200,7 +205,7 @@
same local port number so long as the remote IPv6 addresses or port
numbers are different for each connection. Programs may explicitly
override the socket restriction by setting the SO_REUSEADDR socket
- option with setsockopt(). See getsockopt(3C).
+ option with setsockopt(3C).
In addition, the same port may be bound by two separate sockets if one
@@ -313,30 +318,38 @@
fying an address.
SEE ALSO
- ioctl(2), bind(3C), connect(3C), getipnodebyaddr(3C), getipnodeby-
- name(3C), getprotobyname(3C), getservbyname(3C), getsockopt(3C),
- inet(3C), send(3C), icmp6(4P), ip6(4P), tcp(4P), udp(4P)
+ ioctl(2), bind(3C), byteorder(3C), connect(3C), getaddrinfo(3C),
+ getnameinfo(3C), getprotobyname(3C), getservbyname(3C), inet(3C),
+ sendto(3C), setsockopt(3C), icmp6(4P), inet(4P), ip6(4P), tcp(4P),
+ udp(4P), privileges(7), ipadm(8)
+ Internet Engineering Task Force Standards:
- Conta, A. and Deering, S., Internet Control Message Protocol (ICMPv6)
- for the Internet Protocol Version 6 (IPv6) Specification, RFC 1885,
- December 1995.
+ https://www.ietf.org/standards/
- Deering, S. and Hinden, B., Internet Protocol, Version 6 (IPv6) Speci-
- fication, RFC 1883, December 1995.
+ Deering, S. and Hinden, B., RFC 1883, Internet Protocol, Version 6
+ (IPv6) Specification, December 1995.
+ https://tools.ietf.org/html/rfc1883
- Hinden, B. and Deering, S., IP Version 6 Addressing Architecture, RFC
- 1884, December 1995.
+ Hinden, B. and Deering, S., RFC 1884, IP Version 6 Addressing Architec-
+ ture, December 1995. https://tools.ietf.org/html/rfc1884
- Draves, R., RFC 3484, Default Address Selection for IPv6. The Internet
- Society. February 2003.
+
+ Conta, A. and Deering, S., RFC 1885, Internet Control Message Protocol
+ (ICMPv6) for the Internet Protocol Version 6 (IPv6) Specification,
+ December 1995. https://tools.ietf.org/html/rfc1885
+
+
+ Draves, R., RFC 3484, Default Address Selection for IPv6. February
+ 2003. https://tools.ietf.org/html/rfc3484
Narten, T., and Draves, R. RFC 3041, Privacy Extensions for Stateless
- Address Autoconfiguration in IPv6. The Internet Society. January 2001.
+ Address Autoconfiguration in IPv6. January 2001.
+ https://tools.ietf.org/html/rfc3041
NOTES
The IPv6 support is subject to change as the Internet protocols
@@ -345,4 +358,4 @@
-Oracle Solaris 11.4 14 May 2018 inet6(4P)
+Oracle Solaris 11.4 2 Feb 2021 inet6(4P)
diff -Nurwb 11.4.30/man4p/ip6.4p 11.4.33/man4p/ip6.4p
--- 11.4.30/man4p/ip6.4p 2021-05-19 16:10:29.325375395 +0000
+++ 11.4.33/man4p/ip6.4p 2021-05-19 16:11:42.021851586 +0000
@@ -345,10 +345,10 @@
to enable the ipv6-forwarding option. IPv6 forwarding is configured at
boot time based on the setting of routeadm's ipv6-forwarding option.
ipadm(8) can also be used to enable ipv6 forwarding on a global basis.
- The ipadm set-prop subcommand along with forwarding property is used
- to enable system-wide forwarding of packets. The protocol for which
- forwarding needs to be enabled is specified using the -m option. See
- ipadm(8) for more details.
+ The ipadm set-prop subcommand along with the forwarding property is
+ used to enable system-wide forwarding of packets. The protocol for
+ which forwarding needs to be enabled is specified using the -m option.
+ See ipadm(8) for more details.
Additionally, finer-grained forwarding can be configured in IPv6. Each
@@ -372,8 +372,8 @@
host if a datagram can not be sent on because there is no route to the
final destination; it is sent by a router when it encounters a firewall
prohibition; it is sent by a destination node when the transport proto-
- col (that is, TCP) has no listener. A packet too big message is sent
- by a router if the packet is larger than the MTU of the outgoing link
+ col (that is, TCP) has no listener. A packet too big message is sent by
+ a router if the packet is larger than the MTU of the outgoing link
(this is used for Path MTU Discovery). A parameter problem message is
sent if there is a problem with a field in the IPv6 header or any of
the IPv6 extension headers such that the packet cannot be fully pro-
@@ -397,12 +397,18 @@
smf(7), ifconfig(8), ipadm(8), ndd(8), routeadm(8), svcadm(8)
- Deering, S. and Hinden, B. RFC 2460, Internet Protocol, Version 6
- (IPv6) Specification. The Internet Society. December, 1998.
+ Deering, S. and Hinden, R. RFC 8200, Internet Protocol, Version 6
+ (IPv6) Specification. Network Working Group. July 2017.
+ https://tools.ietf.org/html/rfc8200
- Stevens, W., and Thomas, M. RFC 2292, Advanced Sockets API for IPv6.
- Network Working Group. February 1998.
+ Gilligan, R. RFC 3493, Basic Socket Interface Extensions for IPv6. Net-
+ work Working Group. February 2003. https://tools.ietf.org/html/rfc3493
+
+
+ Stevens, W., Thomas, M., Nordmark, E., and Jinmei, T. RFC 3542,
+ Advanced Sockets API for IPv6. Network Working Group. May 2003.
+ https://tools.ietf.org/html/rfc3542
DIAGNOSTICS
A socket operation can fail with one of the following errors returned:
@@ -489,7 +495,7 @@
NOTES
Applications using the sockets API must use the Advanced Sockets API
- for IPv6 (RFC 2292) to see elements of the inbound packet's IPv6 header
+ for IPv6 (RFC 3542) to see elements of the inbound packet's IPv6 header
or extension headers.
@@ -506,4 +512,4 @@
-Oracle Solaris 11.4 13 Nov 2020 ip6(4P)
+Oracle Solaris 11.4 24 Feb 2021 ip6(4P)
diff -Nurwb 11.4.30/man5/audit_class.5 11.4.33/man5/audit_class.5
--- 11.4.30/man5/audit_class.5 2021-05-19 16:10:29.328319126 +0000
+++ 11.4.33/man5/audit_class.5 2021-05-19 16:11:42.025391977 +0000
@@ -7,21 +7,39 @@
SYNOPSIS
/etc/security/audit_class
+ /etc/security/audit_class.system
DESCRIPTION
- /etc/security/audit_class is an administrator configurable system file
- that stores class definitions used in the audit system. Audit events in
- audit_event(5) are mapped to one or more of the defined audit classes.
- audit_event can be updated in conjunction with changes to audit_class.
- See auditconfig(8) and user_attr(5) for information about changing the
- preselection of audit classes in the audit system.
+ The audit_class(5) file provides the class definitions used for config-
+ uring the audit system. Audit events in audit_event(5) are mapped to
+ one or more of the defined audit classes. audit_event(5) can be updated
+ in conjunction with changes to audit_class(5). See auditconfig(8) and
+ user_attr(5) for information about changing the preselection of audit
+ classes in the audit system.
+
+
+ The system defined audit classes are delivered in the readonly file
+ /etc/security/audit_class.system. The /etc/security/audit_class file is
+ provided for administrator customisation. The administrator can add new
+ audit class or can customise existing metaclasses.
+
+
+ The audit system looks for audit class definitions in the files in the
+ following order:
+
+ 1. /etc/security/audit_class
+
+
+ 2. /etc/security/audit_class.system
+
+
The fields for each class entry are separated by colons. Each class
entry is a bitmap and is separated from each other by a NEWLINE.
- Each entry in the audit_class file has the form:
+ Each entry in the audit_class(5) file has the form:
mask:name:description
@@ -58,6 +76,9 @@
which are no longer generated. Obsolete events are retained to
process old audit trails files.
+ Redefining the no class to have non-zero value can have undesir-
+ able side effects
+
The mask positions 0xff00000000000000 are reserved for local site use.
@@ -71,35 +92,9 @@
-
- 0x0000000000000000:no:invalid class
- 0x0000000000000001:fr:file read
- 0x0000000000000002:fw:file write
- 0x0000000000000004:fa:file attribute access
- 0x0000000000000008:fm:file attribute modify
- 0x0000000000000010:fc:file create
- 0x0000000000000020:fd:file delete
- 0x0000000000000040:cl:file close
- 0x0000000000000080:ft:file transfer
- 0x0000000000000100:nt:network
- 0x0000000000000200:ip:ipc
- 0x0000000000000400:na:non-attribute
- 0x0000000000001000:lo:login or logout
- 0x0000000000004000:ap:application
- 0x00000000000f0000:ad:old administrative (meta-class)
- 0x0000000000070000:am:administrative (meta-class)
- 0x0000000000010000:ss:change system state
- 0x0000000000020000:as:system-wide administration
- 0x0000000000040000:ua:user administration
- 0x0000000000080000:aa:audit utilization
- 0x0000000000300000:pc:process (meta-class)
- 0x0000000000100000:ps:process start/stop
- 0x0000000000200000:pm:process modify
- 0x0000000020000000:io:ioctl
- 0x0000000040000000:ex:exec
- 0x0000000080000000:ot:other
- 0xffffffffffffffff:all:all classes (meta-class)
-
+ 0x0100000000000000:pf:profile command
+ Refresh the audit service to update the runtime mappings
+ # svcadm refresh svc:/system/auditset:default
@@ -107,6 +102,9 @@
FILES
/etc/security/audit_class
+
+ /etc/security/audit_class.system
+
ATTRIBUTES
See attributes(7) for descriptions of the following attributes:
@@ -125,21 +123,6 @@
audit_event(5), user_attr(5), audit_flags(7), attributes(7), auditcon-
fig(8), auditrecord(8)
-NOTES
- Redefining the no class to have a non-zero value can have undesirable
- side effects.
-
-
- For changes to this file to be effective immediately, refresh svc:/sys-
- tem/auditset:default. For example:
-
- # svcadm refresh svc:/system/auditset:default
-
-
-
- The auditrecord -c <class list> displays the audit records in that
- class/meta-class.
-
-Oracle Solaris 11.4 11 Nov 2016 audit_class(5)
+Oracle Solaris 11.4 28 Jan 2021 audit_class(5)
diff -Nurwb 11.4.30/man5/ethers.5 11.4.33/man5/ethers.5
--- 11.4.30/man5/ethers.5 2021-05-19 16:10:29.330942882 +0000
+++ 11.4.33/man5/ethers.5 2021-05-19 16:11:42.028725058 +0000
@@ -30,13 +30,18 @@
bytes are always in network order. Host names may contain any printable
character other than SPACE, TAB, NEWLINE, or comment character.
+USAGE
+ Few systems other than boot servers have an ethers file. Most systems
+ instead rely on arp(4P) to map between Ethernet addresses and IP
+ addresses on their local network.
+
FILES
/etc/ethers file listing Ethernet hosts
SEE ALSO
- ethers(3C), hosts(5), nsswitch.conf(5)
+ ethers(3C), arp(4P), hosts(5), nsswitch.conf(5)
-Oracle Solaris 11.4 13 Nov 2017 ethers(5)
+Oracle Solaris 11.4 2 Feb 2021 ethers(5)
diff -Nurwb 11.4.30/man5/hosts.5 11.4.33/man5/hosts.5
--- 11.4.30/man5/hosts.5 2021-05-19 16:10:29.334014628 +0000
+++ 11.4.33/man5/hosts.5 2021-05-19 16:11:42.032510291 +0000
@@ -62,14 +62,12 @@
Network addresses are written in one of two ways:
- o The conventional "decimal dot" notation and interpreted
- using the inet_addr routine from the Internet address manip-
- ulation library, inet(3C).
+ o The conventional IPv4 "decimal dot" notation and interpreted
+ using the inet_addr(3C) routine.
- o The IP Version 6 protocol [IPV6], defined in RFC 1884 and
- interpreted using the inet_pton() routine from the Internet
- address manipulation library. See inet(3C).
+ o The IPv6 notation, defined in RFC 1884 and interpreted using
+ the inet_pton(3C) routine.
@@ -77,15 +75,15 @@
which states:
- A "name" (Net, Host, Gateway, or Domain name) is a text string up to 24
- characters drawn from the alphabet (A-Z), digits (0-9), minus sign (-),
- and period (.). Note that periods are only allowed when they serve to
+ A "name" (Net, Host, or Domain name) is a text string up to 24 charac-
+ ters drawn from the alphabet (A-Z), digits (0-9), minus sign (-), and
+ period (.). Note that periods are only allowed when they serve to
delimit components of "domain style names". (See RFC 921, "Domain Name
System Implementation Schedule," for background). No blank or space
characters are permitted as part of a name. No distinction is made
between uppercase and lowercase. The first character must be an alpha
- character [or a digit. (RFC 1123 relaxed RFC 952's limitation of the
- first character to only alpha characters.)] The last character must not
+ character or a digit. [RFC 1123 relaxed RFC 952's limitation of the
+ first character to only alpha characters.] The last character must not
be a minus sign or period.
@@ -93,28 +91,17 @@
at least one alphabetical or special character.
- Although the interface accepts host names longer than 24 characters for
- the host portion (exclusive of the domain component), choosing names
- for hosts that adhere to the 24 character restriction will insure maxi-
- mum interoperability on the Internet.
-
-
- A host which serves as a GATEWAY should have "-GATEWAY" or "-GW" as
- part of its name. Hosts which do not serve as Internet gateways should
- not use "-GATEWAY" and "-GW" as part of their names. A host which is a
- TAC should have "-TAC" as the last part of its host name, if it is a
- DoD host. Single character names or nicknames are not allowed.
+ Single character names or nicknames are not allowed.
EXAMPLES
- Example 1 Example hosts File Entry
-
+ Example 1 Example IPv4 hosts File Entry
- The following is a typical line from the hosts file:
+ The following is an example of an IPv4 entry from the hosts file:
- 192.9.1.20 gaia.example.com gaia # John Smith
+ 192.0.2.20 gaia.example.com gaia # John Smith
Example 2 Example IPv6 Address Entry
@@ -124,29 +111,43 @@
The following is an example of an IPv6 hosts entry:
- 2001:0db8:3c4d:55:a00:20ff:fe8e:f3ad myhost.example.com myhost # John Smith
+ 2001:db8:3c4d:55:a00:20ff:fe8e:f3ad myhost.example.com myhost # John Smith
+
+
+ Example 3 Server with multiple interfaces
+
+
+
+ The following example shows multiple interfaces with the same hostname:
+
+ 192.0.2.1 server.example.com server1int1
+ 198.51.100.1 server.example.com server1int2
SEE ALSO
- gethostbyname(3C), getipnodebyname(3C), inet(3C), nsswitch.conf(5),
- resolv.conf(5)
+ getaddrinfo(3C), gethostbyname(3C), getipnodebyname(3C), inet(3C),
+ nsswitch.conf(5), resolv.conf(5)
Braden, B., editor, RFC 1123, Requirements for Internet Hosts - Appli-
cation and Support, Network Working Group, October, 1989.
+ https://tools.ietf.org/html/rfc1123
Harrenstien, K., Stahl, M., and Feinler, E., RFC 952, DOD Internet Host
Table Specification, Network Working Group, October 1985.
+ https://tools.ietf.org/html/rfc952
Hinden, R., and Deering, S., editors, RFC 1884, IP Version 6 Addressing
Architecture, Network Working Group, December, 1995.
+ https://tools.ietf.org/html/rfc1884
Postel, Jon, RFC 921, Domain Name System Implementation Schedule
(Revised), Network Working Group, October 1984.
+ https://tools.ietf.org/html/rfc921
NOTES
/etc/inet/hosts is the official SVR4 name of the hosts file. The sym-
@@ -158,4 +159,4 @@
-Oracle Solaris 11.4 17 Nov 2016 hosts(5)
+Oracle Solaris 11.4 2 Feb 2021 hosts(5)
diff -Nurwb 11.4.30/man5/netconfig.5 11.4.33/man5/netconfig.5
--- 11.4.30/man5/netconfig.5 2021-05-19 16:10:29.337493075 +0000
+++ 11.4.33/man5/netconfig.5 2021-05-19 16:11:42.036546635 +0000
@@ -90,10 +90,10 @@
loopback Loopback (local to host).
- inet Internetwork: UDP, TCP, and the like.
+ inet Internet over IPv4: TCP, UDP, and the like.
- inet6 Internetwork over IPv6: UDP, TCP, and the like.
+ inet6 Internet over IPv6: TCP, UDP, and the like.
implink ARPANET imp addresses
@@ -205,7 +205,7 @@
defined in <netconfig.h>. This structure includes the following mem-
bers:
- char *nc_netid Network ID, including NULL terminator.
+ char *nc_netid Network ID, including null terminator.
unsigned long nc_semantics Semantics.
@@ -282,9 +282,6 @@
ticots tpi_cots v loopback - /dev/ticots straddr.so
-
-
-
FILES
<netconfig.h>
@@ -294,4 +291,4 @@
-Oracle Solaris 11.4 18 Nov 2003 netconfig(5)
+Oracle Solaris 11.4 2 Feb 2021 netconfig(5)
diff -Nurwb 11.4.30/man5/networks.5 11.4.33/man5/networks.5
--- 11.4.30/man5/networks.5 2021-05-19 16:10:29.348272895 +0000
+++ 11.4.33/man5/networks.5 2021-05-19 16:11:42.044352259 +0000
@@ -13,11 +13,11 @@
DESCRIPTION
The networks file is a local source of information regarding the net-
- works which comprise the Internet. The networks file can be used in
- conjunction with, or instead of, other networks sources, including the
- NIS maps networks.byname and networks.byaddr and the NIS+ table net-
- works. Programs use the getnetbyname(3C) routines to access this infor-
- mation.
+ works a system may need to know the names of. The networks file can be
+ used in conjunction with, or instead of, other networks sources,
+ including the NIS maps networks.byname and networks.byaddr, and
+ ipNetwork objects in an LDAP directory. Programs use the
+ getnetbyname(3C) routines to access this information.
The network file has a single line for each network, with the following
@@ -29,21 +29,16 @@
Items are separated by any number of SPACE or TAB characters. A '#'
indicates the beginning of a comment. Characters up to the end of the
- line are not interpreted by routines which search the file. This file
- is normally created from the official network database maintained at
- the Network Information Control Center (NIC), though local changes may
- be required to bring it up to date regarding unofficial aliases and/or
- unknown networks.
+ line are not interpreted by routines which search the file.
Network numbers may be specified in the conventional dot ('.') notation
- using the inet_network routine from the Internet address manipulation
- library, inet(4P). Network names may contain any printable character
- other than a field delimiter, NEWLINE, or comment character.
+ using the inet_network(3C) routine. Network names may contain any
+ printable character other than a field delimiter, NEWLINE, or comment
+ character.
SEE ALSO
- getnetbyaddr(3C), getnetbyname(3C), inet(3C), inet(4P), nss-
- witch.conf(5)
+ getnetbyaddr(3C), getnetbyname(3C), inet_network(3C), nsswitch.conf(5)
NOTES
The official SVR4 name of the networks file is /etc/inet/networks. The
@@ -61,4 +56,4 @@
-Oracle Solaris 11.4 17 Jan 2002 networks(5)
+Oracle Solaris 11.4 2 Feb 2021 networks(5)
diff -Nurwb 11.4.30/man5/nss.5 11.4.33/man5/nss.5
--- 11.4.30/man5/nss.5 2021-05-19 16:10:29.353143400 +0000
+++ 11.4.33/man5/nss.5 2021-05-19 16:11:42.047960049 +0000
@@ -3,17 +3,15 @@
NAME
- nss - configuration file for initgroups
+ nss - configuration file for name service behavior
SYNOPSIS
/etc/default/nss
DESCRIPTION
- The /etc/default/nss configuration file provides methods for init-
- groups(3C) lookup method. The file also provides a method to change
- address sorting by name lookup functions. The file controls the behav-
- ior of the name service switch routines outside of the source database
- mappings provided by the /etc/nsswitch.conf file.
+ The /etc/default/nss configuration file controls the behavior of the
+ name service switch routines outside of the source database mappings
+ provided by the nsswitch.conf(5) configuration.
/etc/default/nss supports the following options:
@@ -21,9 +19,9 @@
NETID_AUTHORITATIVE
Changes the behavior of the name service lookups to use the netid
- table in response to the initgroups() call. By default, init-
- groups() uses the group table. When NETID_AUTHORITATIVE is set to
- TRUE, initgroups() uses netid as the source for supplementary
+ table in response to the initgroups(3C) call. By default,
+ initgroups() uses the group table. When NETID_AUTHORITATIVE is set
+ to TRUE, initgroups() uses netid as the source for supplementary
groups rather than the group table.
The name service administrator must ensure that the netid table
@@ -37,8 +35,8 @@
SORT_ADDRS
Changes the behavior of address sorting by host name lookup func-
- tions such as gethostbyname(3C), netdir_getbyname(3C), getad-
- drinfo(3C), and getipnodebyname(3C).
+ tions such as getaddrinfo(3C), gethostbyname(3C),
+ getipnodebyname(3C), and netdir_getbyname(3C).
SORT_ADDRS=TRUE (the default) causes addresses to be sorted and
favors addresses that are considered local, that is, those that are
@@ -63,9 +61,9 @@
+-----------------------------+-----------------------------+
SEE ALSO
- getaddrinfo(3C), gethostbyname(3C), getipnodebyname(3C), init-
- groups(3C), netdir_getbyname(3C), nsswitch.conf(5), attributes(7)
+ getaddrinfo(3C), gethostbyname(3C), getipnodebyname(3C),
+ initgroups(3C), netdir_getbyname(3C), nsswitch.conf(5), attributes(7)
-Oracle Solaris 11.4 13 Jun 2014 nss(5)
+Oracle Solaris 11.4 2 Feb 2021 nss(5)
diff -Nurwb 11.4.30/man5/nsswitch.conf.5 11.4.33/man5/nsswitch.conf.5
--- 11.4.30/man5/nsswitch.conf.5 2021-05-19 16:10:29.360397060 +0000
+++ 11.4.33/man5/nsswitch.conf.5 2021-05-19 16:11:42.066137608 +0000
@@ -13,47 +13,58 @@
DESCRIPTION
The operating system uses a number of databases of information about
- hosts, ipnodes, users (passwd(5), shadow(5), and user_attr(5)), and
+ hosts, services, users (passwd(5), shadow(5), and user_attr(5)), and
groups. Data for these can come from a variety of sources: hostnames
and host addresses, for example, can be found in /etc/hosts, NIS, LDAP,
DNS, or Multicast DNS. Zero or more sources can be used for each data-
- base; the sources and their lookup order are specified in svc:/sys-
- tem/name-service/switch service. For the purposes of backwards compati-
- bility, the /etc/nsswitch.conf file is regenerated from the SMF proper-
- ties configured in the svc:/system/name-service/switch service. The
- /etc/nsswitch.conf file is considered obsolete.
+ base; the sources and their lookup order are specified in the SMF prop-
+ erties of the svc:/system/name-service/switch service. For the purposes
+ of backwards compatibility, the /etc/nsswitch.conf file is regenerated
+ from the configuration in the svc:/system/name-service/switch service.
+ The /etc/nsswitch.conf file is considered obsolete.
+
+
+ The following databases use the switch configuration:
+
+
+ Database Property Used By
+ --------------------------------------------------------------
+ aliases alias sendmail(8)
+ auth_attr auth_attr getauthnam(3C)
+ automount automount automount(8)
+ bootparams bootparam rpc.bootparamd(8)
+ ethers ether ethers(3C)
+ group group getgrnam(3C)
+ hosts host getaddrinfo(3C), getnameinfo(3C),
+ gethostent(3C). See Interaction
+ with netconfig.
+ netgroup netgroup innetgr(3C)
+ netmasks netmask ipadm(8)
+ networks network getnetbyname(3C)
+ passwd password getpwnam(3C), getspnam(3C),
+ getusernam(3C)
+ prof_attr prof_attr getprofnam(3C), getexecprof(3C)
+ project project getprojent(3PROJECT), getdefault-
+ proj(3PROJECT), inproj(3PROJECT),
+ newtask(1), setproject(3PROJECT)
+ protocols protocol getprotobyname(3C)
+ publickey publickey getpublickey(3C), secure_rpc(3C)
+ rpc rpc getrpcbyname(3C)
+ services service getservbyname(3C). See Interac-
+ tion with netconfig.
+ sudoers sudoers sudo(8)
+ tnrhtp tnrhtp tnctl(8)
+ tnrhdb tnrhdb tnctl(8)
- The following databases use the switch file:
-
-
- Database Used By
- -----------------------------------------------------------
- alias sendmail(8)
- auth_attr getauthnam(3C)
- automount automount(8)
- bootparam rpc.bootparamd(8)
- ether ethers(3C)
- group getgrnam(3C)
- host gethostbyname(3C), getaddrinfo(3C). See
- Interaction with netconfig.
- netgroup innetgr(3C)
- netmask ifconfig(8)
- network getnetbyname(3C)
- passwd getpwnam(3C), getspnam(3C), getuser-
- nam(3C)
- prof_attr getprofnam(3C), getexecprof(3C)
- project getprojent(3PROJECT), getdefault-
- proj(3PROJECT), inproj(3PROJECT), new-
- task(1), setproject(3PROJECT)
- protocol getprotobyname(3C)
- publickey getpublickey(3C), secure_rpc(3C)
- rpc getrpcbyname(3C)
- service getservbyname(3C).
- See Interaction with netconfig.
- user_attr getuserattr(3C)
- sudoers sudo(8)
+ In the above table, the Database column shows the form used in the
+ /etc/nsswitch.conf file, while the Property column shows the form used
+ in the SMF configuration properties. The ipnodes database used for map-
+ ping hostnames to IPv6 addresses in prior releases of Solaris is no
+ longer used. Instead the hosts database is used for both IPv4 and IPv6
+ addresses. Lookups of user_attr entries currently use the sources spec-
+ ified for the password database.
The following sources can be used:
@@ -61,25 +72,18 @@
Source Uses
-----------------------------------------------------------
+ files /etc/hosts, /etc/passwd, /etc/shadow,
+ /etc/security/auth_attr, /etc/user_attr
+ nis NIS (YP). See nis(7) and ypfiles(5).
+ ldap LDAP. See ldap(7).
+ ad Active Directory. See ad(7).
+ dns Valid only for hosts. Uses the Internet Domain
+ Name Service.
+ mdns Valid only for hosts. Uses the Multicast
+ Domain Name Service.
- files /etc/hosts, /etc/passwd, /etc/inet/ipnodes,
- /etc/shadow, /etc/security/auth_attr,
- /etc/user_attr
- nis NIS(YP)
- ldap LDAP
- ad Active Directory
- dns Valid only for hosts and ipnodes. Uses the
- Internet Domain Name Service.
- mdns Valid only for hosts and ipnodes. Uses the
- Multicast Domain Name Service.
-
-
-
- /etc/inet/ipnodes is a symbolic link to /etc/hosts.
-
-
The config property group of the svc:/system/name-service/switch ser-
vice contains the configuration for the nsswitch.conf file.
@@ -89,27 +93,20 @@
default property if desired.
- For instance:
-
-
-
- config/default set to "files", and
- config/host set to "files dns" defaults all
- databases to local files database access, except for the
- host database which will search files first and dns second,
- if dns access is configured.
-
-
-
+ For instance, if config/default is set to "files", and config/host is
+ set to "files dns", then all nsswitch databases default to local files
+ database access, except for the host database which will search files
+ first and DNS second.
The following single-valued properties are supported:
-
+ Property Usage
+ -------------------------------------------------------------
config/default Default db configuration
config/host Override for host db
- config/password Override for passwd db
+ config/password Override for password db
config/group Override for group db
config/network Override for network db
config/protocol Override for protocol db
@@ -131,28 +128,29 @@
-
-
- Typically the property values are simple, such as "files" "files nis".
- However, when multiple sources are specified, it is sometimes necessary
- to define precisely the circumstances under which each source is tried.
- A source can return one of the following codes:
+ Typically the property values are simple lists of sources, such as
+ "files" or "files nis". However, when multiple sources are specified,
+ it is sometimes necessary to define precisely the circumstances under
+ which each source is tried. A source can return one of the following
+ status codes:
Status Meaning
+ -----------------------------------------------------------
SUCCESS Requested database entry was found.
- UNAVAIL Source is not configured on this
- system or internal failure.
+ UNAVAIL Source is not configured on this system
+ or internal failure.
NOTFOUND Source responded "no such entry"
- TRYAGAIN Source is busy or not responding,
- might respond to retries.
+ TRYAGAIN Source is busy or not responding, might
+ respond to retries.
- For each status code, two actions are possible:
+ For each status code, the following actions are possible:
Action Meaning
+ -----------------------------------------------------------
continue Try the next source in the list.
return Return now.
@@ -162,16 +160,15 @@
Action Meaning
+ -----------------------------------------------------------
forever Retry the current source forever.
- n Retry the current source n more
- times, where n is an integer
- between 0 and MAX_INT (that is,
- 2.14 billion). After n retries
- has been exhausted, the TRYAGAIN
- action transitions to continue,
- until a future request receives a
- response, at which time TRYA-
- GAIN=n is restored.
+ n Retry the current source n more times,
+ where n is an integer between 0 and
+ MAX_INT (that is, 2.14 billion). After n
+ retries has been exhausted, the TRYAGAIN
+ action transitions to continue, until a
+ future request receives a response, at
+ which time TRYAGAIN=n is restored.
@@ -222,12 +219,12 @@
source returns.
Interaction with netconfig
- In order to ensure that they all return consistent results, gethostby-
- name(3C), getaddrinfo(3C), getservbyname(3C), and netdir_getbyname(3C)
- functions are all implemented in terms of the same internal library
- function. This function obtains the system-wide source lookup policy
- for hosts, ipnodes, and services based on the inet family entries in
- netconfig(5) and uses the switch entries only if the netconfig entries
+ In order to ensure that they all return consistent results, the getad-
+ drinfo(3C), gethostbyname(3C), getservbyname(3C), and netdir_getby-
+ name(3C) functions are all implemented in terms of the same internal
+ library function. This function obtains the system-wide source lookup
+ policy for hosts and services based on the inet family entries in net-
+ config(5) and uses the switch entries only if the netconfig entries
have a - (hyphen) in the last column for nametoaddr libraries. See the
Notes section in gethostbyname(3C) and getservbyname(3C) for details.
@@ -242,15 +239,16 @@
When password aging is turned on, only a limited set of possible name
services are supported and must follow those rules:
- o passwd line must have 1, 2 or 3 entries
+ o password configuration must have 1, 2, or 3 entries
- o First passwd entry must be files
+ o First password entry must be files
- o passwd entries other than files, nis and ldap are ignored
+ o password entries other than files, nis and ldap are ignored
and skipped during password update. (It is necessary to use
- source-specific tool to update password in such database).
+ a source-specific tool to update a password in such data-
+ base).
@@ -258,50 +256,42 @@
attempts to change the password after expiration and prevents the user
from logging in. These are the only permitted settings when password
aging has been turned on. Otherwise, you can work around incorrect
- passwd: lines by using the -r repository argument to the passwd(1) com-
- mand and using passwd -r repository to override the nsswitch.conf set-
- tings and specify in which name service you want to modify your pass-
- word.
+ password configurations by using the -r repository argument to the
+ passwd(1) command and using passwd -r repository to override the nss-
+ witch.conf settings and specify in which name service you want to mod-
+ ify your password.
Hard-wired Policies
The compiled-in default entries for all databases is "files".
Useful Configuration Notes
- The files source for the ipnodes and hosts databases is identical, as
- /etc/inet/ipnodes is a symbolic link to /etc/hosts. The host property
- is used for host lookups.
-
-
When using Active Directory, dns is required to perform hosts resolu-
tion.
- It's strongly advised that dns always be used to perform host lookups.
+ It is strongly advised that dns always be used to perform host lookups.
This is especially true when ldap is being used for name service
lookups. The use of ldap for host lookups is not recommended. Adding
ldap to hosts will likely prevent authentication to the LDAP server
while using TLS. In order to get information from the Internet Domain
- Name Service for hosts use the following configuration and set up the
- /etc/resolv.conf file (see resolv.conf(5) for more details):
-
- hosts: files dns
-
+ Name Service for hosts set the config/host property to "files dns", and
+ set up the /etc/resolv.conf file (see resolv.conf(5) for more details).
Enumeration - getXXXent()
- Many of the databases have enumeration functions: passwd has getp-
- went(), hosts has gethostent(), and so on. These were reasonable when
+ Many of the databases have enumeration functions: password has getp-
+ went(), host has gethostent(), and so on. These were reasonable when
the only source was files but often make little sense for hierarchi-
cally structured sources that contain large numbers of entries, much
less for multiple sources. The interfaces are still provided and the
implementations strive to provide reasonable results, but the data
- returned can be incomplete (enumeration for hosts is simply not sup-
+ returned can be incomplete (enumeration for host is simply not sup-
ported by the dns source), inconsistent (if multiple sources are used),
formatted in an unexpected fashion (for a host with a canonical name
and three aliases, a source might return four hostents, and they might
- not be consecutive), or very expensive (enumerating a passwd database
+ not be consecutive), or very expensive (enumerating a password database
of 5,000 users is probably a bad idea). Furthermore, multiple threads
in the same process using the same reentrant enumeration function
- (getXXXent_r() are supported beginning with SunOS 5.3) share the same
+ (getXXXent_r() are supported beginning with Solaris 2.3) share the same
enumeration position; if they interleave calls, they enumerate disjoint
subsets of the same database.
@@ -312,9 +302,58 @@
nam(3C), and getspnam(3C), respectively), which use only the files
source.
+EXAMPLES
+ Example 1 Displaying current switch configuration
+
+
+
+ This command displays the existing configuration of the name service
+ switch. It shows the use of the files and ldap sources for automount
+ maps and information about users and groups, the use of the files and
+ dns sources for host name and address lookup, the use of just the ldap
+ source for netgroups, and the default of files for all other databases.
+
+
+ example% svccfg -s name-service/switch listprop config
+ config application
+ config/automount astring "files ldap"
+ config/default astring files
+ config/group astring "files ldap"
+ config/host astring "files dns"
+ config/netgroup astring ldap
+ config/password astring "files ldap"
+
+
+
+ Example 2 Changing switch configuration
+
+
+
+ This command sets host name and address lookup to use the files source
+ first to search the /etc/hosts and then the dns source to query the
+ name servers specified in resolv.conf(5) for information not found in
+ the hosts file.
+
+
+ example% svccfg -s name-service/switch
+ svc:/system/name-service/switch> setprop config/host = astring: "files dns"
+ svc:/system/name-service/switch> select system/name-service/switch:default
+ svc:/system/name-service/switch:default> refresh
+ svc:/system/name-service/switch:default> validate
+ svc:/system/name-service/switch:default> quit
+
+
+
+
+
+ For the full set of commands needed to configure and enable DNS usage,
+ see Configuring a DNS Client in Configuring and Managing Network Compo-
+ nents in Oracle Solaris 11.4.
+
FILES
A source named SSS is implemented by a shared object named nss_SSS.so.1
- that resides in /usr/lib.
+ that resides in /usr/lib as a 32-bit shared object, and in /usr/lib/64
+ as a 64-bit shared object.
/etc/nsswitch.conf Configuration file. (Obsolete.)
@@ -363,16 +402,21 @@
SEE ALSO
- kpasswd(1), newtask(1), passwd(1), ethers(3C), getaddrinfo(3C), getau-
- thnam(3C), getexecprof(3C), getgrnam(3C), gethostbyname(3C), getnetby-
- name(3C), getnetgrent(3C), getprofnam(3C), getprotobyname(3C), getpub-
- lickey(3C), getpwnam(3C), getrpcbyname(3C), getservbyname(3C), getsp-
- nam(3C), getuserattr(3C), getusernam(3C), netdir(3C), secure_rpc(3C),
- getdefaultproj(3PROJECT), getprojent(3PROJECT), inproj(3PROJECT), set-
- project(3PROJECT), auth_attr(5), hosts(5), netconfig(5), project(5),
- resolv.conf(5), user_attr(5), ypfiles(5), ad(7), ldap(7), pam_list(7),
- automount(8), ifconfig(8), mdnsd(8), nscfg(8), rpc.bootparamd(8), send-
- mail(8)
+ kpasswd(1), newtask(1), passwd(1), ethers(3C), getaddrinfo(3C),
+ getauthnam(3C), getexecprof(3C), getgrnam(3C), gethostbyname(3C),
+ getnetbyname(3C), getnetgrent(3C), getprofnam(3C), getprotobyname(3C),
+ getpublickey(3C), getpwnam(3C), getrpcbyname(3C), getservbyname(3C),
+ getspnam(3C), getuserattr(3C), getusernam(3C), netdir(3C),
+ secure_rpc(3C), getdefaultproj(3PROJECT), getprojent(3PROJECT),
+ inproj(3PROJECT), setproject(3PROJECT), auth_attr(5), hosts(5),
+ netconfig(5), project(5), resolv.conf(5), user_attr(5), ypfiles(5),
+ ad(7), ldap(7), nis(7), pam_list(7), automount(8), getent(8), ipadm(8),
+ mdnsd(8), nscd(8), nscfg(8), rpc.bootparamd(8), sendmail(8), svccfg(8)
+
+
+ Chapter 4, Administering Naming and Directory Services on an Oracle
+ Solaris System in Configuring and Managing Network Components in Oracle
+ Solaris 11.4
NOTES
Within each process that uses nsswitch.conf, the entire file is read
@@ -407,5 +451,12 @@
jent(3PROJECT), fgetpwent(3C), fgetspent(3C), getpw(3C), putpwent(3C).
+ To lookup entries in a database from the command line following the
+ switch configuration, use the getent(8) command. Name service client
+ commands such as delv(1), dig(1), nslookup(1), ldaplist(1), and
+ ypmatch(1) bypass the switch configuration and look solely in their
+ respective name service.
+
+
-Oracle Solaris 11.4 25 Jul 2020 nsswitch.conf(5)
+Oracle Solaris 11.4 2 Feb 2021 nsswitch.conf(5)
diff -Nurwb 11.4.30/man5/resolv.conf.5 11.4.33/man5/resolv.conf.5
--- 11.4.30/man5/resolv.conf.5 2021-05-19 16:10:29.366538129 +0000
+++ 11.4.33/man5/resolv.conf.5 2021-05-19 16:11:42.079030392 +0000
@@ -78,7 +78,7 @@
to MAXDFLSRCH domains will be used, as long as each contains at
least LOCALDOMAINPARTS domain labels. See <resolv.h>. You can
change the default behavior by listing the desired domain search
- path, , one domain per property value.
+ path, one domain per property value.
Most resolver queries will be attempted using each component of the
search path in turn until a match is found. This process may be
@@ -180,6 +180,26 @@
these properties are present, the search property takes precedence.
+ For information about how to enable a DNS client, see DNS and the Ser-
+ vice Management Facility in Working With Oracle Solaris 11.4 Directory
+ and Naming Services: DNS and NIS.
+
+
+ For more information on how to use SMF commands to view and set the
+ properties, see the See Also section.
+
+ENVIRONMENT VARIABLES
+ Several environment variables can override the settings in the resolver
+ configuration. However, these variables are only supported when an
+ application is compiled to directly call APIs from the
+ resolver(3RESOLV) library. Most applications are instead compiled to
+ use higher level interfaces such as getaddrinfo(3C) that use the nss-
+ witch.conf(5) configuration to determine which sources of host name and
+ address information to use for lookups, instead of hardcoding to DNS by
+ calling the DNS resolver directly, so these environment variables will
+ not be effective.
+
+
You can override the domain and search properties of the system config-
uration on a per-process basis by setting the environment variable
LOCALDOMAIN to a space-separated list of search domains.
@@ -190,28 +210,60 @@
space-separated list of resolver options.
- The keyword and value must appear on a single line. Start the line with
- the keyword, for example, nameserver, followed by the value, separated
- by white space.
+ The HOSTALIASES environment variable specifies a file listing addi-
+ tional aliases for hosts, which may be used by the resolver(3RESOLV)
+ library unless the application specifies the RES_NOALIASES option.
+EXAMPLES
+ Example 1 Listing Available Configuration Parameters
- The LOCALDOMAIN environment variable is only supported when an applica-
- tion is compiled to directly call APIs from the resolver(3RESOLV)
- library.
- The HOSTALIAS environment variable is only supported when an applica-
- tion is compiled to directly call APIs from the resolver(3RESOLV)
- library.
+ Use the following command to list the available configuration parame-
+ ters for svc:/network/dns/client:
- For information about how to enable a DNS client, see DNS and the Ser-
- vice Management Facility in Working With Oracle Solaris 11.4 Directory
- and Naming Services: DNS and NIS.
+ $ svccfg -s network/dns/client describe -tv config
- For more information on how to use SMF commands to view and set the
- properties, see the See Also section.
+ Example 2 Configuring a Client
+
+
+
+ Use the following commands to configure a client in subdomain us.exam-
+ ple.com to use two DNS servers, to try a givenname as-is if it has two
+ or more dots, and to only make two attempts to contact each server:
+
+
+ $ svccfg -s svc:/network/dns/client setprop \
+ config/nameserver = net_address: \(192.168.0.1 10.0.0.1\)
+ $ svccfg -s svc:/network/dns/client \
+ setprop config/search = astring: \(us.example.com example.com\)
+ $ svccfg -s svc:/network/dns/client \
+ setprop config/options = astring: \"ndots:2 attempts:2\"
+ $ svcadm refresh svc:/network/dns/client
+
+
+
+
+ A few points to note while executing this example:
+
+ o The attempts option here is overridden by the retries option
+ in nsswitch.conf(5) when standard application interfaces
+ such as getaddrinfo(3C) and getnameinfo(3C) are used.
+
+
+ o The config/search and config/nameserver properties take mul-
+ tiple values, not a space separated list.
+
+
+ o The config/options property takes a space separated list of
+ options, not multiple values.
+
+
+ o refresh is necessary for the requested changes to take
+ effect.
+
ATTRIBUTES
See attributes(7) for descriptions of the following attributes:
@@ -226,9 +278,9 @@
+-----------------------------+-----------------------------+
SEE ALSO
- svcprop(1), sysinfo(2), gethostbyname(3C), gethostname(3C), getipnode-
- byname(3C), getnameinfo(3C), resolver(3RESOLV), attributes(7), domain-
- name(8), svcadm(8), svccfg(8)
+ svcprop(1), sysinfo(2), getaddrinfo(3C), gethostbyname(3C), gethost-
+ name(3C), getipnodebyname(3C), getnameinfo(3C), resolver(3RESOLV), nss-
+ witch.conf(5), attributes(7), domainname(8), svcadm(8), svccfg(8)
Managing System Services in Oracle Solaris 11.4
@@ -239,4 +291,4 @@
-Oracle Solaris 11.4 07 Feb 2017 resolv.conf(5)
+Oracle Solaris 11.4 2 Feb 2021 resolv.conf(5)
diff -Nurwb 11.4.30/man5/ypfiles.5 11.4.33/man5/ypfiles.5
--- 11.4.30/man5/ypfiles.5 2021-05-19 16:10:29.376853808 +0000
+++ 11.4.33/man5/ypfiles.5 2021-05-19 16:11:42.088149918 +0000
@@ -3,15 +3,15 @@
NAME
- ypfiles - Network Information Service Version 2, formerly knows as YP
+ ypfiles - Network Information Service Version 2, formerly known as YP
DESCRIPTION
The NIS network information service uses a distributed, replicated
- database of dbm files , in ASCII form, that are contained in the
+ database of ndbm files, in ASCII form, that are contained in the
/var/yp directory hierarchy on each NIS server.
- A dbm database served by the NIS server is called a NIS map. An NIS
+ A ndbm database served by the NIS server is called a NIS map. An NIS
domain is a subdirectory of /var/yp that contains a set of NIS maps on
each NIS server.
@@ -151,10 +151,27 @@
NIS to LDAP mode map files
+ATTRIBUTES
+ See attributes(7) for description of the following attributes:
+
+
+ +-----------------------------+-----------------------------+
+ | ATTRIBUTE TYPE | ATTRIBUTE VALUE |
+ +-----------------------------+-----------------------------+
+ |Interface Stability |Obsolete Committed |
+ +-----------------------------+-----------------------------+
+ |Availability |system/network/nis |
+ +-----------------------------+-----------------------------+
+
SEE ALSO
- ndbm(3C), ypclnt(3C), ldap(7), makedbm(8), ypbind(8), ypinit(8),
- ypmake(8), ypmap2src(8), ypserv(8), ypxfrd(8)
+ ndbm(3C), ypclnt(3C), ldap(7), nis(7), makedbm(8), ypbind(8),
+ ypinit(8), ypmake(8), ypmap2src(8), ypserv(8), ypxfrd(8)
+
+NOTES
+ All components of NIS, including clients, servers, tools, and program-
+ ming interfaces might not be available in a future update of Oracle
+ Solaris. NIS users should migrate to the LDAP naming service.
-Oracle Solaris 11.4 15 Apr 2019 ypfiles(5)
+Oracle Solaris 11.4 2 Feb 2021 ypfiles(5)
diff -Nurwb 11.4.30/man7/nis.7 11.4.33/man7/nis.7
--- 11.4.30/man7/nis.7 2021-05-19 16:10:29.381714661 +0000
+++ 11.4.33/man7/nis.7 2021-05-19 16:11:42.092410125 +0000
@@ -8,19 +8,27 @@
DESCRIPTION
NIS, formerly known as the Yellow Pages or YP, is the name of the net-
- work information name service in common use in networks on which Sun
- and other vendors' network nodes reside. The most recent version of NIS
- is version 2.
+ work information name service originally developed by Sun Microsystems.
+ The most recent version of NIS is version 2. NIS was commonly used with
+ SunOS, Solaris, and other UNIX workstations, but has been supplanted in
+ recent years by the LDAP name service. All components of NIS, including
+ clients, servers, tools, and programming interfaces might not be avail-
+ able in a future update of Oracle Solaris. NIS users should migrate to
+ the LDAP naming service.
All commands and functions that use NIS version 2 are prefixed by the
letters yp as in ypmatch(1), ypcat(1), yp_match(3C), and yp_first(3C).
- The NIS+ name service is no longer shipped with the Solaris operating
- system. Tools to aid the migration from NIS+ to LDAP are available in
- the current Solaris release.
+ The NIS+ name service is no longer shipped with the Oracle Solaris
+ operating system. Tools to aid the migration from NIS+ to LDAP are
+ available in the current Solaris release.
+SEE ALSO
+ ypcat(1), ypmatch(1), ypwhich(1), ypclnt(3C), ypfiles(5), ldap(7),
+ ypbind(8), ypinit(8), ypmake(8), ypmap2src(8), ypserv(8), ypxfrd(8)
-Oracle Solaris 11.4 9 Dec 2009 nis(7)
+
+Oracle Solaris 11.4 2 Feb 2021 nis(7)
diff -Nurwb 11.4.30/man7/pam_krb5.7 11.4.33/man7/pam_krb5.7
--- 11.4.30/man7/pam_krb5.7 2021-05-19 16:10:29.389052901 +0000
+++ 11.4.33/man7/pam_krb5.7 2021-05-19 16:11:42.098591062 +0000
@@ -250,6 +250,11 @@
and certificate.
+ Local policy for password strength enforced by pam_authtok_check(7) is
+ bypassed, because kerberos passwords follow policy set by KDC (a.k.a.
+ remote server policy). See examples section for more details.
+
+
The following flags can be passed to pam_sm_chauthtok(3PAM):
PAM_CHANGE_EXPIRED_AUTHTOK
@@ -444,6 +449,17 @@
+
+ Also note there might be users with both credentials in such mixed
+ environment. For example user maria can have both passwords (local and
+ kerberos) set. In such case PAM policy attempts to authenticate the
+ user using kerberos. If kerberos fails,then PAM uses the same creden-
+ tial the user has entered and retries with local password database
+ using pam_unix_auth pam_unix_auth(7). The same principle applies to
+ password change, PAM attempts to change kerberos password first, if it
+ fails, then it tries to update local password.
+
+
Example 2 Authenticating Users Through Kerberos Only Using Password-
based Authentication
@@ -599,6 +615,15 @@
when changing their password with the passwd command.
+
+ Unlike krb5_first, user is always authenticated using local password.
+ The PAM stack then uses the same password to obtain a kerberos tgt
+ ticket so user does not need to do explicit kint(1)after obtaining a
+ login shell. The same principle applies to password change. passwd(1)
+ changes local password first, if it is successful it tries to change
+ kerberos password.
+
+
Example 4 Authenticating Users Through Kerberos PKINIT as First Choice
diff -Nurwb 11.4.30/man7/privileges.7 11.4.33/man7/privileges.7
--- 11.4.30/man7/privileges.7 2021-05-19 16:10:29.395822572 +0000
+++ 11.4.33/man7/privileges.7 2021-05-19 16:11:42.110891499 +0000
@@ -312,8 +312,10 @@
Allow a process to bind to a privileged port number. The privileged
port numbers are 1-1023 (the traditional UNIX privileged ports) as
- well as those ports marked as "udp/tcp_extra_priv_ports" with the
- exception of the ports reserved for use by NFS and SMB.
+ well as those ports marked as "extra-priv-ports" by ipadm(8), with
+ the exception of the ports reserved for use by NFS and SMB, which
+ are controlled via the PRIV_SYS_NFS and PRIV_SYS_SMB privileges
+ instead.
PRIV_NET_RAWACCESS
@@ -1035,8 +1037,8 @@
chmod(2), chown(2), chroot(2), creat(2), exec(2), fcntl(2), fork(2),
fpathconf(2), getacct(2), getpflags(2), getppriv(2), getsid(2),
kill(2), link(2), memcntl(2), mknod(2), mount(2), msgctl(2), nice(2),
- ntp_adjtime(2), open(2), p_online(2), priocntl(2), priocntlset(2), pro-
- cessor_bind(2), pset_bind(2), pset_create(2), readlink(2),
+ ntp_adjtime(2), open(2), p_online(2), priocntl(2), priocntlset(2),
+ processor_bind(2), pset_bind(2), pset_create(2), readlink(2),
resolvepath(2), rmdir(2), semctl(2), setegid(2), seteuid(2), setgid(2),
setgroups(2), setpflags(2), setppriv(2), setrctl(2), setregid(2),
setreuid(2), setrlimit(2), settaskid(2), setuid(2), shmctl(2),
@@ -1045,11 +1047,11 @@
unlink(2), utime(2), utimes(2), bind(3C), door_ucred(3C),
priv_addset(3C), priv_getbyname(3C), priv_getbynum(3C), priv_set(3C),
priv_set_to_str(3C), priv_str_to_set(3C), socket(3C), t_bind(3C),
- timer_create(3C), ucred_get(3C), lofs(4FS), exec_attr(5), proc(5), ser-
- vices(5), system(5), user_attr(5), add_drv(8), ifconfig(8), lockd(8),
- nfsd(8), rem_drv(8), smbd(8), tncfg(8), update_drv(8), ddi_cred(9F),
- drv_priv(9F), priv_getbyname(9F), priv_policy(9F), priv_pol-
- icy_choice(9F), priv_policy_only(9F)
+ timer_create(3C), ucred_get(3C), lofs(4FS), exec_attr(5), proc(5),
+ services(5), system(5), user_attr(5), add_drv(8), ifconfig(8),
+ lockd(8), nfsd(8), rem_drv(8), smbd(8), tncfg(8), update_drv(8),
+ ddi_cred(9F), drv_priv(9F), priv_getbyname(9F), priv_policy(9F),
+ priv_policy_choice(9F), priv_policy_only(9F)
About Privileges in Developer's Guide to Oracle Solaris 11.4 Security
@@ -1066,4 +1068,4 @@
-Oracle Solaris 11.4 10 Aug 2020 privileges(7)
+Oracle Solaris 11.4 2 Feb 2021 privileges(7)
diff -Nurwb 11.4.30/man7/ssid-metadata.7 11.4.33/man7/ssid-metadata.7
--- 11.4.30/man7/ssid-metadata.7 2021-05-19 16:10:29.409738139 +0000
+++ 11.4.33/man7/ssid-metadata.7 2021-05-19 16:11:42.118067838 +0000
@@ -279,7 +279,7 @@
{
"$schema": "//:threshold",
- "copyright": "Copyright (c) 2019, Oracle and/or its affiliates. All rights reserved.",
+ "copyright": "Copyright (c) 2020, Oracle and/or its affiliates.",
"description": "List of SSID and threshold mappings for sstore daemon",
"id": "threshold-sstore",
"query-interval": 10,
@@ -371,6 +371,10 @@
that is called with a literal argument of {}
+ B() Name of the zone specified by the fsid/zoneid tuple in the argu-
+ ment
+
+
C() Disk controller for the disk device in the argument
@@ -381,7 +385,7 @@
E() Mountpoint of the NFS device number in the argument
- F() File system type of the fsid in the argument
+ F() File system type of the fsid/zoneid tuple in the argument
G() Media type of the network device in the argument
@@ -396,7 +400,7 @@
L() Type of network link contained in the argument
- M() Mountpoint corresponding to the fsid in the argument
+ M() Mountpoint corresponding to the fsid/zoneid tuple in the argument
N() Name of the upper link for the network link in the argument
@@ -430,7 +434,8 @@
W() Network link name for the physical device in the argument
- X() Name of the ZFS pool corresponding to the fsid in the argument
+ X() Name of the ZFS pool corresponding to the fsid/zoneid tuple in the
+ argument
Y() Name of the ZFS pool the given mountpoint belongs to
@@ -869,8 +874,7 @@
{
"$schema": "//:provider-mapping",
- "copyright": "Copyright (c) 2015, Oracle and/or its affiliates. All rights
- reserved.",
+ "copyright": "Copyright (c) 2020, Oracle and/or its affiliates.",
"description": "construct cpu fmri from a cpu resource ssid for the event provider",
"id": "//:class.cpu//:provider-mapping.event",
"transforms": [
@@ -899,4 +903,4 @@
-Oracle Solaris 11.4 13 Nov 2020 ssid-metadata(7)
+Oracle Solaris 11.4 16 Dec 2020 ssid-metadata(7)
diff -Nurwb 11.4.30/man8/archiveadm.8 11.4.33/man8/archiveadm.8
--- 11.4.30/man8/archiveadm.8 2021-05-19 16:10:29.436112935 +0000
+++ 11.4.33/man8/archiveadm.8 2021-05-19 16:11:42.123982481 +0000
@@ -169,6 +169,10 @@
a writable directory. The create command requires the user to have
solaris.user.manage authorization.
+ If you run the archiveadm create command in a solaris branded zone,
+ ensure that pcfs is included as part of the fs-allowed property
+ value in the zone configuration.
+
Without options, create will build an archive of the system where
the command is invoked. If the system is a global zone, all virtual
systems on the host are included. The archive consists of the
@@ -885,4 +889,4 @@
-Oracle Solaris 11.4 22 Apr 2020 archiveadm(8)
+Oracle Solaris 11.4 20 Jan 2021 archiveadm(8)
diff -Nurwb 11.4.30/man8/cpustat.8 11.4.33/man8/cpustat.8
--- 11.4.30/man8/cpustat.8 2021-05-19 16:10:29.449094270 +0000
+++ 11.4.33/man8/cpustat.8 2021-05-19 16:11:42.132863353 +0000
@@ -450,4 +450,4 @@
-Oracle Solaris 11.4 03 Feb 2017 cpustat(8)
+Oracle Solaris 11.4 11 Feb 2021 cpustat(8)
diff -Nurwb 11.4.30/man8/dumpadm.8 11.4.33/man8/dumpadm.8
--- 11.4.30/man8/dumpadm.8 2021-05-19 16:10:29.457371398 +0000
+++ 11.4.33/man8/dumpadm.8 2021-05-19 16:11:42.137269884 +0000
@@ -8,18 +8,19 @@
SYNOPSIS
/usr/sbin/dumpadm [-enpuy] [-c content-spec] [-d dump-device]
[-m mink | minm | min%] [-s savecore-dir]
- [-r root-dir] [-z on | off]
+ [-r root-dir] [-z on | off] [-D on | off]
DESCRIPTION
The dumpadm program is an administrative command that manages the con-
figuration of the operating system crash dump facility. A crash dump is
a copy of the physical memory of the computer at the time of a fatal
system error. When a fatal operating system error occurs, a message
- describing the error is printed to the console. The operating system
- then generates a crash dump by preserving the contents of physical mem-
- ory in RAM. If this is not possible, the contents of physical memory
- are written to a predetermined dump device, which can be a ZFS ZVOL, or
- a local disk partition.
+ describing the error is printed to the console. If deferred dumping is
+ enabled (on), the operating system then generates a crash dump by pre-
+ serving the contents of physical memory in RAM. If this is not possi-
+ ble, or if deferred dumping is disabled (off), the contents of physical
+ memory are written to a predetermined dump device, which can be a ZFS
+ ZVOL, or a local disk partition.
Once the crash dump has been preserved, the system will reboot.
@@ -55,6 +56,7 @@
Savecore directory: /var/crash
Savecore enabled: yes
Save compressed: on
+ Deferred Dump: on
@@ -169,6 +171,18 @@
+ -D on | off
+
+ Modify the dump configuration to control whether dumping is
+ deferred or not. The options are on, to preserve the crash dump in
+ system memory if possible, and off, to write the crash dump to the
+ dump device as part of the panic process. After the system reboots,
+ savecore will find the crash dump in either system memory or on the
+ dump device, and copy it to the savecore directory at that time.
+ The default is on, because in most cases that will reduce the over-
+ all downtime of the system.
+
+
-e
Print estimate of disk space required for storing compressed crash
@@ -215,12 +229,9 @@
-n
Modify the dump configuration to not run savecore automatically on
- reboot. This is not the recommended system configuration. The sys-
- tem will attempt to preserve a crash dump image in memory. If
- dumpadm -n is set, then the crash dump image is written to the
- dump device after the system is rebooted. savecore(8) can then be
- run manually once the system has booted up to extract the crash
- dump to the savecore directory.
+ reboot. This is not the recommended system configuration.
+ savecore(8) can be run manually once the system has booted up to
+ extract the crash dump to the savecore directory.
If the dump device is a swap partition, the dump data may be over-
written as the system begins to use the swap device. If savecore is
@@ -293,6 +304,7 @@
Savecore directory: /var/crash
Savecore enabled: yes
Save compressed: on
+ Deferred Dump: on
@@ -309,6 +321,7 @@
Savecore directory: /var/crash
Savecore enabled: yes
Save compressed: on
+ Deferred Dump: on
Example 3 Preserving crash dump if savecore is disabled
@@ -326,8 +339,9 @@
Dump content: kernel with ZFS metadata
Dump device: /dev/zvol/dsk/rpool/dump (dedicated)
Savecore directory: /var/crash
- Savecore enabled: yes
+ Savecore enabled: no
Save compressed: on
+ Deferred Dump: on
@@ -462,4 +476,4 @@
-Oracle Solaris 11.4 31 Jan 2018 dumpadm(8)
+Oracle Solaris 11.4 4 Oct 2020 dumpadm(8)
diff -Nurwb 11.4.30/man8/gssd.8 11.4.33/man8/gssd.8
--- 11.4.30/man8/gssd.8 2021-05-19 16:10:29.461161487 +0000
+++ 11.4.33/man8/gssd.8 2021-05-19 16:11:42.140015569 +0000
@@ -16,6 +16,15 @@
default, all groups that the requested user belongs to will be included
in the grouplist credential.
+
+ The SMF service svc:/network/rcp/gss:default is enabled by default.
+
+SMF PROPERTIES
+ config/ccache_patterns List of additional credential cache patterns
+ to search. See the paraameter expansion sec-
+ tion of krb5.conf(5).
+
+
EXIT STATUS
The following exit values are returned:
@@ -67,4 +76,4 @@
-Oracle Solaris 11.4 01 Jun 2020 gssd(8)
+Oracle Solaris 11.4 21 Jan 2021 gssd(8)
diff -Nurwb 11.4.30/man8/iostat.8 11.4.33/man8/iostat.8
--- 11.4.30/man8/iostat.8 2021-05-19 16:10:29.477025832 +0000
+++ 11.4.33/man8/iostat.8 2021-05-19 16:11:42.148570260 +0000
@@ -6,7 +6,7 @@
iostat - report I/O statistics
SYNOPSIS
- /usr/bin/iostat [-cCdDeEiILmMnpPrstxXYuz] [-l n] [-T u | d]
+ /usr/bin/iostat [-cCdDeEiILmMnpPrstwxXYuz] [-l n] [-T u | d]
[disk]... [interval [count]]
DESCRIPTION
@@ -235,6 +235,16 @@
date format. See date(1).
+ -w Wide display format.
+
+ Using this option along with either of the options -x, -X,
+ -Y or their combinations will display the output in wider
+ format. The headers will be more descriptive and two space
+ gap is provided between each column in this display.
+
+ Refer the Example section for sample outputs.
+
+
-X For disks under scsi_vhci(4D) control, in addition to disk
lun statistics, also report statistics for lun.controller.
@@ -448,6 +458,46 @@
+ Example 7 iostat wide display sample-1
+
+
+
+ example% iostat -xw sd1
+ extended device statistics
+ Device Reads/s Writes/s Read KB/s Written KB/s WaitQ SvcQ AvSvcTimeInWaitQ AvSvcTimeActTrans %Wait %Busy
+ sd1 0.7 33.0 19.6 239.6 0.0 0.0 0.0 0.2 0 0
+
+
+
+
+ Example 8 iostat wide display sample-2
+
+
+
+ example% iostat -Yw sd1
+ extended device statistics
+ Device Reads/s Writes/s Read KB/s Written KB/s WaitQ SvcQ AvSvcTimeInWaitQ AvSvcTimeActTrans %Wait %Busy
+ sd1 0.7 33.0 19.6 239.8 0.0 0.0 0.0 0.2 0 0
+ sd1.t9 0.7 33.0 40.4 263.2 0.0 0.0 0.0 0.2 0 0
+ sd1.t9.lmrc1 0.7 33.0 40.4 263.2 0.0 0.0 0.0 0.2 0 0
+
+
+
+
+ Example 9 iostat wide display sample-3
+
+
+
+ example% iostat -IxnwCX sd1
+ extended device statistics
+ Reads/i Writes/i Read KB/i Written KB/i WaitQ SvcQ AvSvcTimeInWaitQ AvSvcTimeActTrans %Wait %Busy Device
+ 37124.0 1911845.0 1116521.1 13937283.0 0.0 0.0 0.0 0.2 0 0 c0
+ 37124.0 1911845.0 1116521.1 13937283.0 0.0 0.0 0.0 0.2 0 0 c0t1d0
+ 38413.0 1911778.0 2302469.1 15273619.0 0.0 0.0 0.0 0.2 0 0 c0t1d0.c1
+
+
+
+
ATTRIBUTES
See attributes(7) for descriptions of the following attributes:
@@ -493,4 +543,4 @@
-Oracle Solaris 11.4 29 Aug 2019 iostat(8)
+Oracle Solaris 11.4 04 Jan 2021 iostat(8)
diff -Nurwb 11.4.30/man8/kmipcfg.8 11.4.33/man8/kmipcfg.8
--- 11.4.30/man8/kmipcfg.8 2021-05-19 16:10:29.482852239 +0000
+++ 11.4.33/man8/kmipcfg.8 2021-05-19 16:11:42.154044387 +0000
@@ -6,7 +6,7 @@
kmipcfg - configure the PKCS#11 KMIP provider
SYNOPSIS
- kmipcfg create [-i] <-o property=value> ... <server_group>
+ kmipcfg create [-i] -o property=value ... server_group
kmipcfg destroy [-f] [server_group]
@@ -18,24 +18,27 @@
kmipcfg enable [-f] [server_group]
- kmipcfg extract [-p <filename>] [-s][-t <all|pkcs11|libkmip>] <server_group>
+ kmipcfg extract [-p filename] [-s][-t all|pkcs11|libkmip] server_group
- kmipcfg extract [-p <filename>] [-s] [-i] [-t <all|pkcs11|libkmip>]
- [-S <service_instance_fmri> [-N <property_group_name>]
- [-T <property_group_type>] [-o cred_source_type=<raw|path>]
- [[[-o private_key=<path> -o cert=<path> [-o ca_cert=<path>]] |
- [-o p12_bundle=<path>] [-o p12_bundle_pass=<locator>]]
- [-o property=<value> [-o property=<value>[...]]]
+ kmipcfg extract [-p filename] [-s] [-i] [-t all|pkcs11|libkmip]
+ [{-S service_instance_fmri [-N property_group_name]
+ [-T property_group_type] [-o cred_source_type=raw|path]
+ [{ -o private_key=path -o cert=path [-o ca_cert=path]} |
+ {-o p12_bundle=path -o p12_bundle_pass=locator}]
+ [-o property=value] ...}]
kmipcfg help [subcommand]
- kmipcfg list [-c] [-s] [-H [-v]] [-o <property>] [server_group]
+ kmipcfg info [-n] [-H [-v]] [-o property[,property,...]] [server_group]
- kmipcfg set [-f ] <-o property=value> ... <server_group>
+ kmipcfg list [-c] [-s] [-H [-v]] [-o property[,property,...]] [server_group]
+
+
+ kmipcfg set [-f] -o property=value ... server_group
DESCRIPTION
The kmipcfg command is used to initialize and manage states of the
@@ -97,8 +100,7 @@
The following subcommands are supported:
- kmipcfg create [-i] <-o property=value> ...
- <server_group>
+ kmipcfg create [-i] -o property=value ... server_group
Creates a new server_group (KMIP token). A directory in the path
KMIPTOKEN_DIR/<server_group> is created and populated with the KMIP
@@ -115,13 +117,13 @@
erty=value pairs. The following properties can be set:
- state=enabled | disabled
+ token_state=enabled | disabled
The optional state of the server group. If not specified, the
state is set to enabled.
- server_list=<ip_address|host_name>[:<port_number],..
+ server_list=ip_address|host_name[:port_number][,...]
The mandatory, coma-delimited list of IP addresses or host
names of the KMIP servers. If an IPv6 address and port are
@@ -130,7 +132,7 @@
5696 is used.
- connection_timeout=<connection_timeout>
+ connection_timeout=connection_timeout
The optional number of seconds after which connection to the
KMIP server times out. Default connection timeout is 5 seconds.
@@ -142,7 +144,7 @@
KMIP protocol. The only supported value is TTLV.
- failover_limit=<allowed_number_of_failovers>
+ failover_limit=allowed_number_of_failovers
The optional upper boundary of allowed failovers between KMIP
servers defined in server_list. If failover_limit is not speci-
@@ -150,21 +152,21 @@
failover_limit is set to -1, the failover will be disabled.
- client_keystore=<path_to_the_keystore>
+ client_keystore=path_to_the_keystore
The optional path to the KMIP token directory. The default
value of the property is the concatenated string $KMIPTO-
- KEN_DIR/<server_group>.
+ KEN_DIR/server_group.
- p12_bundle=<path_to_pkcs#12_bundle>
+ p12_bundle=path_to_pkcs#12_bundle
The mandatory path to the PKCS#12 bundle. If a relative path is
specified, the path will be resolved relatively to the
client_keystore directory.
- cache_ttl=<object_cache_entry_time_to_live_seconds>
+ cache_ttl=object_cache_entry_time_to_live_seconds
The Time-To-Live value of the pkcs11_kmip(7) object cache
entries. The cache_ttl defaults to 300 seconds.
@@ -190,9 +192,9 @@
- secondary_authentication=none | username-pass-
- word, <username-password-parameters> |
- device, <device-parameters>
+ secondary_authentication=none | username-password,
+ username-password-parameters |
+ device,device-parameters
The optional type of the secondary authentication. If none is
specified, no secondary authentication parameters will be con-
@@ -219,20 +221,21 @@
prompt Command prompts for the password.
- file://<filename> Passphrase file location in a file sys-
- tem.
+ file://filename Passphrase file location in a file system.
- https://<location> The pass phrase file location on a secure
- server. The GET on the URL returns only
- the password string. The certificate pre-
- sented by the server must be the one
- trusted by libcurl and OpenSSL.
+ https://location The passphrase file location on a secure
+ server. The GET on the URL returns only the
+ password string. The certificate presented
+ by the server must be the one trusted by
+ libcurl and OpenSSL.
Secondary authentication defaults to none.
+
+
token_state=enabled | disabled
Enables or disables the respective PKCS#11 token.
@@ -276,7 +279,7 @@
This command is equivalent to kmipcfg set -o
- state=disabled.
+ token_state=disabled.
@@ -299,13 +302,12 @@
This command is equivalent to kmipcfg set -o
- state=enabled.
+ token_state=enabled.
- kmipcfg extract [-p <filename>] [-s] [-t <all |
- pkcs11libkmip>] <server_group>
+ kmipcfg extract [-p filename] [-s] [-t all|pkcs11|libkmip] server_group
Generates an SMF profile based on the existing server group config-
uration. The SMF profile is usable in a variety of installation and
@@ -314,46 +316,40 @@
pages.
- -p <filename>
-
- The extracted profile will be stored in <filename>. If the
- extract subcommand is executed without specifying the -p
- option, the generated profile is printed out to the standard
- output.
-
- The SMF profiles must have the .xml extension.
+ -p filename The extracted profile will be stored in
+ filename. If the extract subcommand is
+ executed without specifying the -p option,
+ the generated profile is printed out to
+ the standard output.
+ The SMF profiles must have the .xml exten-
+ sion.
- -s
- This option extracts sensitive information. For example,
- encoded certificates, and PKCS#12 bundle pin.
+ -s This option extracts sensitive informa-
+ tion. For example, encoded certificates,
+ and PKCS#12 bundle pin.
- -t <all | pkcs11 | libkmip>
+ -t all|pkcs11|libkmip Extracts profile for the svc:/sys-
+ tem/pkcs11:kmip service instance (pkcs11),
+ svc:/system/kmip/client:default service
+ instance (libkmip), or both of them (all).
+ By default all profiles are extracted.
- Extracts profile for the svc:/system/pkcs11:kmip service
- instance (pkcs11), svc:/system/kmip/client:default service
- instance (libkmip), or both of them (all). By default all pro-
- files are extracted.
+ server_group Existing server group whose configuration
+ is used in the extracted AI profile.
- <server_group>
- Existing server group whose configuration is used in the
- extracted AI profile.
-
-
- kmipcfg extract [-p <filename>] [-s] [-i] [-t
- <all | pkcs11 | libkmip>] [-S <ser-
- vice_instance_fmri> [-N <property_group_name>] [-T
- <property_group_type>] [-o cred_source_type=<raw |
- path>] [[[-o private_key=<path> -o cert=<path> [-o
- ca_cert=<path>]] | [-o p12_bundle=<path>] [-o
- p12_bundle_pass=<locator>]] [-o property=<value>
- [-o property=<value>[...]]]
+ kmipcfg extract [-p filename] [-s] [-i] [-t all|pkcs11|libkmip]
+ [{-S service_instance_fmri [-N property_group_name]
+ [-T property_group_type] [-o cred_source_type=raw | path]
+ {-o private_key=path -o cert=path [-o ca_cert=path]} |
+ [{-o p12_bundle=path -o p12_bundle_pass=locator}]
+ [-o property=value] ...}]
Generates an SMF profile, based on the parameters provided in the
option arguments.
@@ -365,13 +361,13 @@
Asks interactively for the configuration properties.
- -N <property_group_name>
+ -N property_group_name
If not specified, the default property group name,
kmip_client_default, is used.
- -T <property_group_type>
+ -T property_group_type
If not specified, the default property group type,
kmip_client_config, is used.
@@ -386,7 +382,7 @@
values (raw). If not specified, the option defaults to raw.
- -o private_key=<path>
+ -o private_key=path
Path to the private key of the client.
@@ -394,7 +390,7 @@
atively to the client_keystore directory.
- -o cert=<path>
+ -o cert=path
Path to the certificate of the client.
@@ -402,7 +398,7 @@
atively to the client_keystore directory.
- -o ca_cert=<path>
+ -o ca_cert=path
If not set, the certificate of the server will be verified
using the CA certificate bundled with the operating system. If
@@ -416,7 +412,7 @@
atively to the client_keystore directory.
- -o p12_bundle=<path>
+ -o p12_bundle=path
If specified, the provided PKCS#12 bundle should contain the
client key, the client certificate, and the CA certificate.
@@ -425,7 +421,7 @@
atively to the client_keystore directory.
- -o p12_bundle_pass=<locator>
+ -o p12_bundle_pass=locator
Locator points to the source of the PKCS#12 bundle passphrase.
For locator details, see the description of password in the
@@ -433,7 +429,7 @@
command.
- -o property=<value>
+ -o property=value
This option sets the remaining server group specific properties
specified in the kmipcfg create command.
@@ -442,13 +438,43 @@
For the remaining options, see the kmipcfg extract section.
+
+
+
+
+
kmipcfg help [subcommand]
Prints the help for all the subcommands, or a specified subcommand.
- kmipcfg list [-c] [-s] [-o property[,prop-
- erty,..]] [server_group]
+ kmipcfg info [-n] [-H [-v]] [-o property[,property,...]] [server_group]
+
+ Connect to the server_group and show supported versions and its
+ capabilities.
+
+
+ -n Show numeric values for supported operations and objects
+ instead of names.
+
+
+ -H Lists configuration in parsable form using a semicolon as a
+ delimiter.
+
+
+ -v This option prints a header line with the respective property
+ names, along with the output provided by the -H option (val-
+ ues).
+
+
+ -o Lists a specific configuration parameter. Use comma to
+ delimit multiple parameters.
+
+
+
+
+ kmipcfg list [-c] [-s] [-H [-v]] [-o property[,property,...]]
+ [server_group]
Lists parameters configured using kmipcfg create command. If
server_group is specified, only configuration parameters of the-
@@ -483,8 +509,7 @@
- kmipcfg set [-f] <-o property=value> ...
- <server_group>
+ kmipcfg set [-f] -o property=value ... server_group
Sets configuration parameters of the server_group. For a list of
the configuration parameters refer to the kmipcfg create command.
@@ -752,6 +777,36 @@
+ Example 10 Get information about server capabilities.
+
+
+
+ Following example shows configured server capabilities.
+
+
+ Note -
+
+
+
+ This shows server capablities, not client.
+
+
+
+
+ # kmipcfg info kmip_vbox
+ Server group: kmip_vbox
+ Enter PIN for kmip_vbox:
+ Supported versions: 1.4, 1.3, 1.2, 1.1, 1.0
+ Server info: Gemalto, Inc.
+ Operations: Create, Create Keypair, Register, Locate, Get,
+ Get Attributes, Get Attribute List, Add Attribute, Modify
+ Attribute, Delete Attribute, Activate, Revoke, Destroy, Query,
+ Rekey, Rekey Keypair, Check, Discover Versions
+ Object types: Symmetric Key, Public Key, Private Key, Secret Data,
+ Opaque
+
+
+
ATTRIBUTES
See attributes(7) for descriptions of the following attributes:
@@ -781,4 +836,4 @@
-Oracle Solaris 11.4 02 Aug 2017 kmipcfg(8)
+Oracle Solaris 11.4 26 Nov 2020 kmipcfg(8)
diff -Nurwb 11.4.30/man8/ldmd.8 11.4.33/man8/ldmd.8
--- 11.4.30/man8/ldmd.8 2021-05-19 16:10:29.487284673 +0000
+++ 11.4.33/man8/ldmd.8 2021-05-19 16:11:42.164436641 +0000
@@ -330,6 +330,13 @@
indicates whether Oracle VM Manager is in use.
+ ldmd/migration_mem_iterations
+
+ Controls the number of passes made on the source machine to copy
+ memory to the target machine during a migration. The default value
+ is 3. Allowable values range from 2 through 20.
+
+
ldmd/pm_enabled
Enables or disables Power Management (PM) at ldmd startup. The
@@ -432,4 +439,4 @@
-Oracle Solaris 11.4 25 Nov 2020 ldmd(8)
+Oracle Solaris 11.4 07 Jan 2021 ldmd(8)
diff -Nurwb 11.4.30/man8/mount_smbfs.8 11.4.33/man8/mount_smbfs.8
--- 11.4.30/man8/mount_smbfs.8 2021-05-19 16:10:29.502640149 +0000
+++ 11.4.33/man8/mount_smbfs.8 2021-05-19 16:11:42.168405525 +0000
@@ -200,8 +200,8 @@
uid=userid
- Assigns the specified user ID files. The default value is the
- owner ID of the directory where the volume is mounted.
+ Assigns the specified user ID to files. The default value is
+ the owner ID of the directory where the volume is mounted.
user=value
@@ -415,4 +415,4 @@
-Oracle Solaris 11.4 23 Jul 2012 mount_smbfs(8)
+Oracle Solaris 11.4 22 Feb 2021 mount_smbfs(8)
diff -Nurwb 11.4.30/man8/nscd.8 11.4.33/man8/nscd.8
--- 11.4.30/man8/nscd.8 2021-05-19 16:10:29.506293377 +0000
+++ 11.4.33/man8/nscd.8 2021-05-19 16:11:42.171785120 +0000
@@ -6,23 +6,25 @@
nscd - name service cache daemon
SYNOPSIS
- /usr/sbin/nscd [-f configuration-file] [-g] [-e cachename, yes
- | no] [-i cachename] [-C component(s)] [-D debuglevel] [-L log file]
+ /usr/sbin/nscd [-f configuration-file] [-g] [-e cachename,yes|no]
+ [-i cachename] [-C component(s)] [-D debuglevel] [-L log file]
DESCRIPTION
The nscd daemon is a process that provides a cache for most name ser-
- vice requests. The service properties of the svc:/system/name-ser-
- vice/cache SMF service determine the behavior of the cache daemon. See
- nscd.conf(5).
+ vice requests.
- nscd provides caching for the passwd(5), group(5), hosts(5), ipn-
- odes(5), exec_attr(5), prof_attr(5), user_attr(5), ethers(5), rpc(5),
- protocols(5), networks(5), bootparams(5), auth_attr(5), services(5),
- netmasks(5), project(5) databases through standard libc interfaces,
- such as gethostbyname(3C), getipnodebyname(3C), gethostbyaddr(3C), and
- others. The shadow file is specifically not cached. getspnam(3C) calls
- remain uncached as a result.
+ The service properties of the svc:/system/name-service/cache SMF ser-
+ vice determine the behavior of the cache daemon. See nscd.conf(5).
+
+
+ nscd provides caching for the passwd(5), group(5), hosts(5),
+ ipnodes(5), exec_attr(5), prof_attr(5), user_attr(5), ethers(5),
+ rpc(5), protocols(5), networks(5), bootparams(5), auth_attr(5),
+ services(5), netmasks(5), and project(5) databases through standard
+ libc interfaces, such as getaddrinfo(3C), getnameinfo(3C),
+ getpwnam(3C), and others. The shadow file is specifically not cached.
+ getspnam(3C) calls remain uncached as a result.
Each cache has a separate time-to-live for its data. By default, modi-
@@ -47,9 +49,6 @@
- See nscd.conf(5).
-
-
nscd also acts as its own administration tool. If an instance of nscd
is already running, commands are passed to the running version trans-
parently.
@@ -69,31 +68,31 @@
expires.
- The maximum number of per-user nscds that can be created by the main
- nscd is configurable (see nscd.conf(5)). After the maximum number of
- them are created, the main nscd will use an LRU algorithm to terminate
- less active child nscds as needed.
+ The maximum number of per-user nscd processes that can be created by
+ the main nscd is configurable (see nscd.conf(5)). After the maximum
+ number of them are created, the main nscd will use an LRU algorithm to
+ terminate less active child nscd processes as needed.
- The main nscd daemon creates, monitors, and manages all the child
- nscds. It creates a user's own nscd upon receiving the user's first
+ The main nscd daemon creates, monitors, and manages all the child nscd
+ processes. It creates a user's own nscd upon receiving the user's first
per-user lookup. When the nscd daemon is started, if per-user lookups
are enabled, it checks to ensure all conditions are met before getting
ready to create a per-user nscd. When the daemon is stopped, it termi-
- nates all the per-user nscds under its control.
+ nates all the per-user nscd processes under its control.
- Per-user nscds use the same configuration as the main nscd. They read
- and use the same default configuration file or the one specified with
- the -f command line option. Once the configuration is read, the per-
- user nscd will use it for its entire lifetime.
+ Per-user nscd processes use the same configuration as the main nscd.
+ They read and use the same default configuration file or the one speci-
+ fied with the -f command line option. Once the configuration is read,
+ the per-user nscd will use it for its entire lifetime.
OPTIONS
Several of the options described below require a cachename specifica-
- tion. Supported values for cachename are: passwd, group, hosts, ipn-
- odes, exec_attr, prof_attr, user_attr, ethers, rpc, protocols, net-
- works, bootparams, auth_attr, services, netmasks, printers, and
- project.
+ tion. Supported values for cachename are: passwd, group, hosts,
+ ipnodes, exec_attr, prof_attr, user_attr, ethers, rpc, protocols,
+ networks, bootparams, auth_attr, services, netmasks, project,
+ automount, tnrhtp, and tnrhdb.
-f configuration-file
@@ -140,8 +139,6 @@
Example 1 Stopping and Restarting the nscd Daemon.
-
-
example# svcadm disable system/name-service/cache
example# svcadm enable system/name-service/cache
@@ -163,11 +160,12 @@
+-----------------------------+-----------------------------+
SEE ALSO
- svcs(1), gethostbyname(3C), getipnodebyname(3C), getspnam(3C),
+ svcs(1), getaddrinfo(3C), getnameinfo(3C), getpwnam(3C), getspnam(3C),
auth_attr(5), bootparams(5), ethers(5), exec_attr(5), group(5),
hosts(5), netmasks(5), networks(5), nscd.conf(5), nsswitch.conf(5),
passwd(5), prof_attr(5), project(5), protocols(5), resolv.conf(5),
- rpc(5), services(5), user_attr(5), attributes(7), svcadm(8), ypbind(8)
+ rpc(5), services(5), user_attr(5), attributes(7), getent(8), svcadm(8),
+ svccfg(8), ypbind(8)
NOTES
The output from the -g option to nscd is subject to change. Do not rely
@@ -194,4 +192,4 @@
-Oracle Solaris 11.4 15 Aug 2011 nscd(8)
+Oracle Solaris 11.4 2 Feb 2021 nscd(8)
diff -Nurwb 11.4.30/man8/prtconf.8 11.4.33/man8/prtconf.8
--- 11.4.30/man8/prtconf.8 2021-05-19 16:10:29.520012377 +0000
+++ 11.4.33/man8/prtconf.8 2021-05-19 16:11:42.186665719 +0000
@@ -6,7 +6,7 @@
prtconf - print system configuration
SYNOPSIS
- /usr/sbin/prtconf [-V] | [-F] | | [-bpv] | [-acdDlPuv]
+ /usr/sbin/prtconf [-V] | [-F] | | [-bpv] | [-acdDlPuUv]
[dev_path]
DESCRIPTION
@@ -73,6 +73,9 @@
properties from the vendor and admin lists, if any.
+ -U Provides device usage information.
+
+
-v Specifies verbose mode.
diff -Nurwb 11.4.30/man8/rad.8 11.4.33/man8/rad.8
--- 11.4.30/man8/rad.8 2021-05-19 16:10:29.524689928 +0000
+++ 11.4.33/man8/rad.8 2021-05-19 16:11:42.202992642 +0000
@@ -86,6 +86,8 @@
transport[:option[=value][,option2[=value2]]...]
+ Multi-value options like addr use pipe ('|') delimited values.
+
-s
@@ -256,6 +258,13 @@
with PAM" section below.
+ addr A list of one or multiple IP address(es) in a string
+ form to bind to and listen on for connections. If not
+ specified, RAD will listen on the port number on all
+ addresses/interfaces. Hostnames can be specified too in
+ which case they will be resolved first.
+
+
The pipe transport reads from and writes to a specific file descriptor,
@@ -307,6 +316,14 @@
below.
+ addr
+
+ A list of one or multiple IP address(es) in a string form to bind
+ to and listen on for connections. If not specified, RAD will listen
+ on the port number on all addresses/interfaces. Hostnames can be
+ specified too in which case they will be resolved first.
+
+
The tls transport listens for TLS connections on a TCP socket. The tls
transport has the following options:
@@ -322,12 +339,6 @@
An integer. The port to listen on for connections.
- localonly
-
- A boolean. If true, rad will only listen for connections from the
- local machine. Defaults to true.
-
-
certificate
An astring. The location of the PEM-formatted x509 certificate to
@@ -339,6 +350,44 @@
An astring. The location of the PEM-formatted private key to use.
+ allow_client_certificate
+
+ A boolean. Allow the clients to authentication using an x509 client
+ certificate. Defaults to true.
+
+ The certificate must be signed by specific a CA, which defaults to
+ the one specified by client_ca_path. If the certificate contains
+ UID=logname in the Subject and a user with given logname exists,
+ the RAD daemon will authenticate the connection to that user.
+
+
+ require_client_certificate
+
+ A boolean. Requires that all clients must authenticate using an
+ x509 client certificate. Defaults to false.
+
+
+ map_host_certificate_to_root
+
+ A boolean. Allow mapping client x509 certificate to the root user?
+ Defaults to false.
+
+ If the client x509 doesn't have an UID set in the Subject and this
+ option is set to true, then the RAD daemon will check, by way of
+ calling X509_check_host() OpenSSL function, that the network peer
+ host is listed either in Subject CommonName or in Subject Alterna-
+ tive Name. If the check succeeds, the RAD daemon will authenticate
+ the connection as the root user.
+
+
+ client_ca_path
+
+ An astring. Location of the PEM-formatted file with a CA certifi-
+ cate all client x509 certificates must be signed with. If not spec-
+ ified, defaults to certificate/ca/uri property value of the
+ svc:/system/identity:cert SMF instance.
+
+
pam_service
An astring. The pam(3PAM) service name to use when authenticating.
@@ -346,6 +395,14 @@
below.
+ addr
+
+ A list of one or multiple IP address(es) in a string form to bind
+ to and listen on for connections. If not specified, RAD will listen
+ on the port number on all addresses/interfaces. Hostnames can be
+ specified too in which case they will be resolved first.
+
+
The unix transport listens for connections on an AF_UNIX socket. The
unix transport has the following options:
@@ -427,13 +484,13 @@
/etc/pam.d/other.
FILES
- /etc/rad/cert.pem
+ /etc/certs/localhost/host.crt
The location where the remote rad instance (svc:/system/rad:remote)
stores its certificate. This file is readable by all users.
- /etc/rad/key.pem
+ /etc/certs/localhost/host.key
The location where the remote rad instance (svc:/system/rad:remote)
stores its private key.
@@ -525,4 +582,4 @@
-Oracle Solaris 11.4 23 Feb 2018 rad(8)
+Oracle Solaris 11.4 13 Jan 2021 rad(8)
diff -Nurwb 11.4.30/man8/vmstat.8 11.4.33/man8/vmstat.8
--- 11.4.30/man8/vmstat.8 2021-05-19 16:10:29.536932762 +0000
+++ 11.4.33/man8/vmstat.8 2021-05-19 16:11:42.213035652 +0000
@@ -6,7 +6,7 @@
vmstat - report virtual memory statistics
SYNOPSIS
- vmstat [-ipqQsS] [-T u | d] [disks] [interval [count]]
+ vmstat [-ipqQsSw] [-T u | d] [disks] [interval [count]]
DESCRIPTION
vmstat reports virtual memory statistics regarding kernel thread, vir-
@@ -102,6 +102,12 @@
date format. See date(1).
+ -w Wide display format. Headers will be more descriptive and
+ two space gap is provided between each column.
+
+ Refer the examples section for sample outputs
+
+
OPERANDS
The following operands are supported:
@@ -262,6 +268,39 @@
+ Example 2 vmstat wide display sample-1
+
+
+ example% vmstat -w
+ Kernel_Threads Virtual_Memory Paging_Info Disk_Ops/s Faults_per_sec CPU_Usage
+ Run Block Wait Swap(KBs) Free(KBs) Reclaim MinorFault PageIn PageOut Freed Def Scan s0 s1 s2 s3 Intr Syscal CPU_Sw User% Sys% Idle% Time
+ 15 0 0 118713700 56911268 16274 141727 14 0 0 0 0 38 38 33 33 9496 129607 5687 21 8 72 Wed Dec 16 21:59:26 PST 2020
+
+
+
+
+ Example 3 vmstat wide display sample-2
+
+
+ example% vmstat -Sw
+ Kernel_Threads Virtual_Memory Paging_Info Disk_Ops/s Faults_per_sec CPU_Usage
+ Run Block Wait Swap(KBs) Free(KBs) SwapIn SwapOut PageIn PageOut Freed Def Scan s0 s1 s2 s3 Intr Syscal CPU_Sw User% Sys% Idle% Time
+ 15 0 0 118714260 56911844 0 0 14 0 0 0 0 38 38 33 33 9496 129608 5687 21 8 72 Wed Dec 16 21:59:24 PST 2020
+
+
+
+
+ Example 4 vmstat wide display sample-3
+
+
+ example% vmstat -wp
+ Virtual_Memory Paging_Info Executable Anonymous_Pages Filesystem
+ Swap(KBs) Free(KBs) Reclaim MinorFault Freed Def Scan PageIn PageOut PageFree PageIn PageOut PageFree PageIn PageOut PageFree Time
+ 114023436 52311932 17876 156365 0 0 0 0 0 0 3 0 0 10 0 0 Thu Dec 17 03:04:51 PST 2020
+
+
+
+
ATTRIBUTES
See attributes(7) for descriptions of the following attributes:
@@ -292,4 +331,4 @@
-Oracle Solaris 11.4 20 Aug 2019 vmstat(8)
+Oracle Solaris 11.4 04 Jan 2021 vmstat(8)
diff -Nurwb 11.4.30/man8/zfs_encrypt.8 11.4.33/man8/zfs_encrypt.8
--- 11.4.30/man8/zfs_encrypt.8 2021-05-19 16:10:29.550976909 +0000
+++ 11.4.33/man8/zfs_encrypt.8 2021-05-19 16:11:42.227543077 +0000
@@ -19,6 +19,10 @@
passphrase,prompt | file://|pkcs11:|https://] ... dataset
+ zfs create -o encryption=on [-o keysource=hex,cluster:keyname] ...
+ dataset
+
+
zfs clone [-p] [-K] [-o property=value] ... snapshot filesystem|volume
@@ -233,6 +237,14 @@
and acquisition are automatic and have no configuration options.
+ keysource=hex,cluster:keyname
+
+ Can only be used with Solaris Cluster when using ZFS based
+ Encrypted Cluster file systems. The key and associated keyname is
+ stored in Solaris Cluster and the keyname uniquely identifies the
+ key.
+
+
SUBCOMMANDS
All subcommands that modify state are logged persistently to the pool
in their original form.
@@ -841,4 +853,4 @@
-Oracle Solaris 11.4 26 Mar 2020 zfs_encrypt(8)
+Oracle Solaris 11.4 17 Nov 2020 zfs_encrypt(8)
diff -Nurwb 11.4.30/man8/zoneadm.8 11.4.33/man8/zoneadm.8
--- 11.4.30/man8/zoneadm.8 2021-05-19 16:10:29.572361610 +0000
+++ 11.4.33/man8/zoneadm.8 2021-05-19 16:11:42.252184771 +0000
@@ -247,19 +247,19 @@
Use -x with force-zpool-create, with the syntax:
- -x force-zpool-create=zpoolname{,zpoolname,zpoolname,...}
+ -x force-zpool-create=zpoolname[,zpoolname,zpoolname,...]
- ...to limit this option to a specific set of zpool resources.
- To name a rootzpool zpool resource, use rpool. For a zpool
+ ...to limit this option to a specific set of ZFS pool
+ resources. To name a rootzpool resource, use rpool. For a zpool
resource, use the name specified in the corresponding zone con-
fig name property.
To force creation of the root zpool of a kernel zone, use:
- -x force-zpool-create={root-pool-name}
+ -x force-zpool-create=root-pool-name
- where {root-pool-name} is the name of the root zpool in the
+ where root-pool-name is the name of the root zpool in the
source zone. Kernel zones do not support -x force-zpool-create-
all.
@@ -387,21 +387,21 @@
Use -x with force-zpool-create, with the syntax:
- -x force-zpool-create=zpoolname{,zpoolname,zpoolname,...}
+ -x force-zpool-create=zpoolname[,zpoolname,zpoolname,...]
- ...to limit this option to a specific set of zpool resources.
- To name a rootzpool zpool resource, use rpool. For a zpool
+ ...to limit this option to a specific set of ZFS pool
+ resources. To name a rootzpool resource, use rpool. For a zpool
resource, use the name specified in the corresponding zone con-
fig name property.
To force creation of the root zpool of a kernel zone, use:
- -x force-zpool-create={root-pool-name}
+ -x force-zpool-create=root-pool-name
- where {root-pool-name} is the name of the root zpool specified
- in the AI manifest or "rpool" if no AI manifest is provided.
- Kernel zones do not support -x force-zpool-create-all.
+ where root-pool-name is the name of the root zpool specified in
+ the AI manifest or rpool if no AI manifest is provided. Kernel
+ zones do not support -x force-zpool-create-all.
@@ -627,7 +627,7 @@
- zoneadm move [-p {URI} ... -p {URI}] [-x extended-options] new-zonepath
+ zoneadm move [-p URI ... -p URI] [-x extended-options] new-zonepath
Move the zone installation to a new location in the local file sys-
tem or a new ZFS storage pool and/or change current zonepath to
@@ -654,7 +654,7 @@
The following options are supported:
- -p {URI}
+ -p URI
Use the specified storage URI for the new rootzpool resource.
Each storage URI must be specified with a separate -p option.
@@ -688,7 +688,7 @@
rootzpool resource.
- -x create-size={storage-size}
+ -x create-size=storage-size
Specify this option to create any missing storage device(s), if
supported by the storage URI type. A positive number with
@@ -799,10 +799,10 @@
Use -x with force-zpool-destroy, with the syntax:
- -x force-zpool-destroy=zpoolname{,zpoolname,zpoolname,...}
+ -x force-zpool-destroy=zpoolname[,zpoolname,zpoolname,...]
- ...to limit this option to a specific set of zpool resources.
- To name a rootzpool zpool resource, use rpool. For a zpool
+ ...to limit this option to a specific set of ZFS pool
+ resources. To name a rootzpool resource, use rpool. For a zpool
resource, use the name specified in the corresponding zone con-
fig name property.
@@ -852,13 +852,13 @@
Any fs resources have their type value checked. An error is
reported if the value is one of proc, mntfs, autofs, or nfs or
the filesystem does not have an associated mount binary at
- /usr/lib/fs/{fstype}/mount.
+ /usr/lib/fs/fstype/mount.
It is an error for the directory to be a relative path.
It is an error for the path specified by raw to be a relative
path or if there is no fsck binary for a given filesystem type
- at /usr/lib/fs/{fstype}/fsck. It is also an error if a corre-
+ at /usr/lib/fs/fstype/fsck. It is also an error if a corre-
sponding fsck binary exists but a raw path is not specified.
@@ -956,6 +956,10 @@
the ZBE last mounted on the zone's zonepath. This is the
default option.
+ If a ZBE is missing the last mounted time (ZBEs created on Oracle
+ Solaris 11.3 or older, and never before attached on 11.4), its cre-
+ ation time is used instead.
+
If the selected ZBE is associated with the currently active global
zone boot environment, then the selected ZBE is attached. This
behavior can be changed by using -x force-zbe-clone.
@@ -993,7 +997,7 @@
zone.
- -c
+ -c config_profile.xml | dir
Provides a profile or a directory of profiles to apply. For
more information, see the sysconfig(8) man page.
@@ -1014,14 +1018,6 @@
global zone, the specified ZBE is cloned and a clone of the ZBE
is attached.
- All profiles must have an .xml extension. By default, profiles
- will be installed in the sysconfig-profile smf layer. If a pro-
- file file exists in a subdirectory of dir named enterprise,
- site, or node, the profile will be applied at the enterprise-
- profile, site-profile, or node-profile layer. All other pro-
- files will be applied at the sysconfig-profile layer. For more
- information, see the smf(7) man page.
-
-x destroy-orphan-zbes
@@ -1784,4 +1780,4 @@
-Oracle Solaris 11.4 22 Apr 2020 zoneadm(8)
+Oracle Solaris 11.4 22 Feb 2021 zoneadm(8)
diff -Nurwb 11.4.30/man8/zonecfg.8 11.4.33/man8/zonecfg.8
--- 11.4.30/man8/zonecfg.8 2021-05-19 16:10:29.607457812 +0000
+++ 11.4.33/man8/zonecfg.8 2021-05-19 16:11:42.324573041 +0000
@@ -561,8 +561,8 @@
global: autoshutdown
Action to take for this zone on clean shutdown of the global zone.
- Can be "shutdown" (a clean zone shutdown; the default); "halt"; or
- "suspend".
+ Can be shutdown (a clean zone shutdown; the default); halt; or sus-
+ pend.
global: bootargs
@@ -857,15 +857,14 @@
resource to a zone. The resource must exists in the global zone
prior to the assignment.
- The network address and physical interface name of the network
- interface. The network address is one of:
+ The network address is one of:
- o a valid IPv4 address, optionally followed by "/" and a
+ o a valid IPv4 address, optionally followed by '/' and a
prefix length
- o a valid IPv6 address, which must be followed by "/" and
+ o a valid IPv6 address, which must be followed by '/' and
a prefix length
@@ -874,10 +873,10 @@
Note that host names that resolve to IPv6 addresses are not sup-
ported.
- The physical interface name is the network interface name.
+ The physical property represents the network interface name.
The value for the optional default router is specified similarly to
- the network address except that it must not be followed by a /
+ the network address except that it must not be followed by a '/'
(slash) and a network prefix length. To enable correct use of the
defrouter functionality, the zones that use the property must be on
a different subnet from the subnet on which the global zone
@@ -1998,10 +1997,10 @@
policy Controls ELF signature verification of bootloader and
kernel modules in the zones guest. Values can be set to
- "none", "warning" and "enforce". "None" skips verifica-
- tion. "Warning" logs a message on verification failure.
- "Enforce" causes the module to not load on failure. By
- default, policy is set to "warning".
+ none, warning and enforce. none skips verification. warn-
+ ing logs a message on verification failure. enforce
+ causes the module to not load on failure. By default,
+ policy is set to warning.
cert Adds customer-installed public key cert for third-party
@@ -2645,8 +2644,8 @@
- For more information about resource pools, see pooladm(8) and pool-
- cfg(8) man pages.
+ For more information about resource pools, see pooladm(8), poolbind(8),
+ and poolcfg(8) man pages.
Example 5 Changing the Name of a Zone
@@ -3717,15 +3716,15 @@
+-----------------------------+-----------------------------+
SEE ALSO
- archiveadm(8), attributes(7), brands(7), dev(4FS), dladm(8), evsadm(8),
- fnmatch(7), format(8), hsfs(4FS), ipadm(8), kstat(3KSTAT), kstat(8),
- lgrpinfo(1), mount(8), mwac(7), pooladm(8), poolcfg(8), poold(8),
- ppriv(1), prctl(1), priv_str_to_set(3C), privileges(7), psrinfo(8),
- rbac(7), rcapd(8), rctladm(8), resource-controls(7), resource-manage-
- ment(7), route(8), solaris(7), solaris-kz(7), suri(7), suriadm(8),
- svcadm(8), tpd(7), uar(7), uscsi(4I), user_attr(5), vfstab(5),
- zfs(4FS), zfs(8), zlogin(1), zoneadm(8), zonep2vchk(8), zones(7),
- zpool(8)
+ lgrpinfo(1), ppriv(1), prctl(1), zlogin(1), kstat(3KSTAT),
+ priv_str_to_set(3C), hsfs(4FS), uscsi(4I), dev(4FS), zfs(4FS),
+ user_attr(5), vfstab(5), attributes(7), brands(7), fnmatch(7), mwac(7),
+ privileges(7), rbac(7), resource-controls(7), resource-management(7),
+ solaris(7), solaris-kz(7), suri(7), tpd(7), uar(7), zones(7),
+ archiveadm(8), dladm(8), evsadm(8), format(8), ipadm(8), kstat(8),
+ mount(8), pooladm(8), poolbind(8), poolcfg(8), poold(8), psrinfo(8),
+ rcapd(8), rctladm(8), route(8), suriadm(8), svcadm(8), zfs(8),
+ zoneadm(8), zonep2vchk(8), zpool(8)
Resource Management and Oracle Solaris Zones Developer's Guide
@@ -3791,4 +3790,4 @@
-Oracle Solaris 11.4 23 Jul 2020 zonecfg(8)
+Oracle Solaris 11.4 22 Feb 2021 zonecfg(8)
diff -Nurwb 11.4.30/man8s/identity.8s 11.4.33/man8s/identity.8s
--- 11.4.30/man8s/identity.8s 2021-05-19 16:10:29.618368833 +0000
+++ 11.4.33/man8s/identity.8s 2021-05-19 16:11:42.330553065 +0000
@@ -35,7 +35,7 @@
o svc:/system/identity:cert-expiry
- X.509Certificate Expiry Check.
+ X.509 certificate expiry check.
o svc:/system/identity:version
@@ -46,7 +46,6 @@
OPTIONS
The following configuration properties apply to the cert instance:
-
certificate/generate
Generate a new local Certificate Authority and host certifiate
@@ -63,7 +62,6 @@
addresses in X.509 certificates.
-
EXAMPLES
Example 1 Regenerating the local host CA and host keys and certificates
@@ -80,11 +78,13 @@
# pktool list keystore=file dir=/etc/certs/localhost
+ Certificates:
+ 1) X.509 certificate
Filename: /etc/certs/localhost/host.crt
Subject: CN=myhost.example.com
Issuer: O=Host Root CA, CN=myhost
- Not Before: Jun 25 16:03:00 2019 GMT
- Not After: Jun 22 16:03:00 2029 GMT
+ Not Before: Feb 23 10:56:00 2021 GMT
+ Not After: Feb 24 10:56:00 2022 GMT
Serial: 0xF84CDC4E7326
Signature Algorithm: sha256WithRSAEncryption
X509v3 Subject Alternative Name:
@@ -107,7 +107,8 @@
# svccfg -s system/identity:cert delcust
- # svccfg -s system/identity:cert setprop certificate/subject = service.example.com
+ # svccfg -s system/identity:cert setprop certificate/subject \
+ = service.example.com
# svcadm refresh system/identity:cert
# svcadm restart -sr system/identity:cert
@@ -116,8 +117,8 @@
Example 4 Setting CA issued X.509 Certificates
By default the system will generate a local Certificate Authority (CA)
- and issue a host certificate from it. This is used as the the default
- TLS server certificate for svc:/system/webui/server and svc:/sys-
+ and issue a host certificate from it. This is used as the default TLS
+ server certificate for svc:/system/webui/server and svc:/sys-
tem/rad:remote services.
@@ -127,11 +128,11 @@
# SVC=svc:/system/identity:cert
- # svccfg -s $SVC setprop certificate/cert/pem_value
+ # svccfg -s $SVC setprop certificate/cert/pem_value \
= astring: "$(cat /path/to/signed/certificate.crt )"
- # svccfg -s $SVC setprop certificate/cert/private_key/pem_value
+ # svccfg -s $SVC setprop certificate/cert/private_key/pem_value \
= astring: "$(cat /path/to/signed/certificate.key )"
- # svccfg -s $SVC setprop certificate/ca/pem_value
+ # svccfg -s $SVC setprop certificate/ca/pem_value \
= astring: "$(cat /path/to/issuer/certificate.crt )"
# svcadm refresh $SVC
# svcadm restart -s $SVC
@@ -141,11 +142,12 @@
Restarting svc:/system/identity:cert results in svc:/sys-
- tem/webui/server and svc:/system/rad:remote also being started.
+ tem/webui/server, svc:/system/rad:remote, and svc:/system/ca-certifi-
+ cates:default also being restarted.
SEE ALSO
- uname(1),hostname(8),domainname(8),webui-service(7)
+ uname(1), hostname(1), webui-service(7), domainname(8)
-Oracle Solaris 11.4 12 Jan 2021 identity(8s)
+Oracle Solaris 11.4 22 Feb 2021 identity(8s)
diff -Nurwb 11.4.30/man9f/uiomove.9f 11.4.33/man9f/uiomove.9f
--- 11.4.30/man9f/uiomove.9f 2021-05-19 16:10:29.625220835 +0000
+++ 11.4.33/man9f/uiomove.9f 2021-05-19 16:11:42.333336304 +0000
@@ -72,6 +72,9 @@
If uio_segflg is set to UIO_SYSSPACE and address is selected from user
space, the system may panic.
+NOTES
+ Driver defined locks should not be held across calls to this function.
+
Oracle Solaris 11.4 30 Sep 2015 uiomove(9F)
diff -Nurwb 11.4.30/man9f/ureadc.9f 11.4.33/man9f/ureadc.9f
--- 11.4.30/man9f/ureadc.9f 2021-05-19 16:10:29.631156101 +0000
+++ 11.4.33/man9f/ureadc.9f 2021-05-19 16:11:42.335826215 +0000
@@ -39,6 +39,9 @@
Writing Device Drivers in Oracle Solaris 11.4
+NOTES
+ Driver defined locks should not be held across calls to this function.
+
Oracle Solaris 11.4 16 Jan 2006 ureadc(9F)
diff -Nurwb 11.4.30/man9f/uwritec.9f 11.4.33/man9f/uwritec.9f
--- 11.4.30/man9f/uwritec.9f 2021-05-19 16:10:29.637289781 +0000
+++ 11.4.33/man9f/uwritec.9f 2021-05-19 16:11:42.338586434 +0000
@@ -35,6 +35,9 @@
Writing Device Drivers in Oracle Solaris 11.4
+NOTES
+ Driver defined locks should not be held across calls to this function.
+
Oracle Solaris 11.4 16 Jan 2006 uwritec(9F)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment