# 2.11BSD#431 - /usr/src/libexec/tcpd/clean_exit.c

##### Functions

    clean_exit        X

       1:  /*
       2:   * clean_exit() cleans up and terminates the program. It should be called
       3:   * instead of exit() when for some reason the real network daemon will not or
       4:   * cannot be run. Reason: in the case of a datagram-oriented service we must
       5:   * discard the not-yet received data from the client. Otherwise, inetd will
       6:   * see the same datagram again and again, and go into a loop.
       7:   *
       8:   * Author: Wietse Venema, Eindhoven University of Technology, The Netherlands.
       9:   */
      10:
      11: #ifndef lint
      12: static char sccsid[] = "@(#) clean_exit.c 1.4 94/12/28 17:42:19";
      13: #endif
      14:
      15: #include <stdio.h>
      16:
      17: extern void exit();
      18:
      19: #include "tcpd.h"
      20:
      21: /* clean_exit - clean up and exit */
      22:
      23: void    clean_exit(request)
      24: struct request_info *request;
      25: {
      26:
      27:     /*
      28:      * In case of unconnected protocols we must eat up the not-yet received
      29:      * data or inetd will loop.
      30:      */
      31:
      32:     if (request->sink)
      33:     request->sink(request->fd);
      34:
      35:     /*
      36:      * Be kind to the inetd. We already reported the problem via the syslogd,
      37:      * and there is no need for additional garbage in the logfile.
      38:      */
      39:
      40:     sleep(5);
      41:     exit(0);
      42: }

#### Defined functions

clean_exit defined in line 23; never used

#### Defined variables

sccsid defined in line 12; never used

Last modified: 1994-12-28 Generated: 2016-12-26 | Generated by src2html V0.67 page hit count: 427 |