On Thu, Aug 29, 2002 at 09:14:20PM +0100, Paul flinders wrote:
> > On Thu, Aug 29, 2002 at 07:49:22AM -0400, [EMAIL PROTECTED] wrote:
> >> On Thu, Aug 29, 2002 at 05:44:51PM +0100, Paul Flinders wrote:
> >> >          return retval;
> >> > + }
> >> > +
> >> > + void __attribute__ ((destructor))  unload ()
> >> > + {
> >> > +        /* Make sure socket is closed on unload of dll, some apps use PAM
> >> in +          a manner which leaks FDs otherwise */
> >> > +        close_sock();

> >> This is *horribly* non-portable I'm afraid. If you need this
> >> can you provide an autoconf test that will determine if this
> >> hideous construct (__attribute__ ((destructor))  unload ()) is
> >> supported on the current platform/compiler.

> > The portable solution in PAM is to register a module cleanup function
> > using pam_data(), to ensure that the socket is closed when pam_end() is
> > called.

> OK, I'll have a look at that.

Hmm, you might have an easier time of it if I gave you the correct
function name -- pam_set_data().  In this case, 'data' should be a
pointer to a data blob containing all the information you need to know
about the open socket, and 'cleanup' is the callback function used to
close the socket (and do any other housekeeping chores that might come
up).

Steve Langasek
postmodern programmer

Attachment: msg02780/pgp00000.pgp
Description: PGP signature

Reply via email to