6 #include "ns3/assert.h" 
   14 sighandler_t 
dce_signal (
int signum, sighandler_t handler)
 
   18   struct sigaction action, old_action;
 
   19   action.sa_handler = handler;
 
   20   sigemptyset (&action.sa_mask);
 
   27   if (old_action.sa_flags & SA_SIGINFO)
 
   29       return (sighandler_t)old_action.sa_sigaction;
 
   33       return old_action.sa_handler;
 
   37                    struct sigaction *oldact)
 
   40   NS_LOG_FUNCTION (current << 
UtilsGetNodeId () << signum << act << oldact);
 
   41   NS_ASSERT (current != 0);
 
   46       if (i->signal == signum)
 
   50               oldact->sa_flags = i->flags;
 
   51               oldact->sa_mask = i->mask;
 
   52               if (oldact->sa_flags & SA_SIGINFO)
 
   54                   oldact->sa_sigaction = i->sigaction;
 
   58                   oldact->sa_handler = i->handler;
 
   63               i->flags = act->sa_flags;
 
   64               i->mask = act->sa_mask;
 
   65               if (act->sa_flags & SA_SIGINFO)
 
   67                   i->sigaction = act->sa_sigaction;
 
   71                   i->handler = act->sa_handler;
 
   81       handler.
flags = act->sa_flags;
 
   82       handler.
mask = act->sa_mask;
 
   83       if (act->sa_flags & SA_SIGINFO)
 
   89           handler.
handler = act->sa_handler;
 
   95       oldact->sa_handler = SIG_IGN;
 
   97       sigemptyset (&oldact->sa_mask);
 
  107   NS_ASSERT (current != 0);
 
  121   NS_ASSERT (current != 0);
 
  142             for (
int s = SIGINT; s <= SIGRTMAX ; s++)
 
  144                 if (sigismember (
set, s))
 
  162         current->
err = EINVAL;