source: trunk/third/tcp_wrappers/clean_exit.c @ 11717

Revision 11717, 1.1 KB checked in by danw, 26 years ago (diff)
This commit was generated by cvs2svn to compensate for changes in r11716, which included commits to RCS files with non-trunk default branches.
Line 
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
12static char sccsid[] = "@(#) clean_exit.c 1.4 94/12/28 17:42:19";
13#endif
14
15#include <stdio.h>
16
17extern void exit();
18
19#include "tcpd.h"
20
21/* clean_exit - clean up and exit */
22
23void    clean_exit(request)
24struct 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}
Note: See TracBrowser for help on using the repository browser.