Blame include/glibtop/gnuserv.h

Packit Service 407539
/* -*-C-*-
Packit Service 407539
Packit Service 407539
 Header file for the GNU Emacs server and client C code.
Packit Service 407539
Packit Service 407539
 This file is part of GNU Emacs.
Packit Service 407539
Packit Service 407539
 Copying is permitted under those conditions described by the GNU
Packit Service 407539
 General Public License.
Packit Service 407539
Packit Service 407539
 Copyright (C) 1989 Free Software Foundation, Inc.
Packit Service 407539
Packit Service 407539
 Author: Andy Norman (ange@hplb.hpl.hp.com), based on
Packit Service 407539
         'etc/server.c' and 'etc/emacsclient.c' from the 18.52 GNU
Packit Service 407539
         Emacs distribution.
Packit Service 407539
Packit Service 407539
 Please mail bugs and suggestions to the author at the above address.
Packit Service 407539
*/
Packit Service 407539
Packit Service 407539
/* HISTORY
Packit Service 407539
 * 11-Nov-1990		bristor@simba
Packit Service 407539
 *    Added EOT stuff.
Packit Service 407539
 */
Packit Service 407539
Packit Service 407539
/*
Packit Service 407539
 * This file incorporates new features added by Bob Weiner <weiner@mot.com>,
Packit Service 407539
 * Darrell Kindred <dkindred@cmu.edu> and Arup Mukherjee <arup@cmu.edu>.
Packit Service 407539
 * Please see the note at the end of the README file for details.
Packit Service 407539
 *
Packit Service 407539
 * (If gnuserv came bundled with your emacs, the README file is probably
Packit Service 407539
 * ../etc/gnuserv.README relative to the directory containing this file)
Packit Service 407539
 */
Packit Service 407539
Packit Service 407539
#if 0
Packit Service 407539
static char header_rcsid [] = "!Header: gnuserv.h,v 2.4 95/02/16 11:58:11 arup alpha !";
Packit Service 407539
#endif
Packit Service 407539
Packit Service 407539
#define NO_SHORTNAMES
Packit Service 407539
Packit Service 407539
#define PATCHLEVEL 2
Packit Service 407539
Packit Service 407539
#define NO_SHORTNAMES
Packit Service 407539
/* gnuserv should not be compiled using SOCKS */
Packit Service 407539
#define DO_NOT_SOCKSIFY
Packit Service 407539
#include <glibtop.h>
Packit Service 407539
#undef read
Packit Service 407539
#undef write
Packit Service 407539
#undef open
Packit Service 407539
#undef close
Packit Service 407539
#undef signal
Packit Service 407539
Packit Service 407539
/* Define the communication method between server and clients:
Packit Service 407539
 *   You can have either or both kinds of sockets, but you can't mix
Packit Service 407539
 *   sockets with sysv ipc
Packit Service 407539
 */
Packit Service 407539
Packit Service 407539
#define INTERNET_DOMAIN_SOCKETS
Packit Service 407539
#define UNIX_DOMAIN_SOCKETS
Packit Service 407539
Packit Service 407539
/*
Packit Service 407539
 * Define additional authentication protocols to be used. These methods will
Packit Service 407539
 * be tried before falling back to the default gnuserv protocol (based on
Packit Service 407539
 * the GNU_SECURE environment variable). Currently, only MIT-MAGIC-COOKIE-1
Packit Service 407539
 * is also supported.
Packit Service 407539
 *
Packit Service 407539
 * Comment out the next line(s) if you don't want to enable the
Packit Service 407539
 * appropriate authentication protocol.
Packit Service 407539
 */
Packit Service 407539
Packit Service 407539
#if defined (HAVE_XAUTH)
Packit Service 407539
#define AUTH_MAGIC_COOKIE
Packit Service 407539
#endif /* HAVE_XAUTH */
Packit Service 407539
Packit Service 407539
/*
Packit Service 407539
 * stuff related to supporting MIT-MAGIC-COOKIE-1
Packit Service 407539
 */
Packit Service 407539
Packit Service 407539
#if 0
Packit Service 407539
#define MCOOKIE_SCREEN "42980"   /* screen # to use as the gnuserv cookie */
Packit Service 407539
#endif
Packit Service 407539
#define MCOOKIE_NAME   "MAGIC-1" /* authentication protocol name */
Packit Service 407539
#define MCOOKIE_X_NAME "MIT-MAGIC-COOKIE-1"  /* as needed by X */
Packit Service 407539
Packit Service 407539
Packit Service 407539
#define DEFAUTH_NAME "GNU-SECURE"  /* name of default auth protocol */
Packit Service 407539
#define AUTH_TIMEOUT  15           /* # seconds to wait for auth data */
Packit Service 407539
#define AUTH_NAMESZ   15           /* max allows auth protocol name size */
Packit Service 407539
Packit Service 407539
Packit Service 407539
/*
Packit Service 407539
 * Pick a default communication scheme, if none was specified.
Packit Service 407539
 */
Packit Service 407539
Packit Service 407539
#if !defined(UNIX_DOMAIN_SOCKETS) && !defined(INTERNET_DOMAIN_SOCKETS)
Packit Service 407539
Packit Service 407539
/* BSD systems use Unix Domain sockets by default */
Packit Service 407539
Packit Service 407539
#ifdef BSD
Packit Service 407539
#define UNIX_DOMAIN_SOCKETS
Packit Service 407539
#endif
Packit Service 407539
Packit Service 407539
#endif /* No communication method pre-defined */
Packit Service 407539
Packit Service 407539
/*
Packit Service 407539
 * If you are using SYSV_IPC, you might want to make the buffer size bigger
Packit Service 407539
 * since it limits the size of requests and responses. Don't make it bigger
Packit Service 407539
 * than your system's max message size though (usually a couple of k) or else
Packit Service 407539
 * msgsend will start failing. For sockets, using the system BUFSIZ is usually
Packit Service 407539
 * what you want.
Packit Service 407539
 */
Packit Service 407539
Packit Service 407539
#if defined(INTERNET_DOMAIN_SOCKETS) || defined(UNIX_DOMAIN_SOCKETS)
Packit Service 407539
#include <sys/socket.h>
Packit Service 407539
#endif /* INTERNET_DOMAIN_SOCKETS || UNIX_DOMAIN_SOCKETS */
Packit Service 407539
Packit Service 407539
#ifdef INTERNET_DOMAIN_SOCKETS
Packit Service 407539
#include <netdb.h>
Packit Service 407539
#include <netinet/in.h>
Packit Service 407539
#include <arpa/inet.h>
Packit Service 407539
#define TABLE_SIZE 101		/* The number of entries in the hash table */
Packit Service 407539
#define HASH(host) host		/* Rather simplistic hash function */
Packit Service 407539
#define DEFAULT_PORT 21490	/* default port number to use is
Packit Service 407539
				 * DEFAULT_PORT + uid */
Packit Service 407539
#endif /* INTERNET_DOMAIN_SOCKETS */
Packit Service 407539
Packit Service 407539
#ifdef UNIX_DOMAIN_SOCKETS
Packit Service 407539
#include <sys/un.h>
Packit Service 407539
#define HIDE_UNIX_SOCKET	/* put the unix socket in a protected dir */
Packit Service 407539
#endif /* UNIX_DOMAIN_SOCKETS */
Packit Service 407539
Packit Service 407539
#define HOSTNAMSZ 255		/* max size of a hostname */
Packit Service 407539
#define REPLYSIZ 300		/* max size of reply from server to client */
Packit Service 407539
#undef FALSE
Packit Service 407539
#define FALSE 0
Packit Service 407539
#undef TRUE
Packit Service 407539
#define TRUE 1
Packit Service 407539
Packit Service 407539
/* The casts shut Sun's compiler up and are safe in the context these
Packit Service 407539
   are actually used. */
Packit Service 407539
#define max2(x,y) (((int) (x) > (int) (y)) ? (x) : (y))
Packit Service 407539
#define min2(x,y) (((int) (x) < (int) (y)) ? (x) : (y))
Packit Service 407539
Packit Service 407539
#ifndef _NFILE            /* rough guess at maximum number of open files */
Packit Service 407539
#define _NFILE 20
Packit Service 407539
#endif
Packit Service 407539
Packit Service 407539
#define EOT_STR "\004"
Packit Service 407539
#define EOT_CHR '\004'
Packit Service 407539
Packit Service 407539
/* connection types */
Packit Service 407539
#define CONN_UNIX     0
Packit Service 407539
#define CONN_INTERNET 1
Packit Service 407539
#define CONN_IPC      2
Packit Service 407539
Packit Service 407539
/* function declarations */
Packit Service 407539
int glibtop_make_connection (const char *hostarg, int portarg, int *s);
Packit Service 407539
Packit Service 407539
#ifdef INTERNET_DOMAIN_SOCKETS
Packit Service 407539
long glibtop_internet_addr (const char *host);
Packit Service 407539
#endif
Packit Service 407539