|
DataMuseum.dkPresents historical artifacts from the history of: DKUUG/EUUG Conference tapes |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about DKUUG/EUUG Conference tapes Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - downloadIndex: T o
Length: 41593 (0xa279) Types: TextFile Names: »objects.c«
└─⟦2d1937cfd⟧ Bits:30007241 EUUGD22: P.P 5.0 └─⟦e83f91978⟧ »EurOpenD22/isode/osimis-2.0.tar.Z« └─⟦d846658bd⟧ └─⟦this⟧ »osimis/sma/objects.c«
/* * Copyright (c) 1988 University College London * All rights reserved. * * Redistribution and use in source and binary forms are permitted * provided that the above copyright notice and this paragraph are * duplicated in all such forms and that any documentation, * advertising materials, and other materials related to such * distribution and use acknowledge that the software was developed * by the Department of Computer Science, University College London. * The name of the University may not be used to * endorse or promote products derived from this software without * specific prior written permission. * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. */ /* objects.c - the managed object class specific routines */ /* * By Simon Walton, October 1988 * Modified by George Pavlou, April 1990 */ #include <stdio.h> #include "isode/rosap.h" #include "msap.h" #include "objects.h" extern char * calloc(); extern time_t time(); extern OID oid_copy(); extern struct ManagedObject * findcomp(), * forccomp(); extern struct MO_ID * moid_alloc(); extern struct MO_ID * moid_cpy(); int init_X(); int del_X(); int init_ManagedSystem(); int del_ManagedSystem(); CMISerrors Get_ManagedSystem(); CMISerrors Set_ManagedSystem(); CMISerrors Add_ManagedSystem(); CMISerrors Remove_ManagedSystem(); int init_T_LayerSubsystem(); int del_T_LayerSubsystem(); int init_T_LayerEntity(); int del_T_LayerEntity(); CMISerrors Get_T_LayerEntity(); CMISerrors Set_T_LayerEntity(); CMISerrors Add_T_LayerEntity(); CMISerrors Remove_T_LayerEntity(); int init_T_EntityInvocation(); int del_T_EntityInvocation(); CMISerrors Get_T_EntityInvocation(); CMISerrors Set_T_EntityInvocation(); CMISerrors Add_T_EntityInvocation(); CMISerrors Remove_T_EntityInvocation(); int init_T_ConnectionEndpoint(); int del_T_ConnectionEndpoint(); CMISerrors Get_T_ConnectionEndpoint(); CMISerrors Set_T_ConnectionEndpoint(); CMISerrors Add_T_ConnectionEndpoint(); CMISerrors Remove_T_ConnectionEndpoint(); int init_C_Threshold(); int del_C_Threshold(); CMISerrors Get_C_Threshold(); CMISerrors Set_C_Threshold(); int init_G_Threshold(); int del_G_Threshold(); CMISerrors Get_G_Threshold(); CMISerrors Set_G_Threshold(); int init_ReportControl(); int del_ReportControl(); CMISerrors Get_ReportControl(); CMISerrors Add_ReportControl(); CMISerrors Remove_ReportControl(); int Make_Report1(); int Make_Report2(); int Make_Report3(); int Make_Report4(); void DefinedEvent_free(); struct MO_init_info { char * typeidstring; OID typeid; IFP initfunc; IFP delfunc; } MO_init_tab[] = { "2.37.1.2", NULLOID, init_X, del_X, "2.37.1.1.1", NULLOID, init_ManagedSystem, del_ManagedSystem, "2.37.1.2.1", NULLOID, init_T_LayerSubsystem, del_T_LayerSubsystem, "2.37.1.3.1", NULLOID, init_T_LayerEntity, del_T_LayerEntity, "2.37.1.4.1", NULLOID, init_T_EntityInvocation, del_T_EntityInvocation, "2.37.1.5.1", NULLOID, init_T_ConnectionEndpoint, del_T_ConnectionEndpoint, "2.37.3.1.1", NULLOID, init_C_Threshold, del_C_Threshold, "2.37.3.2.1", NULLOID, init_G_Threshold, del_G_Threshold, "2.37.3.3.1", NULLOID, init_ReportControl, del_ReportControl, NULLCP, NULLOID, NULLIFP, NULLIFP }; fill_MO_init() { register struct MO_init_info * p = MO_init_tab; for (; p -> typeidstring != NULLCP; p++) p -> typeid = oid_cpy(str2oid(p -> typeidstring)); } int (*idtype2moinit(idtype))() OID idtype; { register struct MO_init_info * p = MO_init_tab; for (; p -> typeidstring != NULLCP; p++) if (oid_cmp(p -> typeid, idtype) == 0) return (p -> initfunc); return (NULLIFP); } int (*idtype2model(idtype))() OID idtype; { register struct MO_init_info * p = MO_init_tab; for (; p -> typeidstring != NULLCP; p++) if (oid_cmp(p -> typeid, idtype) == 0) return (p -> delfunc); return (NULLIFP); } static C_Threshold * create_C_Threshold(mo, name) struct ManagedObject * mo; char * name; { static struct MO_ID threshid; struct ManagedObject * newthresh; if (threshid.rdntype.oid_nelem == 0) { if (oid_copy(str2oid("2.37.3.1.1"), &threshid.rdntype) == NULLOID) return (NULL); threshid.rdnval[0] = 1; } strncpy(threshid.rdnval+1, name, 9); threshid.rdnlen = strlen(name) + 1; if ( (newthresh = forccomp(mo, &threshid)) == NULL) return (NULL); return((C_Threshold*) newthresh -> attributes); } static G_Threshold * create_G_Threshold(mo, name) struct ManagedObject * mo; char * name; { static struct MO_ID threshid; struct ManagedObject * newthresh; if (threshid.rdntype.oid_nelem == 0) { if (oid_copy(str2oid("2.37.3.2.1"), &threshid.rdntype) == NULLOID) return (NULL); threshid.rdnval[0] = 1; } strncpy(threshid.rdnval+1, name, 9); threshid.rdnlen = strlen(name) + 1; if ( (newthresh = forccomp(mo, &threshid)) == NULL) return (NULL); return((G_Threshold*) newthresh -> attributes); } static ReportControl * create_ReportControl(mo, name) struct ManagedObject * mo; int name; { static struct MO_ID rci_id; struct ManagedObject * newrci; if (rci_id.rdntype.oid_nelem == 0) { if (oid_copy(str2oid("2.37.3.3.1"), &rci_id.rdntype) == NULLOID) return (NULL); rci_id.rdnlen = sizeof (int) + 1; } bcopy((char*) &name, &rci_id.rdnval[1], sizeof (int) ); if ( (newrci = forccomp(mo, &rci_id)) == NULL) return (NULL); return ((ReportControl*) newrci -> attributes); } static init_X(mo) struct ManagedObject * mo; { static OID MyClass = NULLOID; struct X * p; if (MyClass == NULLOID) MyClass = oid_cpy(str2oid("2.37.1.1")); if ( (oid_copy(MyClass, &mo -> Class)) == NULL) return (0); if ( (p = (struct X*)calloc(1, sizeof(*p)) ) == NULL) return (0); mo -> attributes = (caddr_t) p; p -> sheep.Value = 64; mo -> do_set = mo -> do_get = mo -> do_add = mo -> do_remove = mo -> do_action = NULLIFP; return (1); } static del_X(mo) struct ManagedObject * mo; { free(mo -> Class.oid_elements); free(mo -> attributes); return (0); } static init_ManagedSystem(mo) struct ManagedObject * mo; { static OID MyClass = NULLOID, event1 = NULLOID, event2 = NULLOID; ManagedSystem * at; time_t tim; ReportControl * rep; struct MO_ID * repname1, * repname2; if (MyClass == NULLOID) if ( ( MyClass = oid_cpy(str2oid("2.37.1.1")) ) == NULL) return (0); if ( ( oid_copy(MyClass, &mo -> Class) ) == NULL ) return (0); if ( ( at = (ManagedSystem*) calloc(1, sizeof (*at)) ) == NULL) return (0); tim = time((time_t*)0); tm2ut(localtime(&tim), &at -> systemCreationTime); if (event1 == NULLOID) if ( ( event1 = oid_cpy(str2oid("2.37.2.1")) ) == NULL) return (free(at), 0); if (oid_copy(event1, &at -> systemCreationEvent.eventype) == NULL) return (free(at), 0); if (event2 == NULLOID) if ( ( event2 = oid_cpy(str2oid("2.37.2.2")) ) == NULL) return (free(at), 0); if (oid_copy(event2, &at -> systemShutdownEvent.eventype) == NULL) return (free(at), 0); if ( (rep = create_ReportControl(mo, 1)) == NULL) return (free(at), 0); rep -> MakeEventReport = Make_Report1; if ( (repname2 = moid_alloc("2.37.3.3.1", NULLCP, 1)) == NULL) return (free(at), 0); if ( (repname1 = moid_alloc("2.37.1.1.1", NULLCP, -1)) == NULL) return (free(at), 0); repname1 -> Next = repname2; #ifdef DEBUG fprintf(stderr,"Report Control ID:\n"); moid_print(repname1); #endif at -> systemCreationEvent.rcis[0] = repname1; repname1 = moid_cpy(repname1); at -> systemShutdownEvent.rcis[0] = repname1; #ifdef DEBUG fprintf(stderr,"Report Control ID:\n"); moid_print(repname1); #endif mo -> do_get = (IFP) Get_ManagedSystem; mo -> do_set = (IFP) Set_ManagedSystem; mo -> do_add = (IFP) Add_ManagedSystem; mo -> do_remove = (IFP) Remove_ManagedSystem; mo -> do_action = NULLIFP; mo -> attributes = (caddr_t) at; return (1); } static del_ManagedSystem(mo) struct ManagedObject * mo; { struct ManagedSystem * at; free(mo -> Class.oid_elements); at = (ManagedSystem*) mo -> attributes; DefinedEvent_free(&at -> systemCreationEvent); DefinedEvent_free(&at -> systemShutdownEvent); free(mo -> attributes); return (0); } static CMISerrors Get_ManagedSystem(res, mo, id) PE * res; struct ManagedObject * mo; int id; { ManagedSystem * attribs = (ManagedSystem*) mo -> attributes; switch (id) { case 2: *res = utct2prim(&attribs -> systemCreationTime); break; case 3: if (build_MIB_DefinedEvent(res, 1, 0, NULLCP, &attribs->systemCreationEvent) == NOTOK) return (m_processingFailure); break; case 4: if (build_MIB_DefinedEvent(res, 1, 0, NULLCP, &attribs->systemShutdownEvent) == NOTOK) return (m_processingFailure); break; default: #ifdef DEBUG fprintf(stderr, "MIB GET: Bad Attribute Id: %d\n", id); #endif return (m_noSuchAttribute); } /* close switch */ return (m_noError); } static CMISerrors Set_ManagedSystem(res, mo, id, value) PE * res, value; struct ManagedObject * mo; int id; { ManagedSystem * attribs = (ManagedSystem*) mo -> attributes; switch (id) { case 2: #ifdef DEBUG fprintf(stderr, "MIB SET: Can't Set attribute: %d\n", id); #endif return (m_invalidOperation); case 3: if (parse_MIB_DefinedEvent(value, 0, NULLIP, NULLVP, &attribs -> systemCreationEvent) == NOTOK) return (m_invalidAttributeValue); *res = pe_cpy(value); break; case 4: if (parse_MIB_DefinedEvent(value, 0, NULLIP, NULLVP, &attribs -> systemShutdownEvent) == NOTOK) return (m_invalidAttributeValue); *res = pe_cpy(value); break; default: #ifdef DEBUG fprintf(stderr, "MIB SET: Bad Attribute Id: %d\n", id); #endif return (m_noSuchAttribute); } /* close switch */ return (m_noError); } static CMISerrors Add_ManagedSystem(res, mo, id, value) PE * res, value; struct ManagedObject * mo; int id; { ManagedSystem * attribs = (ManagedSystem*) mo -> attributes; switch (id) { case 2: #ifdef DEBUG fprintf(stderr, "MIB REM: Can't Set attribute: %d\n", id); #endif return (m_invalidOperation); case 3: case 4: { DefinedEvent * Ev; int i; struct MO_ID * newrci; DN newrcidn; Ev = (id == 3) ? &attribs -> systemCreationEvent : &attribs -> systemShutdownEvent; if ( decode_IF_DistinguishedName(value, 0, NULLIP, NULLVP, &newrcidn) == NOTOK) return (m_invalidAttributeValue); newrci = dn2moid(newrcidn); dn_free(newrcidn); for(i = 0; i < 3 && Ev -> rcis[i]; i++) if (moid_cmp(newrci, Ev -> rcis[i])) { moid_free(newrci); (void) build_MIB_DefinedEvent(res, 1, 0, NULLCP, Ev); return (m_noError); } if (i < 3) Ev -> rcis[i] = newrci; (void) build_MIB_DefinedEvent(res, 1, 0, NULLCP, Ev); } break; default: #ifdef DEBUG fprintf(stderr, "MIB ADD: Bad Attribute Id: %d\n", id); #endif return (m_noSuchAttribute); } /* close switch */ return (m_noError); } static CMISerrors Remove_ManagedSystem(res, mo, id, value) PE * res, value; struct ManagedObject * mo; int id; { ManagedSystem * attribs = (ManagedSystem*) mo -> attributes; switch (id) { case 2: #ifdef DEBUG fprintf(stderr, "MIB REM: Can't Set attribute: %d\n", id); #endif return (m_invalidOperation); case 3: case 4: { DefinedEvent * Ev; int i,f,t; struct MO_ID * newrci; DN newrcidn; Ev = (id == 3) ? &attribs -> systemCreationEvent : &attribs -> systemShutdownEvent; if ( decode_IF_DistinguishedName(value, 0, NULLIP, NULLVP, &newrcidn) == NOTOK) return (m_invalidAttributeValue); newrci = dn2moid(newrcidn); dn_free(newrcidn); for(i = 0; i < 3 && Ev -> rcis[i]; i++) if (moid_cmp(newrci, Ev -> rcis[i])) { moid_free(Ev -> rcis[i]); Ev -> rcis[i] = NULL; moid_free(newrci); break; } for(f = t = 0; f < 3; f++) if (Ev -> rcis[f]) { Ev -> rcis[t] = Ev -> rcis[f]; if ( f != t++ ) Ev -> rcis[f] = NULL; } (void) build_MIB_DefinedEvent(res, 1, 0, NULLCP, Ev); } break; default: #ifdef DEBUG fprintf(stderr, "MIB REM: Bad Attribute Id: %d\n", id); #endif return (m_noSuchAttribute); } /* close switch */ return (m_noError); } static init_T_LayerSubsystem(mo) struct ManagedObject * mo; { static OID MyClass = NULLOID; T_LayerSubsystem * at; if (MyClass == NULLOID) if ( ( MyClass = oid_cpy(str2oid("2.37.1.2")) ) == NULL) return (0); if ( ( oid_copy(MyClass, &mo -> Class) ) == NULL ) return (0); if ( ( at = (T_LayerSubsystem*) calloc(1, sizeof (*at)) ) == NULL) return (0); mo -> do_get = mo -> do_set = mo -> do_add = mo -> do_remove = mo -> do_action = NULLIFP; mo -> attributes = (caddr_t) at; return (1); } static del_T_LayerSubsystem(mo) struct ManagedObject * mo; { free(mo -> Class.oid_elements); free(mo -> attributes); return (0); } static init_T_LayerEntity(mo) struct ManagedObject * mo; { static OID MyClass = NULLOID; T_LayerEntity * at; ReportControl * rep; if (MyClass == NULLOID) if ( ( MyClass = oid_cpy(str2oid("2.37.1.3")) ) == NULL) return (0); if ( ( oid_copy(MyClass, &mo -> Class) ) == NULL ) return (0); if ( ( at = (T_LayerEntity*) calloc(1, sizeof (*at)) ) == NULL) return (0); if ( (rep = create_ReportControl(mo, 2)) == NULL) return(free(at), 0); rep -> MakeEventReport = Make_Report2; if ( (rep = create_ReportControl(mo, 3)) == NULL) return(free(at), 0); rep -> MakeEventReport = Make_Report3; if ( (rep = create_ReportControl(mo, 4)) == NULL) return(free(at), 0); rep -> MakeEventReport = Make_Report4; mo -> do_get = (IFP) Get_T_LayerEntity; mo -> do_set = NULLIFP; mo -> do_add = NULLIFP; mo -> do_remove = NULLIFP; mo -> do_action = NULLIFP; mo -> attributes = (caddr_t) at; return (1); } static del_T_LayerEntity(mo) struct ManagedObject * mo; { struct T_LayerEntity * at; struct TSAPaddr ** t; free(mo -> Class.oid_elements); at = (T_LayerEntity*) mo -> attributes; for(t = at -> supportedTSAPs; t < &at -> supportedTSAPs[TLE_MAXTSAPS]; t++) if (*t) free(*t); if (at -> boundNSAP) free(at -> boundNSAP); free(at); return (0); } static CMISerrors Get_T_LayerEntity(res, mo, id) PE * res; struct ManagedObject * mo; int id; { T_LayerEntity * attribs = (T_LayerEntity*) mo -> attributes; Counter * c = NULL; Gauge * g = NULL; switch (id) { case 2: if (build_MIB_NAddress(res, 1, 0, NULLCP, attribs -> boundNSAP) == NOTOK) return (m_processingFailure); break; case 3: if (build_MIB_TAddressList(res, 1, TLE_MAXTSAPS, NULLCP, attribs -> supportedTSAPs) == NOTOK) return (m_processingFailure); break; case 4: g = &attribs -> activeEntityInvocations; break; case 5: g = &attribs -> activeConnections; break; case 6: c = &attribs -> previousConnections; break; case 7: c = &attribs -> crTPDUSuccessfulIn; break; case 8: c = &attribs -> crTPDUSuccessfulOut; break; case 9: c = &attribs -> crTPDUUnsuccessfulIn; break; case 10: c = &attribs -> crTPDUUnsuccessfulOut; break; case 11: c = &attribs -> crTPDUCongestion; break; case 12: c = &attribs -> crTPDUConfigurationError; break; case 13: c = &attribs -> tProtocolError; break; case 14: c = &attribs -> tPDUChecksumError; break; case 15: c = &attribs -> numberTPDUSent; break; case 16: c = &attribs -> numberTPDUReceived; break; case 17: c = &attribs -> numberTPDURetransmitted; break; default: #ifdef DEBUG fprintf(stderr, "MIB GET: Bad Attribute Id: %d\n", id); #endif return (m_noSuchAttribute); } /* close switch */ if (g) if (build_MIB_Gauge(res, 1, 0, NULLCP, g) == NOTOK) return (m_processingFailure); if (c) if (build_MIB_Counter(res, 1, 0, NULLCP, c) == NOTOK) return (m_processingFailure); return (m_noError); } static init_T_EntityInvocation(mo) struct ManagedObject * mo; { static OID MyClass = NULLOID, event1 = NULLOID, event2 = NULLOID, event3 = NULLOID, event4 = NULLOID, event5 = NULLOID, event6 = NULLOID, event7 = NULLOID, event8 = NULLOID; time_t tim; T_EntityInvocation * at; C_Threshold * thresh; static struct MO_ID * repname1, * repname2, * repname3, * repname4; if (MyClass == NULLOID) if ( ( MyClass = oid_cpy(str2oid("2.37.1.4")) ) == NULL) return (0); if ( ( oid_copy(MyClass, &mo -> Class) ) == NULL ) return (0); if ( ( at = (T_EntityInvocation*) calloc(1, sizeof (*at)) ) == NULL) return (0); tim = time((time_t*)0); tm2ut(localtime(&tim), &at -> creationTime); if (event8 == NULLOID) if ( (event1 = oid_cpy(str2oid("2.37.2.3")) ) == NULLOID || (event2 = oid_cpy(str2oid("2.37.2.4")) ) == NULLOID || (event3 = oid_cpy(str2oid("2.37.2.5")) ) == NULLOID || (event4 = oid_cpy(str2oid("2.37.2.6")) ) == NULLOID || (event5 = oid_cpy(str2oid("2.37.2.7")) ) == NULLOID || (event6 = oid_cpy(str2oid("2.37.2.8")) ) == NULLOID || (event7 = oid_cpy(str2oid("2.37.2.9")) ) == NULLOID || (event8 = oid_cpy(str2oid("2.37.2.10")) ) == NULLOID ) return (free(at), 0); if (oid_copy(event1, &at -> crTPDUUnsuccessInThldEvent.eventype) == NULL) return (free(at), 0); if (oid_copy(event2, &at -> crTPDUUnsuccessOutThldEvent.eventype) == NULL) return (free(at), 0); if (oid_copy(event3, &at -> crTPDUCongestionThldEvent.eventype) == NULL) return (free(at), 0); if (oid_copy(event4, &at -> crTPDUConfigErrorThldEvent.eventype) == NULL) return (free(at), 0); if (oid_copy(event5, &at -> tProtocolErrorThldEvent.eventype) == NULL) return (free(at), 0); if (oid_copy(event6, &at -> tPDUChecksumErrorThldEvent.eventype) == NULL) return (free(at), 0); if (oid_copy(event7, &at -> tEntinvCreationEvent.eventype) == NULL) return (free(at), 0); if (oid_copy(event8, &at -> tEntinvShutdownEvent.eventype) == NULL) return (free(at), 0); if ( (thresh = create_C_Threshold(mo, "CrFailIn")) == NULL) return (free(at), 0); at -> crTPDUUnsuccessfulIn.Threshold = thresh; thresh -> triggers[0] = &at -> crTPDUUnsuccessInThldEvent; if ( (thresh = create_C_Threshold(mo, "CrFailOut")) == NULL) return (free(at), 0); at -> crTPDUUnsuccessfulOut.Threshold = thresh; thresh -> triggers[0] = &at -> crTPDUUnsuccessOutThldEvent; if ( (thresh = create_C_Threshold(mo, "CrCongst")) == NULL) return (free(at), 0); at -> crTPDUCongestion.Threshold = thresh; thresh -> triggers[0] = &at -> crTPDUCongestionThldEvent; if ( (thresh = create_C_Threshold(mo, "CrConfErr")) == NULL) return (free(at), 0); at -> crTPDUConfigurationError.Threshold = thresh; thresh -> triggers[0] = &at -> crTPDUConfigErrorThldEvent; if ( (thresh = create_C_Threshold(mo, "ProtErr")) == NULL) return (free(at), 0); at -> tProtocolError.Threshold = thresh; thresh -> triggers[0] = &at -> tProtocolErrorThldEvent; if ( (thresh = create_C_Threshold(mo, "CkSumErr")) == NULL) return (free(at), 0); at -> tPDUChecksumError.Threshold = thresh; thresh -> triggers[0] = &at -> tPDUChecksumErrorThldEvent; if (repname1 == NULL) { if ( (repname4 = moid_alloc("2.37.3.3.1", NULLCP, 2)) == NULL) return (free(at), 0); if ( (repname3 = moid_alloc("2.37.1.3.1", "isode")) == NULL) return (free(at), 0); repname3 -> Next = repname4; if ( (repname2 = moid_alloc("2.37.1.2.1", NULLCP, -1)) == NULL) return (free(at), 0); repname2 -> Next = repname3; if ( (repname1 = moid_alloc("2.37.1.1.1", NULLCP, -1)) == NULL) return (free(at), 0); repname1 -> Next = repname2; } if ( (at -> tEntinvCreationEvent.rcis[0] = moid_cpy(repname1)) == NULL ) return (free(at), 0); if ( (at -> tEntinvShutdownEvent.rcis[0] = moid_cpy(repname1)) == NULL ) return (free(at), 0); if ( (at -> crTPDUUnsuccessInThldEvent.rcis[0] = moid_cpy(repname1)) == NULL ) return (free(at), 0); if ( (at -> crTPDUUnsuccessOutThldEvent.rcis[0] = moid_cpy(repname1)) ==NULL ) return (free(at), 0); if ( (at -> crTPDUConfigErrorThldEvent.rcis[0] = moid_cpy(repname1)) == NULL ) return (free(at), 0); if ( (at -> tProtocolErrorThldEvent.rcis[0] = moid_cpy(repname1)) == NULL ) return (free(at), 0); if ( (at -> tPDUChecksumErrorThldEvent.rcis[0] = moid_cpy(repname1)) == NULL ) return (free(at), 0); #ifdef DEBUG fprintf(stderr,"Report Control ID:\n"); moid_print(repname1); #endif mo -> do_get = (IFP) Get_T_EntityInvocation; mo -> do_set = (IFP) Set_T_EntityInvocation; mo -> do_add = (IFP) Add_T_EntityInvocation; mo -> do_remove = (IFP) Remove_T_EntityInvocation; mo -> do_action = NULLIFP; mo -> attributes = (caddr_t) at; return (1); } static del_T_EntityInvocation(mo) struct ManagedObject * mo; { struct T_EntityInvocation * at; free(mo -> Class.oid_elements); at = (T_EntityInvocation*) mo -> attributes; DefinedEvent_free(&at -> crTPDUUnsuccessInThldEvent); DefinedEvent_free(&at -> crTPDUUnsuccessOutThldEvent); DefinedEvent_free(&at -> crTPDUCongestionThldEvent); DefinedEvent_free(&at -> crTPDUConfigErrorThldEvent); DefinedEvent_free(&at -> tProtocolErrorThldEvent); DefinedEvent_free(&at -> tPDUChecksumErrorThldEvent); DefinedEvent_free(&at -> tEntinvCreationEvent); DefinedEvent_free(&at -> tEntinvShutdownEvent); free(at); return (0); } static CMISerrors Get_T_EntityInvocation(res, mo, id) PE * res; struct ManagedObject * mo; int id; { T_EntityInvocation * attribs = (T_EntityInvocation*) mo -> attributes; Counter * c = NULL; Gauge * g = NULL; DefinedEvent * e = NULL; switch (id) { case 2: *res = utct2prim(&attribs -> creationTime); break; case 3: g = &attribs -> activeConnections; break; case 4: c = &attribs -> crTPDUSuccessfulIn; break; case 5: c = &attribs -> crTPDUSuccessfulOut; break; case 6: c = &attribs -> crTPDUUnsuccessfulIn; break; case 7: c = &attribs -> crTPDUUnsuccessfulOut; break; case 8: c = &attribs -> crTPDUCongestion; break; case 9: c = &attribs -> crTPDUConfigurationError; break; case 10: c = &attribs -> tProtocolError; break; case 11: c = &attribs -> tPDUChecksumError; break; case 12: e = &attribs -> crTPDUUnsuccessInThldEvent; break; case 13: e = &attribs -> crTPDUUnsuccessOutThldEvent; break; case 14: e = &attribs -> crTPDUCongestionThldEvent; break; case 15: e = &attribs -> crTPDUConfigErrorThldEvent; break; case 16: e = &attribs -> tProtocolErrorThldEvent; break; case 17: e = &attribs -> tPDUChecksumErrorThldEvent; break; case 18: e = &attribs -> tEntinvCreationEvent; break; case 19: e = &attribs -> tEntinvShutdownEvent; break; default: #ifdef DEBUG fprintf(stderr, "MIB GET: Bad Attribute Id: %d\n", id); #endif return (m_noSuchAttribute); } /* close switch */ if (g) if (build_MIB_Gauge(res, 1, 0, NULLCP, g) == NOTOK) return (m_processingFailure); if (c) if (build_MIB_Counter(res, 1, 0, NULLCP, c) == NOTOK) return (m_processingFailure); if (e) if (build_MIB_DefinedEvent(res, 1, 0, NULLCP, e) == NOTOK) return (m_processingFailure); return (m_noError); } static CMISerrors Set_T_EntityInvocation(res, mo, id, value) PE * res, value; struct ManagedObject * mo; int id; { T_EntityInvocation * attribs = (T_EntityInvocation*) mo -> attributes; DefinedEvent * e = NULL; if (id >= 2 && id <=11) { #ifdef DEBUG fprintf(stderr, "MIB SET: Can't Set attribute: %d\n", id); #endif return (m_invalidOperation); } switch(id) { case 12: e = &attribs -> crTPDUUnsuccessInThldEvent; break; case 13: e = &attribs -> crTPDUUnsuccessOutThldEvent; break; case 14: e = &attribs -> crTPDUCongestionThldEvent; break; case 15: e = &attribs -> crTPDUConfigErrorThldEvent; break; case 16: e = &attribs -> tProtocolErrorThldEvent; break; case 17: e = &attribs -> tPDUChecksumErrorThldEvent; break; case 18: e = &attribs -> tEntinvCreationEvent; break; case 19: e = &attribs -> tEntinvShutdownEvent; break; default: #ifdef DEBUG fprintf(stderr, "MIB SET: Bad Attribute Id: %d\n", id); #endif return (m_noSuchAttribute); } /* close switch */ if (e) { if (parse_MIB_DefinedEvent(value, 0, NULLIP, NULLVP, e) == NOTOK) return (m_invalidAttributeValue); *res = pe_cpy(value); } return (m_noError); } static CMISerrors Add_T_EntityInvocation(res, mo, id, value) PE * res, value; struct ManagedObject * mo; int id; { T_EntityInvocation * attribs = (T_EntityInvocation*) mo -> attributes; DefinedEvent * e = NULL; struct MO_ID * newrci; DN newrcidn; int i; if (id >= 2 && id <=11) { #ifdef DEBUG fprintf(stderr, "MIB ADD: Can't Set attribute: %d\n", id); #endif return (m_invalidOperation); } switch(id) { case 12: e = &attribs -> crTPDUUnsuccessInThldEvent; break; case 13: e = &attribs -> crTPDUUnsuccessOutThldEvent; break; case 14: e = &attribs -> crTPDUCongestionThldEvent; break; case 15: e = &attribs -> crTPDUConfigErrorThldEvent; break; case 16: e = &attribs -> tProtocolErrorThldEvent; break; case 17: e = &attribs -> tPDUChecksumErrorThldEvent; break; case 18: e = &attribs -> tEntinvCreationEvent; break; case 19: e = &attribs -> tEntinvShutdownEvent; break; default: #ifdef DEBUG fprintf(stderr, "MIB ADD: Bad Attribute Id: %d\n", id); #endif return (m_noSuchAttribute); } /* close switch */ if ( decode_IF_DistinguishedName(value, 0, NULLIP, NULLVP, &newrcidn) == NOTOK) return (m_invalidAttributeValue); newrci = dn2moid(newrcidn); dn_free(newrcidn); for(i = 0; i < 3 && e -> rcis[i]; i++) if (moid_cmp(newrci, e -> rcis[i])) { moid_free(newrci); (void) build_MIB_DefinedEvent(res, 1, 0, NULLCP, e); return (m_noError); } if (i < 3) e -> rcis[i] = newrci; (void) build_MIB_DefinedEvent(res, 1, 0, NULLCP, e); return (m_noError); } static CMISerrors Remove_T_EntityInvocation(res, mo, id, value) PE * res, value; struct ManagedObject * mo; int id; { T_EntityInvocation * attribs = (T_EntityInvocation*) mo -> attributes; DefinedEvent * e = NULL; struct MO_ID * newrci; DN newrcidn; int i,f,t; if (id >= 2 && id <=11) { #ifdef DEBUG fprintf(stderr, "MIB REM: Can't Set attribute: %d\n", id); #endif return (m_invalidOperation); } switch(id) { case 12: e = &attribs -> crTPDUUnsuccessInThldEvent; break; case 13: e = &attribs -> crTPDUUnsuccessOutThldEvent; break; case 14: e = &attribs -> crTPDUCongestionThldEvent; break; case 15: e = &attribs -> crTPDUConfigErrorThldEvent; break; case 16: e = &attribs -> tProtocolErrorThldEvent; break; case 17: e = &attribs -> tPDUChecksumErrorThldEvent; break; case 18: e = &attribs -> tEntinvCreationEvent; break; case 19: e = &attribs -> tEntinvShutdownEvent; break; default: #ifdef DEBUG fprintf(stderr, "MIB REM: Bad Attribute Id: %d\n", id); #endif return (m_noSuchAttribute); } /* close switch */ if ( decode_IF_DistinguishedName(value, 0, NULLIP, NULLVP, &newrcidn) == NOTOK) return (m_invalidAttributeValue); newrci = dn2moid(newrcidn); dn_free(newrcidn); for(i = 0; i < 3 && e -> rcis[i]; i++) if (moid_cmp(newrci, e -> rcis[i])) { moid_free(e -> rcis[i]); e -> rcis[i] = NULL; moid_free(newrci); break; } for(f = t = 0; f < 3; f++) if (e -> rcis[f]) { e -> rcis[t] = e -> rcis[f]; if ( f != t++ ) e -> rcis[f] = NULL; } (void) build_MIB_DefinedEvent(res, 1, 0, NULLCP, e); return (m_noError); } init_T_ConnectionEndpoint(mo) struct ManagedObject * mo; { static OID MyClass = NULLOID, event1 = NULLOID, event2 = NULLOID, event3 = NULLOID, event4 = NULLOID, event5 = NULLOID; time_t tim; T_ConnectionEndpoint * at; C_Threshold * thresh; struct MO_ID * repname1, * repname2, * repname3, * repname4; static MO_ID * rep3name, * rep4name; if ( ( at = (T_ConnectionEndpoint*) calloc(1, sizeof (*at)) ) == NULL) return (0); if (MyClass == NULLOID) if ( (MyClass = oid_cpy(str2oid("2.37.1.5")) ) == NULL || (event1 = oid_cpy(str2oid("2.37.2.11")) ) == NULL || (event2 = oid_cpy(str2oid("2.37.2.12")) ) == NULL || (event3 = oid_cpy(str2oid("2.37.2.13")) ) == NULL || (event4 = oid_cpy(str2oid("2.37.2.14")) ) == NULL || (event5 = oid_cpy(str2oid("2.37.2.15")) ) == NULL ) return (MyClass = NULLOID, 0); if ( oid_copy(MyClass, &mo -> Class) == NULLOID || oid_copy(event1, &at -> numberTPDUSentThldEvent.eventype) == NULLOID || oid_copy(event2, &at ->numberTPDUReceivedThldEvent.eventype) == NULLOID || oid_copy(event3, &at -> numberTPDURetransThldEvent.eventype) == NULLOID || oid_copy(event4, &at -> tCeptCreationEvent.eventype) == NULLOID || oid_copy(event5, &at -> tCeptShutdownEvent.eventype) == NULLOID ) return (free(at), 0); if ( (thresh = create_C_Threshold(mo, "PDUSent")) == NULL) return (free(at), 0); at -> numberTPDUSent.Threshold = thresh; thresh -> triggers[0] = &at -> numberTPDUSentThldEvent; thresh -> comparisonlevel[0] = 10; /* report every 10 PDUS */ thresh -> offset = 10; thresh -> OnOff = 1; if ( (thresh = create_C_Threshold(mo, "PDURecvd")) == NULL) return (free(at), 0); at -> numberTPDUReceived.Threshold = thresh; thresh -> triggers[0] = &at -> numberTPDUReceivedThldEvent; thresh -> comparisonlevel[0] = 10; /* report every 10 PDUS */ thresh -> offset = 10; thresh -> OnOff = 1; if ( (thresh = create_C_Threshold(mo, "PDUReSent")) == NULL) return (free(at), 0); at -> numberTPDURetransmitted.Threshold = thresh; thresh -> triggers[0] = &at -> numberTPDURetransThldEvent; if (rep3name == NULL || rep4name == NULL) { if ( (repname4 = moid_alloc("2.37.3.3.1", NULLCP, 3)) == NULL) return (free(at), 0); if ( (repname3 = moid_alloc("2.37.1.3.1", "isode")) == NULL) return (free(at), 0); repname3 -> Next = repname4; if ( (repname2 = moid_alloc("2.37.1.2.1", NULLCP, -1)) == NULL) return (free(at), 0); repname2 -> Next = repname3; if ( (repname1 = moid_alloc("2.37.1.1.1", NULLCP, -1)) == NULL) return (free(at), 0); repname1 -> Next = repname2; rep3name = moid_cpy(repname1); moid_free(repname4); if ( (repname4 = moid_alloc("2.37.3.3.1", NULLCP, 4)) == NULL) return (free(at), 0); repname3 -> Next = repname4; rep4name = repname1; } #ifdef DEBUG fprintf(stderr,"T-ConEndp - Report Control IDs:\n"); moid_print(rep3name); fprintf(stderr, " and\n"); moid_print(rep4name); #endif if ( (at -> tCeptCreationEvent.rcis[0] = moid_cpy(rep3name)) == NULL) return (free(at), 0); if ( (at -> tCeptShutdownEvent.rcis[0] = moid_cpy(rep3name)) == NULL) return (free(at), 0); if ( (at -> tCeptCreationEvent.rcis[1] = moid_cpy(rep4name)) == NULL) return (free(at), 0); if ( (at -> tCeptShutdownEvent.rcis[1] = moid_cpy(rep4name)) == NULL) return (free(at), 0); if ( (at -> numberTPDUSentThldEvent.rcis[0] = moid_cpy(rep3name)) == NULL) return (free(at), 0); if ( (at -> numberTPDUReceivedThldEvent.rcis[0] = moid_cpy(rep3name)) == NULL) return (free(at), 0); if ( (at -> numberTPDURetransThldEvent.rcis[0] = moid_cpy(rep3name)) == NULL) return (free(at), 0); tim = time((time_t*)0); tm2ut(localtime(&tim), &at -> creationTime); mo -> do_get = (IFP) Get_T_ConnectionEndpoint; mo -> do_set = NULLIFP; mo -> do_add = NULLIFP; mo -> do_remove = NULLIFP; mo -> do_action = NULLIFP; mo -> attributes = (caddr_t) at; return (1); } static del_T_ConnectionEndpoint(mo) struct ManagedObject * mo; { struct T_ConnectionEndpoint * at; free(mo -> Class.oid_elements); at = (T_ConnectionEndpoint*)mo -> attributes; if (at -> sourceAddress) free(at -> sourceAddress); if (at -> destinationAddress) free(at -> destinationAddress); DefinedEvent_free(&at -> numberTPDUSentThldEvent); DefinedEvent_free(&at -> numberTPDUReceivedThldEvent); DefinedEvent_free(&at -> numberTPDURetransThldEvent); DefinedEvent_free(&at -> tCeptCreationEvent); DefinedEvent_free(&at -> tCeptShutdownEvent); free(at); return (0); } static CMISerrors Get_T_ConnectionEndpoint(res, mo, id) PE * res; struct ManagedObject * mo; int id; { T_ConnectionEndpoint * attribs = (T_ConnectionEndpoint*) mo -> attributes; Counter * c = NULL; Gauge * g = NULL; DefinedEvent * e = NULL; switch (id) { case 2: *res = utct2prim(&attribs -> creationTime); break; case 3: case 4: if ( build_MIB_TAddress(res, 1, 0, NULLCP, id == 3 ? attribs -> sourceAddress : attribs -> destinationAddress) == NOTOK) return (m_processingFailure); break; case 5: c = &attribs -> numberTPDUSent; break; case 6: c = &attribs -> numberTPDUReceived; break; case 7: c = &attribs -> numberTPDURetransmitted; break; case 8: c = &attribs -> numberBytesSent; break; case 9: c = &attribs -> numberBytesReceived; break; case 10: c = &attribs -> numberBytesRetransmitted; break; case 11: if (build_MIB_T__ProtocolState(res, 1, 0, NULLCP, (int*)&attribs -> tProtocol) == NOTOK) return (m_processingFailure); break; case 12: e = &attribs -> numberTPDUSentThldEvent; break; case 13: e = &attribs -> numberTPDUReceivedThldEvent; break; case 14: e = &attribs -> numberTPDURetransThldEvent; break; case 15: e = &attribs -> tCeptCreationEvent; break; case 16: e = &attribs -> tCeptShutdownEvent; break; default: #ifdef DEBUG fprintf(stderr, "MIB GET: Bad Attribute Id: %d\n", id); #endif return (m_noSuchAttribute); } /* close switch */ if (g) if (build_MIB_Gauge(res, 1, 0, NULLCP, g) == NOTOK) return (m_processingFailure); if (c) if (build_MIB_Counter(res, 1, 0, NULLCP, c) == NOTOK) return (m_processingFailure); if (e) if (build_MIB_DefinedEvent(res, 1, 0, NULLCP, e) == NOTOK) return (m_processingFailure); return (m_noError); } static init_C_Threshold(mo) struct ManagedObject * mo; { static OID MyClass = NULLOID; C_Threshold * at; int i; if (MyClass == NULLOID) if ( ( MyClass = oid_cpy(str2oid("2.37.3.1")) ) == NULL ) return (0); if ( ( oid_copy(MyClass, &mo -> Class) ) == NULL ) return (0); if ( ( at = (C_Threshold*) calloc(1, sizeof (*at)) ) == NULL) return (0); for(i = 0; i < 10; i++) at -> comparisonlevel[i] = COMP_LEVEL_FREE; mo -> do_get = (IFP) Get_C_Threshold; mo -> do_set = (IFP) Set_C_Threshold; mo -> do_add = NULLIFP; mo -> do_remove = NULLIFP; mo -> do_action = NULLIFP; mo -> attributes = (caddr_t) at; return (1); } static del_C_Threshold(mo) struct ManagedObject * mo; { free(mo -> Class.oid_elements); free(mo -> attributes); return (0); } static CMISerrors Get_C_Threshold(res, mo, id) PE * res; struct ManagedObject * mo; int id; { C_Threshold * attribs = (C_Threshold*) mo -> attributes; switch (id) { case 2: if (build_MIB_ComparisonLevels(res, 1, 0, NULLCP, &attribs -> Levels ) == NOTOK) return (m_processingFailure); break; case 3: if ( (*res = int2prim(attribs ->offset)) == NULLPE) return (m_processingFailure); break; case 4: if ( (*res = bool2prim(attribs ->OnOff)) == NULLPE) return (m_processingFailure); break; default: #ifdef DEBUG fprintf(stderr, "MIB GET: Bad Attribute Id: %d\n", id); #endif return (m_noSuchAttribute); } /* close switch */ return (m_noError); } static CMISerrors Set_C_Threshold(res, mo, id, value) PE * res, value; struct ManagedObject * mo; int id; { C_Threshold * attribs = (C_Threshold*) mo -> attributes; switch (id) { case 2: if (parse_MIB_ComparisonLevels(value, 1, NULLIP, NULLVP, &attribs -> Levels ) == NOTOK) return (m_invalidAttributeValue); *res = pe_cpy(value); break; case 3: if ( (attribs -> offset = prim2num(value)) == NOTOK ) return (m_invalidAttributeValue); *res = pe_cpy(value); break; case 4: if ( (attribs -> OnOff = prim2flag(value)) == NOTOK) return (m_invalidAttributeValue); *res = pe_cpy(value); break; default: #ifdef DEBUG fprintf(stderr, "MIB SET: Bad Attribute Id: %d\n", id); #endif return (m_noSuchAttribute); } /* close switch */ return (m_noError); } static init_G_Threshold(mo) struct ManagedObject * mo; { static OID MyClass = NULLOID; G_Threshold * at; if (MyClass == NULLOID) if ( ( MyClass = oid_cpy(str2oid("2.37.3.2")) ) == NULL ) return (0); if ( ( oid_copy(MyClass, &mo -> Class) ) == NULL ) return (0); if ( ( at = (G_Threshold*) calloc(1, sizeof (*at)) ) == NULL) return (0); mo -> do_get = (IFP) Get_G_Threshold; mo -> do_set = (IFP) Set_G_Threshold; mo -> do_add = NULLIFP; mo -> do_remove = NULLIFP; mo -> do_action = NULLIFP; mo -> attributes = (caddr_t) at; return (1); } static del_G_Threshold(mo) struct ManagedObject * mo; { free(mo -> Class.oid_elements); free(mo -> attributes); return (0); } static CMISerrors Get_G_Threshold(res, mo, id) PE * res; struct ManagedObject * mo; int id; { G_Threshold * attribs = (G_Threshold*) mo -> attributes; switch (id) { case 2: if (build_MIB_ComparisonLevels(res, 1, 0, NULLCP, &attribs -> Levels ) == NOTOK) return (m_processingFailure); break; case 3: if ( (*res = int2prim(attribs ->hysteresis)) == NULLPE) return (m_processingFailure); break; case 4: if ( (*res = bool2prim(attribs ->OnOff)) == NULLPE) return (m_processingFailure); break; default: #ifdef DEBUG fprintf(stderr, "MIB GET: Bad Attribute Id: %d\n", id); #endif return (m_noSuchAttribute); } /* close switch */ return (m_noError); } static CMISerrors Set_G_Threshold(res, mo, id, value) PE * res, value; struct ManagedObject * mo; int id; { G_Threshold * attribs = (G_Threshold*) mo -> attributes; switch (id) { case 2: if (parse_MIB_ComparisonLevels(value, 1, NULLIP, NULLVP, &attribs -> Levels ) == NOTOK) return (m_invalidAttributeValue); *res = pe_cpy(value); break; case 3: if ( (attribs -> hysteresis = prim2num(value)) == NOTOK ) return (m_invalidAttributeValue); *res = pe_cpy(value); break; case 4: if ( (attribs -> OnOff = prim2flag(value)) == NOTOK) return (m_invalidAttributeValue); *res = pe_cpy(value); break; default: #ifdef DEBUG fprintf(stderr, "MIB SET: Bad Attribute Id: %d\n", id); #endif return (m_noSuchAttribute); } /* close switch */ return (m_noError); } static init_ReportControl(mo) struct ManagedObject * mo; { static OID MyClass = NULLOID; ReportControl * at; if (MyClass == NULLOID) if ( ( MyClass = oid_cpy(str2oid("2.37.3.3")) ) == NULL ) return (0); if ( ( oid_copy(MyClass, &mo -> Class) ) == NULL ) return (0); if ( ( at = (ReportControl*) calloc(1, sizeof (*at)) ) == NULL) return (0); mo -> do_get = (IFP) Get_ReportControl; mo -> do_set = NULLIFP; mo -> do_add = (IFP) Add_ReportControl; mo -> do_remove = (IFP) Remove_ReportControl; mo -> do_action = NULLIFP; mo -> attributes = (caddr_t) at; return (1); } static del_ReportControl(mo) struct ManagedObject * mo; { struct ReportControl * at; destinations * d, * d2; free(mo -> Class.oid_elements); at = (ReportControl*)mo -> attributes; for(d = at -> listofdests; d;) { d2 = d -> Next; free(d); d = d2; } free(at); return (0); } static CMISerrors Get_ReportControl(res, mo, id) PE * res; struct ManagedObject * mo; int id; { ReportControl * attribs = (ReportControl*) mo -> attributes; if (id != 2) return (m_noSuchAttribute); if (build_MIB_ReportDestinationList(res, 1, 0, NULLCP, &attribs -> listofdests) == NOTOK) return (m_processingFailure); return (m_noError); } reportdest_cmp(p, q) struct destinations * p, * q; { if (p -> type != q -> type) return (0); switch (p -> type) { case RCI_DEST_PSAP: if (bcmp((char*) &p -> Psap_dest, (char*) &q -> Psap_dest, sizeof(struct PSAPaddr)) == 0) return (1); else return (0); case RCI_DEST_FD: return (p -> Fd_dest == q -> Fd_dest); default: #ifdef DEBUG fprintf(stderr, "Unknown report destination type %d\n", p -> type); #endif return (0); } /* close switch */ } static CMISerrors Add_ReportControl(res, mo, id, value) PE * res, value; struct ManagedObject * mo; int id; { struct destinations * newdest, ** d; ReportControl * attribs = (ReportControl*) mo -> attributes; if (id != 2) return (m_noSuchAttribute); if ( (newdest = (destinations*)calloc(1, sizeof (*newdest) )) == NULL) return (m_processingFailure); if (parse_MIB_ReportDestination(value, 0, NULLIP, NULLVP, newdest) == NOTOK) return (m_invalidAttributeValue); for (d = &attribs -> listofdests; *d; d = &(*d) -> Next) if (reportdest_cmp(*d, newdest)) { free(newdest); if (build_MIB_ReportDestinationList(res, 1, 0, NULLCP, &attribs -> listofdests) == NOTOK) return (m_processingFailure); return (m_noError); } *d = newdest; if (build_MIB_ReportDestinationList(res, 1, 0, NULLCP, &attribs -> listofdests) == NOTOK) return (m_processingFailure); return (m_noError); } static CMISerrors Remove_ReportControl(res, mo, id, value) PE * res, value; struct ManagedObject * mo; int id; { struct destinations * remdest, ** d; ReportControl * attribs = (ReportControl*) mo -> attributes; if (id != 2) return (m_noSuchAttribute); if ( (remdest = (destinations*)calloc(1, sizeof (*remdest) )) == NULL) return (m_processingFailure); if (parse_MIB_ReportDestination(value, 0, NULLIP, NULLVP, remdest) == NOTOK) return (m_invalidAttributeValue); for (d = &attribs -> listofdests; *d; d = &(*d) -> Next) if (reportdest_cmp(*d, remdest)) { destinations * o; *d = (o = (*d)) -> Next; free (o); break; } free(remdest); if (build_MIB_ReportDestinationList(res, 1, 0, NULLCP, &attribs -> listofdests) == NOTOK) return (m_processingFailure); return (m_noError); } /* ARGSUSED */ static Make_Report1(pe, mo, eventype) PE * pe; struct ManagedObject * mo; OID eventype; { return (build_Reports_ManagedSystemReport(pe, 1, 0, NULLCP, (ManagedSystem*)mo -> attributes)); } /* ARGSUSED */ static Make_Report2(pe, mo, eventype) PE * pe; struct ManagedObject * mo; OID eventype; { return (build_Reports_TEinvReport(pe, 1, 0, NULLCP, (T_EntityInvocation*)mo -> attributes)); } /* ARGSUSED */ static Make_Report3(pe, mo, eventype) PE * pe; struct ManagedObject * mo; OID eventype; { return (build_Reports_TCeptReport(pe, 1, 0, NULLCP, mo)); } /* ARGSUSED */ static Make_Report4(pe, mo, eventype) PE * pe; struct ManagedObject * mo; OID eventype; { return (build_Reports_TEntityReport(pe, 1, 0, NULLCP, (T_LayerEntity*) mo -> parent -> parent -> attributes)); } void DefinedEvent_free(e) DefinedEvent * e; { struct MO_ID ** r; free(e -> eventype.oid_elements); for(r = e -> rcis; r < &e -> rcis[3]; r++) if (*r) moid_free(*r); }