60 lines
1.5 KiB
Groff
60 lines
1.5 KiB
Groff
.TH IPSEC_RANGETOSUBNET 3 "8 Sept 2000"
|
|
.\" RCSID $Id: rangetosubnet.3,v 1.1 2004/03/15 20:35:26 as Exp $
|
|
.SH NAME
|
|
ipsec rangetosubnet \- convert address range to subnet
|
|
.SH SYNOPSIS
|
|
.B "#include <freeswan.h>"
|
|
.sp
|
|
.B "const char *rangetosubnet(const ip_address *start,"
|
|
.ti +1c
|
|
.B "const ip_address *stop, ip_subnet *dst);"
|
|
.SH DESCRIPTION
|
|
.I Rangetosubnet
|
|
accepts two IP addresses which define an address range,
|
|
from
|
|
.I start
|
|
to
|
|
.I stop
|
|
inclusive,
|
|
and converts this to a subnet if possible.
|
|
The addresses must both be IPv4 or both be IPv6,
|
|
and the address family of the resulting subnet is the same.
|
|
.PP
|
|
.I Rangetosubnet
|
|
returns NULL for success and
|
|
a pointer to a string-literal error message for failure;
|
|
see DIAGNOSTICS.
|
|
.SH SEE ALSO
|
|
ipsec_initsubnet(3), ipsec_ttosubnet(3)
|
|
.SH DIAGNOSTICS
|
|
Fatal errors in
|
|
.I rangetosubnet
|
|
are:
|
|
mixed address families;
|
|
unknown address family;
|
|
.I start
|
|
and
|
|
.I stop
|
|
do not define a subnet.
|
|
.SH HISTORY
|
|
Written for the FreeS/WAN project by Henry Spencer.
|
|
.SH BUGS
|
|
The restriction of error reports to literal strings
|
|
(so that callers don't need to worry about freeing them or copying them)
|
|
does limit the precision of error reporting.
|
|
.PP
|
|
The error-reporting convention lends itself
|
|
to slightly obscure code,
|
|
because many readers will not think of NULL as signifying success.
|
|
A good way to make it clearer is to write something like:
|
|
.PP
|
|
.RS
|
|
.nf
|
|
.B "const char *error;"
|
|
.sp
|
|
.B "error = rangetosubnet( /* ... */ );"
|
|
.B "if (error != NULL) {"
|
|
.B " /* something went wrong */"
|
|
.fi
|
|
.RE
|