Index: ossp-pkg/sa/sa.pod RCS File: /v/ossp/cvs/ossp-pkg/sa/sa.pod,v rcsdiff -q -kk '-r1.29' '-r1.30' -u '/v/ossp/cvs/ossp-pkg/sa/sa.pod,v' 2>/dev/null --- sa.pod 2002/10/25 18:10:43 1.29 +++ sa.pod 2002/10/25 20:45:43 1.30 @@ -82,11 +82,11 @@ sa_accept, sa_getremote, sa_getlocal, -sa_getfd, sa_shutdown. =item B: +sa_getfd, sa_read, sa_readln, sa_write, @@ -546,8 +546,8 @@ =head2 Socket Connection Operations -This API part provides operations for stream-oriented data communication -through the socket abstraction C. +This API part provides connection operations for stream-oriented data +communication through the socket abstraction C. =over 4 @@ -613,20 +613,65 @@ =item CBC<(sa_t *>IC<, sa_addr_t **>IC<);> -FIXME +Get address abstraction of remote side of communication. + +This determines the address of the communication peer and creates a new +socket address abstraction object (returned in I) describing +the peer address. The application has to destroy I later with +sa_addr_destroy(3). + +Example: C =item sa_rc_t B(sa_t *I, sa_addr_t **I); -=item sa_rc_t B(sa_t *I, int *I); +Get address abstraction of local side of communication. + +This determines the address of the local communication side and +creates a new socket address abstraction object (returned in I) +describing the local address. The application has to destroy I +later with sa_addr_destroy(3). + +Example: C =item sa_rc_t B(sa_t *I, char *I); +Shut down part of the full-duplex connection. + +This performs a shut down of the connection descriped in I. The +flags string can be either "C" (indicating the read channel of the +communication is shut down only), "C" (indicating the write channel +of the communication is shut down only), or "C" (indicating both the +read and write channels of the communication are shut down). Internally +this directly maps to shutdown(2). + +Example: C + =back =head2 Socket Input/Output Operations (Stream Communication) +This API part provides I/O operations for stream-oriented data +communication through the socket abstraction C. + =over 4 +=item sa_rc_t B(sa_t *I, int *I); + +Get underlying socket filedescriptor. + +This peeks into the underlying socket filedescriptor B +allocated internally for the communication. This can be used for +adjusting the socket communication (via fcntl(2), setsockopt(2), etc) +directly. + +Think twice before using this, then think once more. After all that, +think again. With enough thought, the need for directly manipulating the +underlying socket can often be eliminated. At least remember that all +your direct socket operations fully by-pass B and this way can +leads to nasty side-effects. + +Example: C + =item sa_rc_t B(sa_t *I, char *I, size_t I, size_t *I); =item sa_rc_t B(sa_t *I, char *I, size_t I, size_t *I); @@ -639,7 +684,10 @@ =back -=head2 Socket Input/Output Operations (Stream Communication) +=head2 Socket Input/Output Operations (Datagram Communication) + +This API part provides operations for datagram-oriented data +communication through the socket abstraction C. =over 4