~noskcaj/ubuntu/saucy/xinetd/2.3.15

« back to all changes in this revision

Viewing changes to xinetd/access.h

  • Committer: Bazaar Package Importer
  • Author(s): Thomas Seyrat
  • Date: 2004-04-18 13:33:57 UTC
  • Revision ID: james.westby@ubuntu.com-20040418133357-czeqeju37433xvdd
Tags: upstream-2.3.13
ImportĀ upstreamĀ versionĀ 2.3.13

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/*
 
2
 * (c) Copyright 1992 by Panagiotis Tsirigotis
 
3
 * (c) Sections Copyright 1998-2001 by Rob Braun
 
4
 * All rights reserved.  The file named COPYRIGHT specifies the terms 
 
5
 * and conditions for redistribution.
 
6
 */
 
7
 
 
8
#ifndef ACCESS_H
 
9
#define ACCESS_H
 
10
 
 
11
/*
 
12
 * $Id: access.h,v 1.2 2004/01/02 21:07:42 steveg Exp $
 
13
 */
 
14
 
 
15
 
 
16
#include "util.h"       /* for nv_get_name() */
 
17
#include "defs.h"       /* bool_int */
 
18
#include "connection.h"
 
19
 
 
20
 
 
21
/*
 
22
 * These flags are used to form a mask for access_control.
 
23
 * The mask determines which checks will be performed.
 
24
 */
 
25
#define CF_ADDRESS            1
 
26
#define CF_TIME               2
 
27
#define CF_SERVICE_LIMIT      3
 
28
 
 
29
typedef enum 
 
30
   {
 
31
      AC_OK,               /* ok to start a server                         */
 
32
      AC_FORK,             /* tried to start a server but fork failed      */
 
33
      AC_ADDRESS,          /* we do not accept requests from that address  */
 
34
      AC_TIME,             /* we do not accept requests at this time       */
 
35
      AC_SERVICE_LIMIT,    /* server limit would be exceeded for this      */
 
36
                           /* service                                      */
 
37
      AC_PER_SOURCE_LIMIT, /* server limit would be exceeded for this      */
 
38
                           /* service and source address                   */
 
39
      AC_PROCESS_LIMIT,    /* total process limit would be exceeded        */
 
40
      AC_LIBWRAP,
 
41
      AC_LOAD,
 
42
      AC_CPS
 
43
   } access_e ;
 
44
 
 
45
 
 
46
#define ACCESS_EXPLAIN( code )   nv_get_name( access_code_names, (int) (code) )
 
47
 
 
48
 
 
49
extern const struct name_value access_code_names[];
 
50
void cps_service_stop(struct service *sp, const char *reason);
 
51
access_e access_control(struct service *sp,
 
52
        const connection_s *cp,const mask_t *check_mask);
 
53
access_e parent_access_control(struct service *sp,const connection_s *cp);
 
54
 
 
55
 
 
56
#endif   /* ACCESS_H */
 
57