| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192 |
- /** BEGIN COPYRIGHT BLOCK
- * Copyright (C) 2001 Sun Microsystems, Inc. Used by permission.
- * Copyright (C) 2005 Red Hat, Inc.
- * All rights reserved.
- *
- * License: GPL (version 3 or any later version).
- * See LICENSE for details.
- * END COPYRIGHT BLOCK **/
- #ifdef HAVE_CONFIG_H
- # include <config.h>
- #endif
- /********************************************************************
- *
- * agtmmap.h: Memory Map interface for SNMP sub-agent for
- * Directory Server stats (for UNIX environment).
- *
- * Revision History:
- * 07/22/97 Created Steve Ross
- *
- *
- *
- **********************************************************************/
-
- #include <sys/types.h>
- #include <sys/stat.h>
- #include <fcntl.h>
- #include <errno.h>
- #include "nspr.h"
- #ifdef __cplusplus
- extern "C" {
- #endif
- #define NUM_SNMP_INT_TBL_ROWS 5
- #define SNMP_FIELD_LENGTH 100
- extern int errno;
- #if !defined(_MAX_PATH)
- #define _MAX_PATH 256
- #endif
- #define AGT_STATS_EXTENSION ".stats"
- #define AGT_STATS_FILE "slapd" AGT_STATS_EXTENSION
- #define AGT_MJR_VERSION 1
- #define AGT_MNR_VERSION 0
- typedef enum { AGT_MAP_UNINIT = 0, AGT_MAP_READ, AGT_MAP_RDWR } agt_mmap_type;
- typedef struct
- {
- agt_mmap_type maptype;
- int fd;
- caddr_t fp;
- } agt_mmap_context_t;
- struct hdr_stats_t{
- /*
- * Header
- */
- int restarted; /* 1/0 = Yes/No */
- time_t startTime;
- time_t updateTime;
- char dsVersion[SNMP_FIELD_LENGTH];
- char dsName[SNMP_FIELD_LENGTH];
- char dsDescription[SNMP_FIELD_LENGTH];
- char dsOrganization[SNMP_FIELD_LENGTH];
- char dsLocation[SNMP_FIELD_LENGTH];
- char dsContact[SNMP_FIELD_LENGTH];
- };
- struct ops_stats_t{
- /*
- * Ops Table attributes
- */
- PRUint64 dsAnonymousBinds;
- PRUint64 dsUnAuthBinds;
- PRUint64 dsSimpleAuthBinds;
- PRUint64 dsStrongAuthBinds;
- PRUint64 dsBindSecurityErrors;
- PRUint64 dsInOps;
- PRUint64 dsReadOps;
- PRUint64 dsCompareOps;
- PRUint64 dsAddEntryOps;
- PRUint64 dsRemoveEntryOps;
- PRUint64 dsModifyEntryOps;
- PRUint64 dsModifyRDNOps;
- PRUint64 dsListOps;
- PRUint64 dsSearchOps;
- PRUint64 dsOneLevelSearchOps;
- PRUint64 dsWholeSubtreeSearchOps;
- PRUint64 dsReferrals;
- PRUint64 dsChainings;
- PRUint64 dsSecurityErrors;
- PRUint64 dsErrors;
- PRUint64 dsConnections; /* Number of currently connected clients */
- PRUint64 dsConnectionSeq; /* Monotonically increasing number bumped on each new conn est */
- PRUint64 dsMaxThreadsHit; /* Number of times a connection hit max threads */
- PRUint64 dsConnectionsInMaxThreads; /* current number of connections that are in max threads */
- PRUint64 dsBytesRecv; /* Count of bytes read from clients */
- PRUint64 dsBytesSent; /* Count of bytes sent to clients */
- PRUint64 dsEntriesReturned; /* Number of entries returned by the server */
- PRUint64 dsReferralsReturned; /* Number of entries returned by the server */
- };
- struct entries_stats_t
- {
- /*
- * Entries Table Attributes
- */
- PRUint64 dsMasterEntries;
- PRUint64 dsCopyEntries;
- PRUint64 dsCacheEntries;
- PRUint64 dsCacheHits;
- PRUint64 dsSlaveHits;
- };
- struct int_stats_t
- {
- /*
- * Interaction Table Attributes
- */
- PRUint32 dsIntIndex;
- char dsName[SNMP_FIELD_LENGTH];
- time_t dsTimeOfCreation;
- time_t dsTimeOfLastAttempt;
- time_t dsTimeOfLastSuccess;
- PRUint32 dsFailuresSinceLastSuccess;
- PRUint32 dsFailures;
- PRUint32 dsSuccesses;
- char dsURL[SNMP_FIELD_LENGTH];
- };
- struct agt_stats_t
- {
- struct hdr_stats_t hdr_stats;
- struct ops_stats_t ops_stats;
- struct entries_stats_t entries_stats;
- struct int_stats_t int_stats[NUM_SNMP_INT_TBL_ROWS];
- } ;
- extern agt_mmap_context_t mmap_tbl[];
- /****************************************************************************
- *
- * agt_mopen_stats () - open and Memory Map the stats file. agt_mclose_stats()
- * must be called prior to invoking agt_mopen_stats() again.
- * Inputs:
- * statsfile -> Name of stats file including full path or NULL.
- * If NULL, default ($NETSITE_ROOT/daemonstats.ldap) is assumed.
- * mode -> Must be one of O_RDONLY / O_RDWR.
- * O_RDWR creates the file if it does not exist.
- * Outputs:
- * hdl -> Opaque handle to the mapped file. Should be
- * passed to a subsequent agt_mupdate_stats() or
- * agt_mread_stats() or agt_mclose_stats() call.
- * Return Values:
- * Returns 0 on successfully doing the memmap or error
- * codes as defined in <errno.h>, otherwise.
- *
- ****************************************************************************/
- int agt_mopen_stats (char * statsfile, int mode, int *hdl);
- /****************************************************************************
- *
- * agt_mclose_stats () - Close the Memory Map'ed stats file.
- *
- *
- * Inputs:
- * hdl -> Opaque handle to the mapped file. Should have been
- * returned by an earlier call to agt_mopen_stats().
- *
- * Outputs: <NONE>
- *
- * Return Values: Returns 0 on normal completion or error codes
- * as defined in <errno.h>, otherwise.
- *
- ****************************************************************************/
- int agt_mclose_stats (int hdl);
- int agt_mread_stats(int hdl, struct hdr_stats_t *, struct ops_stats_t *,
- struct entries_stats_t *);
- #ifdef __cplusplus
- }
- #endif
|