Annotation of researchv9/X11/src/X.V11R1/server/os/v9/access.c, revision 1.1

1.1     ! root        1: /***********************************************************
        !             2: Copyright 1987 by Digital Equipment Corporation, Maynard, Massachusetts,
        !             3: and the Massachusetts Institute of Technology, Cambridge, Massachusetts.
        !             4: 
        !             5:                         All Rights Reserved
        !             6: 
        !             7: Permission to use, copy, modify, and distribute this software and its 
        !             8: documentation for any purpose and without fee is hereby granted, 
        !             9: provided that the above copyright notice appear in all copies and that
        !            10: both that copyright notice and this permission notice appear in 
        !            11: supporting documentation, and that the names of Digital or MIT not be
        !            12: used in advertising or publicity pertaining to distribution of the
        !            13: software without specific, written prior permission.  
        !            14: 
        !            15: DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
        !            16: ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
        !            17: DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
        !            18: ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
        !            19: WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
        !            20: ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
        !            21: SOFTWARE.
        !            22: 
        !            23: ******************************************************************/
        !            24: 
        !            25: /* $Header: access.c,v 1.18 87/09/03 14:24:02 toddb Exp $ */
        !            26: 
        !            27: #include "X.h"
        !            28: #include "Xproto.h"
        !            29: #include "misc.h"
        !            30: #include <errno.h>
        !            31: #undef NULL
        !            32: #include <stdio.h>
        !            33: #include "dixstruct.h"
        !            34: #include "osdep.h"
        !            35: 
        !            36: 
        !            37: typedef struct _host {
        !            38:        short           family;
        !            39:        short           len;
        !            40:        unsigned char   addr[4];        /* will need to be bigger eventually */
        !            41:        struct _host *next;
        !            42: } HOST;
        !            43: 
        !            44: static HOST *selfhosts = NULL;
        !            45: static HOST *validhosts = NULL;
        !            46: static int AccessEnabled = TRUE;
        !            47: 
        !            48: /* Define this host for access control.  Find all the hosts the OS knows about 
        !            49:  * for this fd and add them to the selfhosts list.
        !            50:  */
        !            51: DefineSelf (fd)
        !            52:     int fd;
        !            53: {}
        !            54: 
        !            55: /* Reset access control list to initial hosts */
        !            56: ResetHosts (display)
        !            57:     char *display;
        !            58: {}
        !            59: 
        !            60: /* Add a host to the access control list.  This is the external interface
        !            61:  * called from the dispatcher */
        !            62: 
        !            63: int
        !            64: AddHost (client, family, length, pAddr)
        !            65:     int                        client;
        !            66:     int                 family;
        !            67:     int                 length;        /* of bytes in pAddr */
        !            68:     pointer             pAddr;
        !            69: {}
        !            70: 
        !            71: /* Add a host to the access control list. This is the internal interface 
        !            72:  * called when starting or resetting the server */
        !            73: NewHost (family, addr)
        !            74:     short      family;
        !            75:     pointer    addr;
        !            76: {}
        !            77: 
        !            78: /* Remove a host from the access control list */
        !            79: 
        !            80: int
        !            81: RemoveHost (client, family, length, pAddr)
        !            82:     int                        client;
        !            83:     int                 family;
        !            84:     int                 length;        /* of bytes in pAddr */
        !            85:     pointer             pAddr;
        !            86: {}
        !            87: 
        !            88: /* Get all hosts in the access control list */
        !            89: int
        !            90: GetHosts (data, pnHosts, pEnabled)
        !            91:     pointer            *data;
        !            92:     int                        *pnHosts;
        !            93:     BOOL               *pEnabled;
        !            94: {
        !            95:     *pEnabled = AccessEnabled ? EnableAccess : DisableAccess;
        !            96:     *pnHosts = 0;
        !            97:     return (0);
        !            98: }
        !            99: 
        !           100: ChangeAccessControl(client, fEnabled)
        !           101:     ClientPtr client;
        !           102:     int fEnabled;
        !           103: {}

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.