/* $OpenLDAP: pkg/ldap/libraries/liblutil/signal.c,v 1.8.2.3 2007/01/02 21:43:52 kurt Exp $ */ /* This work is part of OpenLDAP Software . * * Copyright 1998-2007 The OpenLDAP Foundation. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted only as authorized by the OpenLDAP * Public License. * * A copy of this license is available in the file LICENSE in the * top-level directory of the distribution or, alternatively, at * . */ #include "portable.h" #ifdef HAVE_SIGACTION #include #include lutil_sig_t lutil_sigaction(int sig, lutil_sig_t func) { struct sigaction action, oaction; memset( &action, '\0', sizeof(action) ); action.sa_handler = func; sigemptyset( &action.sa_mask ); #ifdef SA_RESTART action.sa_flags |= SA_RESTART; #endif if( sigaction( sig, &action, &oaction ) != 0 ) { return NULL; } return oaction.sa_handler; } #endif