From 4f6bfa8090a2465d450fc3b3be1ae2d30b0e53c7 Mon Sep 17 00:00:00 2001 From: Roland McGrath Date: Sun, 18 Oct 1998 22:02:47 +0000 Subject: * nscd/nscd-client.h: New file, broken out of "nscd.h". * nscd/nscd.h: Move defns needed by clients to "nscd-client.h", and #include that. * nscd/Makefile (distribute): Add nscd-client.h --- nscd/Makefile | 3 +- nscd/nscd-client.h | 110 +++++++++++++++++++++++++++++++++++++++++++++++++++++ nscd/nscd.h | 87 +++--------------------------------------- 3 files changed, 117 insertions(+), 83 deletions(-) create mode 100644 nscd/nscd-client.h (limited to 'nscd') diff --git a/nscd/Makefile b/nscd/Makefile index ed5c0ba9c5..278bca6bbe 100644 --- a/nscd/Makefile +++ b/nscd/Makefile @@ -38,7 +38,8 @@ extra-objs := $(nscd-modules:=.o) endif -distribute := nscd.h dbg_log.h $(nscd-modules:=.c) TODO nscd.conf nscd.init \ +distribute := nscd.h nscd-client.h dbg_log.h \ + $(nscd-modules:=.c) TODO nscd.conf nscd.init \ nscd_proto.h include ../Rules diff --git a/nscd/nscd-client.h b/nscd/nscd-client.h new file mode 100644 index 0000000000..0c52f91c36 --- /dev/null +++ b/nscd/nscd-client.h @@ -0,0 +1,110 @@ +/* Copyright (c) 1998 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Thorsten Kukuk , 1998. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public License as + published by the Free Software Foundation; either version 2 of the + License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public + License along with the GNU C Library; see the file COPYING.LIB. If not, + write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, + Boston, MA 02111-1307, USA. */ + +/* This file defines everything that client code should need to + know to talk to the nscd daemon. */ + +#ifndef _NSCD_CLIENT_H +#define _NSCD_CLIENT_H 1 + +/* Version number of the daemon interface */ +#define NSCD_VERSION 2 + +/* Path of the file where the PID of the running system is stored. */ +#define _PATH_NSCDPID "/var/run/nscd.pid" + +/* Path for the Unix domain socket. */ +#define _PATH_NSCDSOCKET "/var/run/.nscd_socket" + +/* Path for the configuration file. */ +#define _PATH_NSCDCONF "/etc/nscd.conf" + + +/* Available services. */ +typedef enum +{ + GETPWBYNAME, + GETPWBYUID, + GETGRBYNAME, + GETGRBYGID, + GETHOSTBYNAME, + GETHOSTBYNAMEv6, + GETHOSTBYADDR, + GETHOSTBYADDRv6, + LASTDBREQ = GETHOSTBYADDRv6, + SHUTDOWN, /* Shut the server down. */ + GETSTAT, /* Get the server statistic. */ + LASTREQ, +} request_type; + + +/* Header common to all requests */ +typedef struct +{ + int version; /* Version number of the daemon interface. */ + request_type type; /* Service requested. */ + ssize_t key_len; /* Key length. */ +} request_header; + + +/* Structure sent in reply to password query. Note that this struct is + sent also if the service is disabled or there is no record found. */ +typedef struct +{ + int version; + int found; + ssize_t pw_name_len; + ssize_t pw_passwd_len; + uid_t pw_uid; + gid_t pw_gid; + ssize_t pw_gecos_len; + ssize_t pw_dir_len; + ssize_t pw_shell_len; +} pw_response_header; + + +/* Structure sent in reply to group query. Note that this struct is + sent also if the service is disabled or there is no record found. */ +typedef struct +{ + int version; + int found; + ssize_t gr_name_len; + ssize_t gr_passwd_len; + gid_t gr_gid; + ssize_t gr_mem_cnt; +} gr_response_header; + + +/* Structure sent in reply to host query. Note that this struct is + sent also if the service is disabled or there is no record found. */ +typedef struct +{ + int version; + int found; + ssize_t h_name_len; + ssize_t h_aliases_cnt; + int h_addrtype; + int h_length; + ssize_t h_addr_list_cnt; + int error; +} hst_response_header; + + +#endif /* nscd.h */ diff --git a/nscd/nscd.h b/nscd/nscd.h index bc8150aca1..9177235911 100644 --- a/nscd/nscd.h +++ b/nscd/nscd.h @@ -24,18 +24,10 @@ #include #include - -/* Version number of the daemon interface */ -#define NSCD_VERSION 2 - -/* Path of the file where the PID of the running system is stored. */ -#define _PATH_NSCDPID "/var/run/nscd.pid" - -/* Path for the Unix domain socket. */ -#define _PATH_NSCDSOCKET "/var/run/.nscd_socket" - -/* Path for the configuration file. */ -#define _PATH_NSCDCONF "/etc/nscd.conf" +/* The declarations for the request and response types are in the file + "nscd-client.h", which should contain everything needed by client + functions. */ +#include "nscd-client.h" /* Handle databases. */ @@ -48,24 +40,6 @@ typedef enum } dbtype; -/* Available services. */ -typedef enum -{ - GETPWBYNAME, - GETPWBYUID, - GETGRBYNAME, - GETGRBYGID, - GETHOSTBYNAME, - GETHOSTBYNAMEv6, - GETHOSTBYADDR, - GETHOSTBYADDRv6, - LASTDBREQ = GETHOSTBYADDRv6, - SHUTDOWN, /* Shut the server down. */ - GETSTAT, /* Get the server statistic. */ - LASTREQ, -} request_type; - - /* Structure for one hash table entry. */ struct hashentry { @@ -106,58 +80,6 @@ struct database }; -/* Header common to all requests */ -typedef struct -{ - int version; /* Version number of the daemon interface. */ - request_type type; /* Service requested. */ - ssize_t key_len; /* Key length. */ -} request_header; - - -/* Structure sent in reply to password query. Note that this struct is - sent also if the service is disabled or there is no record found. */ -typedef struct -{ - int version; - int found; - ssize_t pw_name_len; - ssize_t pw_passwd_len; - uid_t pw_uid; - gid_t pw_gid; - ssize_t pw_gecos_len; - ssize_t pw_dir_len; - ssize_t pw_shell_len; -} pw_response_header; - - -/* Structure sent in reply to group query. Note that this struct is - sent also if the service is disabled or there is no record found. */ -typedef struct -{ - int version; - int found; - ssize_t gr_name_len; - ssize_t gr_passwd_len; - gid_t gr_gid; - ssize_t gr_mem_cnt; -} gr_response_header; - - -/* Structure sent in reply to host query. Note that this struct is - sent also if the service is disabled or there is no record found. */ -typedef struct -{ - int version; - int found; - ssize_t h_name_len; - ssize_t h_aliases_cnt; - int h_addrtype; - int h_length; - ssize_t h_addr_list_cnt; - int error; -} hst_response_header; - /* Global variables. */ extern const char *dbnames[lastdb]; extern const char *serv2str[LASTREQ]; @@ -218,4 +140,5 @@ extern void addhstbynamev6 (struct database *db, int fd, request_header *req, extern void addhstbyaddrv6 (struct database *db, int fd, request_header *req, void *key); + #endif /* nscd.h */ -- cgit v1.2.3