Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/trunk]: src/lib/libutil Add a manual page.



details:   https://anonhg.NetBSD.org/src/rev/ec20f12abcbb
branches:  trunk
changeset: 571367:ec20f12abcbb
user:      christos <christos%NetBSD.org@localhost>
date:      Sat Nov 20 03:06:09 2004 +0000

description:
Add a manual page.

diffstat:

 lib/libutil/Makefile            |    5 +-
 lib/libutil/sockaddr_snprintf.3 |  199 ++++++++++++++++++++++++++++++++++++++++
 lib/libutil/util.3              |    3 +-
 3 files changed, 204 insertions(+), 3 deletions(-)

diffs (239 lines):

diff -r b8d157b7ac28 -r ec20f12abcbb lib/libutil/Makefile
--- a/lib/libutil/Makefile      Sat Nov 20 00:53:13 2004 +0000
+++ b/lib/libutil/Makefile      Sat Nov 20 03:06:09 2004 +0000
@@ -1,4 +1,4 @@
-#      $NetBSD: Makefile,v 1.45 2004/11/19 21:37:19 christos Exp $
+#      $NetBSD: Makefile,v 1.46 2004/11/20 03:06:09 christos Exp $
 #      @(#)Makefile    8.1 (Berkeley) 6/4/93
 
 USE_SHLIBDIR=  yes
@@ -22,7 +22,8 @@
        login.3 login_cap.3 loginx.3 \
        disklabel_dkcksum.3 disklabel_scan.3 \
        opendisk.3 openpty.3 pidfile.3 pidlock.3 \
-       pw_getconf.3 pw_init.3 pw_lock.3 secure_path.3 snprintb.3 ttyaction.3 \
+       pw_getconf.3 pw_init.3 pw_lock.3 secure_path.3 snprintb.3 \
+       sockaddr_snprintf.3 ttyaction.3 \
        ttymsg.3 util.3
 
 .PATH: ${NETBSDSRCDIR}/lib/libc/gen
diff -r b8d157b7ac28 -r ec20f12abcbb lib/libutil/sockaddr_snprintf.3
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ b/lib/libutil/sockaddr_snprintf.3   Sat Nov 20 03:06:09 2004 +0000
@@ -0,0 +1,199 @@
+.\"     $NetBSD: sockaddr_snprintf.3,v 1.1 2004/11/20 03:06:09 christos Exp $
+.\"
+.\" Copyright (c) 2004 The NetBSD Foundation, Inc.
+.\" All rights reserved.
+.\"
+.\" This code is derived from software contributed to The NetBSD Foundation
+.\" by Christos Zoulas.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\"    notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\"    notice, this list of conditions and the following disclaimer in the
+.\"    documentation and/or other materials provided with the distribution.
+.\" 3. All advertising materials mentioning features or use of this software
+.\"    must display the following acknowledgement:
+.\"        This product includes software developed by the NetBSD
+.\"        Foundation, Inc. and its contributors.
+.\" 4. Neither the name of The NetBSD Foundation nor the names of its
+.\"    contributors may be used to endorse or promote products derived
+.\"    from this software without specific prior written permission.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
+.\" ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+.\" TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+.\" PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
+.\" BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+.\" CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+.\" SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+.\" CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+.\" POSSIBILITY OF SUCH DAMAGE.
+.\"
+.Dd November 19, 2004
+.Dt SOCKADDR_SNPRINTF 8
+.Os
+.Sh NAME
+.Nm sockaddr_snprintf
+.Nd formatting function for socket address structures
+.Sh SYNOPSIS
+.In util.h
+.Ft int
+.Fn "sockaddr_snprintf" "char *buf" "size_t buflen" "const char *fmt" "const struct sockaddr *sa"
+.Sh DESCRIPTION
+The
+.Fn sockaddr_snprintf
+function formats a socket address into a form suitable for printing.
+.Pp
+This function is convenient because it is protocol independent, i.e. one does
+not need to know the address family of the sockaddr in order to print it.
+The
+.Xr printf 3
+like format string specifies how the address is going to be printed.
+Some formatting characters are only supported by some address families.
+If a certain formatting character is not supported, then the string
+.Dt N/A
+is printed.
+.Pp
+The resulting formatted string is placed into
+.Fa buf .
+Up to
+.Fa buflen
+characters are placed in
+.Fa buf .
+.Pp
+The following formatting characters are supported:
+.Bl -tag -width %a
+.It a
+The node address portion of the socket address is printed numerically.
+For
+.Dv AF_INET
+the address is printed as:
+.Dv A.B.C.D 
+and
+for AF_INET6
+the address is printed as:
+.Dv A:B...[%if] 
+using
+.Xr getnameinfo
+internally with
+.Dv NI_NUMERICHOST .
+For 
+.Dv AF_APPLETALK
+the address is printed as:
+.Dv A.B
+For
+.Dv AF_LOCAL
+.Dv ( AF_UNIX )
+the address is printed as:
+.Dv socket-path
+For
+.Dv AF_LINK
+the address is printed as:
+.Dv a.b.c.d.e.f
+using
+.Xr link_ntoa 3 ,
+but the interface portion is skipped (see below).
+For
+.Dv AF_UNSPEC
+nothing is printed.
+.It f
+The numeric value of the family of the address is printed.
+.It l
+The length of the socket address is printed.
+.It p
+For
+.Dv AF_INET ,
+.Dv AF_INET6 ,
+and
+.Dv AF_APPLETALK
+the numeric value of the port portion of the address is printed.
+.It I
+For
+.Dv AF_LINK
+addresses, the interface name portion is printed.
+.It F
+For
+.Dv AF_INET6
+addresses, the flowinfo portion of the address is printed numerically.
+.It R
+For
+.Dv AF_APPLETALK
+addresses, the netrange portion of the address is printed as:
+.Dv phase:[firstnet,lastnet]
+.It S
+For
+.Dv AF_INET6
+addresses, the scope portion of the address is printed numerically.
+.El
+.Sh RETURN VALUES
+The
+.Fn sockaddr_snprintf 
+function returns the number of characters that are required to format the
+value
+.Fa val
+given the format string
+.Fa fmt
+excluding the terminating NUL.
+The returned string in
+.Fa buf
+is always NUL-terminated.
+If the address family is not supported,
+.Fn sockaddr_snprintf
+returns -1 and sets
+.Fa errno
+to 
+.Dv EAFNOSUPPORT .
+For
+.Dv AF_INET
+and
+.DV AF_INET6
+addresses
+.Fn sockaddr_snprintf
+returns -1 if the
+.Xr getnameinfo 3
+conversion failed, and
+.Fa errno
+is set to the error value from
+.Xr getnameinfo 3 .
+.Sh ERRORS
+If the buffer
+.Fa buf
+is too small to hold the formatted output,
+.Fn sockaddr_snprintf
+will still return the buffer, containing a truncated string.
+.Sh SEE ALSO
+.Xr getnameinfo 3
+.Xr link_ntoa 3
+.Xr snprintf 3
+.Sh HISTORY
+The
+.Fn sockaddr_snprintf
+first appeared in
+.Nx 3.0
+.Sh BUGS
+The
+.Fn sockaddr_snprintf
+interface is experimental and might change in the future.
+.Pp
+There is no way to specify different formatting styles for particular
+addresses.
+For example it would be useful to print
+.Dv AF_LINK
+addresses as
+.Dv %.2x:%.2x...
+instead of
+.Dv %x.%x...
+.Pp
+This function is supposed to be quick, but
+.Xr getnameinfo 3
+might use system calls to convert the scope number to an interface name.
+.Pp
+Not all formatting characters are supported by all address families and
+printing
+.Dv N/A
+is not very conventient.
diff -r b8d157b7ac28 -r ec20f12abcbb lib/libutil/util.3
--- a/lib/libutil/util.3        Sat Nov 20 00:53:13 2004 +0000
+++ b/lib/libutil/util.3        Sat Nov 20 03:06:09 2004 +0000
@@ -1,4 +1,4 @@
-.\"     $NetBSD: util.3,v 1.13 2002/12/22 02:19:15 wiz Exp $
+.\"     $NetBSD: util.3,v 1.14 2004/11/20 03:06:09 christos Exp $
 .\"
 .\" Copyright (c) 2001 The NetBSD Foundation, Inc.
 .\" All rights reserved.
@@ -105,6 +105,7 @@
 setclasscontext.3      query login.conf database about a user class
 setusercontext.3       query login.conf database about a user class
 snprintb.3     bitmask output conversion
+sockaddr_snprintf.3    socket address formatting function
 ttyaction.3    ttyaction utility function
 ttylock.3      locks based on files containing PIDs
 ttymsg.3       ttymsg utility function



Home | Main Index | Thread Index | Old Index