nisshowcache.c revision 49e7ca4919cec3229f6fab9730bafc7cf24dab23
/*
* CDDL HEADER START
*
* The contents of this file are subject to the terms of the
* Common Development and Distribution License, Version 1.0 only
* (the "License"). You may not use this file except in compliance
* with the License.
*
* You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
* See the License for the specific language governing permissions
* and limitations under the License.
*
* When distributing Covered Code, include this CDDL HEADER in each
* file and include the License file at usr/src/OPENSOLARIS.LICENSE.
* If applicable, add the following below this CDDL HEADER, with the
* fields enclosed by brackets "[]" replaced with your own identifying
* information: Portions Copyright [yyyy] [name of copyright owner]
*
* CDDL HEADER END
*/
/*
* Copyright 2005 Sun Microsystems, Inc. All rights reserved.
* Use is subject to license terms.
*/
#pragma ident "%Z%%M% %I% %E% SMI"
/*
* Ported from
* "@(#)dump_cache.c 1.5 90/11/13 Copyr 1988 Sun Micro";
*
* This program dumps the contents of the NIS+ location cache
* to the standard output.
*/
#include <stdio.h>
#ifndef _sys_sem_h
/*
* This guard is defined only in 4.1 systems and is to
* be included only in 5.0 as it is not defined there.
*/
union semun {
int val;
};
#endif /* _sys_sem_h */
static void print_semaphores();
static void __nis_print_sems(int, int);
void
{
exit(1);
}
/* dump the context cache on the system */
int
{
extern int __nis_debuglevel;
int c;
int new__nis_debug_level = 0;
char *cptr; /* passed to __nis_CacheInit(); we don't use it */
__nis_debuglevel = 0;
/* get command line options */
switch (c) {
case 'v': /* verbose mode */
new__nis_debug_level = 3;
break;
case 's':
/*
* special format - prints information on one line.
* undocumented feature. see cache_entry.cc
*/
new__nis_debug_level = 6;
break;
case 'd':
/*
* another undocumented feature.
* prints the semaphores
*/
break;
case '?': /* error */
break;
}
}
}
if (new__nis_debug_level)
else
__nis_debuglevel = 1;
return (0);
}
#define NIS_SEM_R_KEY 100302
#define NIS_SEM_W_KEY 100303
#define NIS_W_NSEMS 2
#define NIS_R_NSEMS 1
static void
{
int sem_writer, sem_reader;
int semflg = 0;
printf("Could not open semaphores!\n");
return;
}
}
static void
{
int i;
/* cache_manager (writer) semaphores */
if (sem_writer != -1) {
printf("nis_print_sems: semctl GETALL failed");
return;
}
for (i = 0; i < NIS_W_NSEMS; i++)
}
/* reader */
if (sem_reader != -1) {
printf("nis_print_sems: semctl GETALL failed");
return;
}
for (i = 0; i < NIS_R_NSEMS; i++)
}
}