Index: ossp-pkg/sa/sa.c RCS File: /v/ossp/cvs/ossp-pkg/sa/sa.c,v rcsdiff -q -kk '-r1.48' '-r1.49' -u '/v/ossp/cvs/ossp-pkg/sa/sa.c,v' 2>/dev/null --- sa.c 2002/01/02 13:35:36 1.48 +++ sa.c 2002/01/02 13:44:48 1.49 @@ -1143,6 +1143,21 @@ #endif break; } + case SA_OPTION_LINGER: { +#if defined(SO_LINGER) + struct linger *linger = (struct linger *)va_arg(ap, void *); + if (sa->fdSocket == -1) { + rv = SA_ERR_USE; + break; + } + if (setsockopt(sa->fdSocket, SOL_SOCKET, SO_LINGER, + linger, sizeof(struct linger)) < 0) + rv = SA_ERR_SYS; +#else + rv = SA_ERR_IMP; +#endif + break; + } case SA_OPTION_REUSEADDR: case SA_OPTION_REUSEPORT: { /* enable/disable reusability of binding to address or port */ Index: ossp-pkg/sa/sa.h RCS File: /v/ossp/cvs/ossp-pkg/sa/sa.h,v rcsdiff -q -kk '-r1.27' '-r1.28' -u '/v/ossp/cvs/ossp-pkg/sa/sa.h,v' 2>/dev/null --- sa.h 2002/01/02 13:35:36 1.27 +++ sa.h 2002/01/02 13:44:48 1.28 @@ -138,6 +138,7 @@ /* list of options */ typedef enum { SA_OPTION_NAGLE, + SA_OPTION_LINGER, SA_OPTION_REUSEADDR, SA_OPTION_REUSEPORT, SA_OPTION_NONBLOCK Index: ossp-pkg/sa/sa.pod RCS File: /v/ossp/cvs/ossp-pkg/sa/sa.pod,v rcsdiff -q -kk '-r1.21' '-r1.22' -u '/v/ossp/cvs/ossp-pkg/sa/sa.pod,v' 2>/dev/null --- sa.pod 2002/01/02 13:35:36 1.21 +++ sa.pod 2002/01/02 13:44:48 1.22 @@ -435,15 +435,19 @@ the expected following argument(s) are dependent on the particular option. Currently the following options are implement (option arguments in parenthesis): C (C I) for enabling -(I=C<1>) or disabling (I=C<0>) Nagle's Algorithm (see -RFC898); C (C I) for enabling -(I=C<1>) or disabling (I=C<0>) the reusability of -the address on binding (see C of setsockopt(2)), -C (C I) for enabling (I=C<1>) -or disabling (I=C<0>) the reusability of the port on binding -(see C of setsockopt(2)), C (C +(I=C<1>) or disabling (I=C<0>) Nagle's Algorithm +(see RFC898); C (CI) for enabling +(Cl_onoff>=C<1>) or disabling (Cl_onoff>=C<0> +and Cl_linger=I) lingering on close (see +C in F); C (C I) for enabling (I=C<1>) or disabling (I=C<0>) -non-blocking I/O mode (see C of fcntl(2)). +the reusability of the address on binding (see C +of setsockopt(2)), C (C I) for +enabling (I=C<1>) or disabling (I=C<0>) the reusability +of the port on binding (see C of setsockopt(2)), +C (C I) for enabling (I=C<1>) or +disabling (I=C<0>) non-blocking I/O mode (see C of +fcntl(2)). Example: C