next up previous contents
Next: Änderung in der Datei Up: 4 Details der Implementierung Previous: Änderung in der Datei

Änderung in der Datei snmp_vars.c

  Die Datei snmp_vars.c enthält Funktionen für die Verwaltung der MIB-Variablen des UCD-Agenten, besonders die Funktion getStatPtr für den Zugriff auf die MIB-Variablen. Sie ist ein wichtiges Werkzeug der Funktionen aus dem vorigen Abschnitt. Diese Funktion wird von der Funktion mnm_getStatPtr ersetzt, welche zusätzlich noch auf die MIB-Variablen der Subagenten zugreifen kann. Sie und die Funktion getStatPtr[*] stehen in der Datei snmp_vars_in.c. getStatPtr wird verwendet, wenn intern im Hauptagenten auf MIB-Variablen zugegriffen werden muß. Da intern nur GET-Anfragen durchgeführt werden dürfen, stellt sie eine Einschränkung von mnm_getStatPtr dar. An folgender Stelle wird nun die Datei mit diesen Funktionen eingefügt:

...
#ifdef USING_VIEW_VARS_MODULE
extern int in_view __P((oid *, int, int));
#endif

int subtree_old_size() {
  return (sizeof(subtrees_old)/ sizeof(struct subtree));
}
...
Dies ergibt sich zu folgendem Progammcode:
...
#ifdef USING_VIEW_VARS_MODULE
extern int in_view __P((oid *, int, int));
#endif

#include "snmp_vars_in.c"

int subtree_old_size() {
  return (sizeof(subtrees_old)/ sizeof(struct subtree));
}
...
Analog zum vorigen Abschnitt wird die alte Funktion beseitigt.
u_char  *
getStatPtr(name, namelen, type, len, acl, exact, write_method, pi,
           noSuchObject)
wird zu
u_char  *
old_getStatPtr(name, namelen, type, len, acl, exact, write_method, pi,
           noSuchObject)



Copyright Munich Network Management Team