OSSP CVS Repository

ossp - Check-in [3782]
Not logged in
[Honeypot]  [Browse]  [Home]  [Login]  [Reports
[Search]  [Ticket]  [Timeline
  [Patchset]  [Tagging/Branching

Check-in Number: 3782
Date: 2001-Aug-12 15:44:21 (local)
2001-Aug-12 13:44:21 (UTC)
User:rse
Branch:
Comment: add manual page for sa library
Tickets:
Inspections:
Files:
ossp-pkg/lmtp2nntp/sa.pod      added-> 1.1

ossp-pkg/lmtp2nntp/sa.pod -> 1.1

*** /dev/null    Fri Apr 26 07:52:13 2024
--- -    Fri Apr 26 07:53:48 2024
***************
*** 0 ****
--- 1,90 ----
+ ##
+ ##  SA - Socket Address Library
+ ##  Copyright (c) 2001 The OSSP Project (http://www.ossp.org/)
+ ##  Copyright (c) 2001 Cable & Wireless Deutschland (http://www.cw.com/de/)
+ ##
+ ##  This file is part of OSSP lmtp2nntp, an LMTP speaking local
+ ##  mailer which forwards mails as Usenet news articles via NNTP.
+ ##  It can be found at http://www.ossp.com/pkg/lmtp2nntp/.
+ ##
+ ##  Permission to use, copy, modify, and distribute this software for
+ ##  any purpose with or without fee is hereby granted, provided that
+ ##  the above copyright notice and this permission notice appear in all
+ ##  copies.
+ ##
+ ##  THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED 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 AUTHORS AND COPYRIGHT HOLDERS AND THEIR
+ ##  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.
+ ##
+ ##  sa.pod: Unix manual page
+ ##
+ 
+ =pod
+ 
+ =head1 NAME
+ 
+ B<SA> - Socket Address Library
+ 
+ =head1 SYNOPSIS
+ 
+  #include "sa.h"
+ 
+ 
+ =head1 DESCRIPTION
+ 
+ B<SA> is a small abstraction library for creating C<struct sockaddr>
+ structures for use with the POSIX socket(3) API. The problem this
+ library solves is that the C<struct sockaddr> is just POSIX' old way
+ of passing different structures into a single API without the use of
+ C<void *> (which did not exist at the time socket(3) was invented).
+ 
+ B<SA> creates a C<struct sockaddr> which internally shadows C<struct
+ sockaddr_in> (for IPv4 addresses), C<struct sockaddr_in6> (for IPv6
+ addresses if supported by the underlying platform) and C<struct
+ sockaddr_un> (for local Unix domain socket addresses). Although there
+ are more variants, only these three are currently supported by B<SA>.
+ 
+ The result of a sa_create(3) call is a pointer to the following
+ structure:
+ 
+  typedef struct {
+   struct sockaddr *sa_buf;   /* pointer to struct sockaddr_xx */
+   socklen_t        sa_len;   /* length of  struct sockaddr_xx */
+   int              sa_proto; /* protocol identifier */
+  } sa_t;
+ 
+ The following use cases are currently supported:
+ 
+  sa_t *sa;
+  int s;
+ 
+  sa = sa_create(SA_UNIX, "/tmp/socket");
+  sa = sa_create(SA_IP, "tcp", "mail.foo.dom", "25");
+  sa = sa_create(SA_IP, "tcp", "127.0.0.1", "25");
+  sa = sa_create(SA_IP, "tcp", ":::1", "25");
+ 
+  s = socket(sa->sa_buf->sa_family, SOCK_STREAM, sa->sa_proto);
+  connect(s, sa->sa_buf, sa->sa_len);
+ 
+     :
+ 
+  close(s);
+  sa_destroy(ca);
+ 
+ =head1 AUTHOR
+ 
+  Ralf S. Engelschall
+  rse@engelschall.com
+  www.engelschall.com
+ 
+ =cut
+ 

CVSTrac 2.0.1