Leaked source code of windows server 2003
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

530 lines
17 KiB

  1. /*++
  2. Copyright (c) 1996 Microsoft Corporation
  3. Module Name:
  4. mripsap.c
  5. Abstract:
  6. ms-ripsap instrumentation callbacks.
  7. Author:
  8. Vadim Eydelman (vadime) 30-May-1996
  9. Revision History:
  10. --*/
  11. #include "precomp.h"
  12. ///////////////////////////////////////////////////////////////////////////////
  13. // //
  14. // mripsapBase group (1.3.6.1.4.1.311.1.9.1) //
  15. // //
  16. ///////////////////////////////////////////////////////////////////////////////
  17. UINT
  18. get_mripsapBase(
  19. UINT actionId,
  20. AsnAny * objectArray,
  21. UINT * errorIndex
  22. ) {
  23. #define Beb ((buf_mripsapBase *)objectArray)
  24. RIP_MIB_GET_INPUT_DATA RipMibGetInputData;
  25. SAP_MIB_GET_INPUT_DATA SapMibGetInputData;
  26. PRIPMIB_BASE RipBep = NULL;
  27. PSAP_MIB_BASE SapBep = NULL;
  28. DWORD rc;
  29. ULONG BeSize;
  30. if (!EnsureRouterConnection()) {
  31. *errorIndex = 0;
  32. return MIB_S_ENTRY_NOT_FOUND;
  33. }
  34. switch (actionId) {
  35. case MIB_ACTION_GET:
  36. RipMibGetInputData.TableId = RIP_BASE_ENTRY;
  37. rc = MprAdminMIBEntryGet(g_MibServerHandle,
  38. PID_IPX,
  39. IPX_PROTOCOL_RIP,
  40. &RipMibGetInputData,
  41. sizeof(RIP_MIB_GET_INPUT_DATA),
  42. &RipBep,
  43. &BeSize);
  44. if (rc == NO_ERROR && RipBep == NULL)
  45. {
  46. rc = ERROR_CAN_NOT_COMPLETE;
  47. }
  48. if (rc==NO_ERROR) {
  49. SetAsnInteger (&Beb->mripsapBaseRipOperState, RipBep->RIPOperState);
  50. MprAdminMIBBufferFree (RipBep);
  51. SapMibGetInputData.TableId = SAP_BASE_ENTRY;
  52. rc = MprAdminMIBEntryGet(g_MibServerHandle,
  53. PID_IPX,
  54. IPX_PROTOCOL_SAP,
  55. &SapMibGetInputData,
  56. sizeof(SAP_MIB_GET_INPUT_DATA),
  57. &SapBep,
  58. &BeSize);
  59. if (rc==NO_ERROR && SapBep) {
  60. SetAsnInteger (&Beb->mripsapBaseSapOperState, SapBep->SapOperState);
  61. MprAdminMIBBufferFree (SapBep);
  62. DbgTrace (DBG_RIPSAPBASE,
  63. ("MRIPSAP-Base: Get request succeded.\n"));
  64. return MIB_S_SUCCESS;
  65. }
  66. else {
  67. *errorIndex = 1;
  68. DbgTrace (DBG_RIPSAPBASE,
  69. ("MRIPSAP-Base: Get SapOperState failed with error %ld.\n", rc));
  70. return MIB_S_ENTRY_NOT_FOUND;
  71. }
  72. }
  73. else {
  74. *errorIndex = 0;
  75. DbgTrace (DBG_RIPSAPBASE,
  76. ("MRIPSAP-Base: Get RipOperState failed with error %ld.\n", rc));
  77. return MIB_S_ENTRY_NOT_FOUND;
  78. }
  79. case MIB_ACTION_GETNEXT:
  80. DbgTrace (DBG_IPXBASE,
  81. ("MRIPSAP-Base:Get called with GET_FIRST/GET_NEXT for scalar.\n"));
  82. return MIB_S_INVALID_PARAMETER;
  83. default:
  84. DbgTrace (DBG_RIPSAPBASE,
  85. ("MRIPSAP-Base: Get called with unsupported action code %d.\n",
  86. actionId));
  87. return MIB_S_INVALID_PARAMETER;
  88. }
  89. #undef Beb
  90. }
  91. ///////////////////////////////////////////////////////////////////////////////
  92. // //
  93. // mripsapInterface group (1.3.6.1.4.1.311.1.9.2) //
  94. // //
  95. ///////////////////////////////////////////////////////////////////////////////
  96. ///////////////////////////////////////////////////////////////////////////////
  97. // //
  98. // mripIfEntry table (1.3.6.1.4.1.311.1.9.2.1.1) //
  99. // //
  100. ///////////////////////////////////////////////////////////////////////////////
  101. UINT
  102. get_mripIfEntry(
  103. UINT actionId,
  104. AsnAny * objectArray,
  105. UINT * errorIndex
  106. ) {
  107. #define Ifb ((buf_mripIfEntry *)objectArray)
  108. PRIP_INTERFACE Ifp;
  109. RIP_MIB_GET_INPUT_DATA MibGetInputData;
  110. DWORD rc;
  111. ULONG IfSize;
  112. if (!EnsureRouterConnection()) {
  113. *errorIndex = 0;
  114. return MIB_S_ENTRY_NOT_FOUND;
  115. }
  116. MibGetInputData.TableId = RIP_INTERFACE_TABLE;
  117. MibGetInputData.InterfaceIndex
  118. = (ULONG)GetAsnInteger (&Ifb->mripIfIndex, ZERO_INTERFACE_INDEX);
  119. switch (actionId) {
  120. case MIB_ACTION_GET:
  121. ASSERTMSG ("No index in GET request for table ",
  122. Ifb->mripIfIndex.asnType);
  123. rc = MprAdminMIBEntryGet(g_MibServerHandle,
  124. PID_IPX,
  125. IPX_PROTOCOL_RIP,
  126. &MibGetInputData,
  127. sizeof(RIP_MIB_GET_INPUT_DATA),
  128. &Ifp,
  129. &IfSize);
  130. break;
  131. case MIB_ACTION_GETNEXT:
  132. if (Ifb->mripIfIndex.asnType)
  133. rc = MprAdminMIBEntryGetNext(g_MibServerHandle,
  134. PID_IPX,
  135. IPX_PROTOCOL_RIP,
  136. &MibGetInputData,
  137. sizeof(RIP_MIB_GET_INPUT_DATA),
  138. &Ifp,
  139. &IfSize);
  140. else
  141. rc = MprAdminMIBEntryGetFirst(g_MibServerHandle,
  142. PID_IPX,
  143. IPX_PROTOCOL_RIP,
  144. &MibGetInputData,
  145. sizeof(RIP_MIB_GET_INPUT_DATA),
  146. &Ifp,
  147. &IfSize);
  148. break;
  149. default:
  150. DbgTrace (DBG_RIPINTERFACES,
  151. ("MRIPSAP-mripIf:Get called with unsupported action code %d.\n",
  152. actionId));
  153. return MIB_S_INVALID_PARAMETER;
  154. }
  155. if (rc == NO_ERROR && Ifp == NULL)
  156. {
  157. rc = ERROR_CAN_NOT_COMPLETE;
  158. }
  159. switch (rc) {
  160. case NO_ERROR:
  161. DbgTrace (DBG_RIPINTERFACES,
  162. ("MRIPSAP-mripIf: Get(%d) request succeded for if %ld->%ld.\n",
  163. actionId,
  164. MibGetInputData.InterfaceIndex,
  165. Ifp->InterfaceIndex));
  166. ForceAsnInteger (&Ifb->mripIfIndex, Ifp->InterfaceIndex);
  167. SetAsnInteger (&Ifb->mripIfAdminState, Ifp->RipIfInfo.AdminState);
  168. SetAsnInteger (&Ifb->mripIfOperState, Ifp->RipIfStats.RipIfOperState);
  169. SetAsnInteger (&Ifb->mripIfUpdateMode, Ifp->RipIfInfo.UpdateMode);
  170. SetAsnInteger (&Ifb->mripIfUpdateInterval, Ifp->RipIfInfo.PeriodicUpdateInterval);
  171. SetAsnInteger (&Ifb->mripIfAgeMultiplier, Ifp->RipIfInfo.AgeIntervalMultiplier);
  172. SetAsnInteger (&Ifb->mripIfSupply, Ifp->RipIfInfo.Supply);
  173. SetAsnInteger (&Ifb->mripIfListen, Ifp->RipIfInfo.Listen);
  174. SetAsnCounter (&Ifb->mripIfInPackets, Ifp->RipIfStats.RipIfInputPackets);
  175. SetAsnCounter (&Ifb->mripIfOutPackets, Ifp->RipIfStats.RipIfOutputPackets);
  176. MprAdminMIBBufferFree (Ifp);
  177. return MIB_S_SUCCESS;
  178. case ERROR_NO_MORE_ITEMS:
  179. ASSERTMSG ("ERROR_NO_MORE_ITEMS returned, but request is not GETNEXT ",
  180. actionId==MIB_ACTION_GETNEXT);
  181. DbgTrace (DBG_RIPINTERFACES,
  182. ("MRIPSAP-mripIf: End of table reached on GETNEXT request for if %ld.\n",
  183. MibGetInputData.InterfaceIndex));
  184. return MIB_S_NO_MORE_ENTRIES;
  185. default:
  186. *errorIndex = 0;
  187. DbgTrace (DBG_RIPINTERFACES,
  188. ("MRIPSAP-mripIf: Get request for if %ld failed with error %ld.\n",
  189. MibGetInputData.InterfaceIndex, rc));
  190. return MIB_S_ENTRY_NOT_FOUND;
  191. }
  192. #undef Ifb
  193. }
  194. UINT
  195. set_mripIfEntry(
  196. UINT actionId,
  197. AsnAny * objectArray,
  198. UINT * errorIndex
  199. ) {
  200. #define Ifb ((sav_mripIfEntry *)objectArray)
  201. PRIP_INTERFACE Ifp;
  202. RIP_MIB_GET_INPUT_DATA MibGetInputData;
  203. DWORD rc;
  204. ULONG IfSize;
  205. if (!EnsureRouterConnection()) {
  206. *errorIndex = 0;
  207. return MIB_S_ENTRY_NOT_FOUND;
  208. }
  209. switch (actionId) {
  210. case MIB_ACTION_VALIDATE:
  211. ASSERTMSG ("No index in VALIDATE request for table ",
  212. Ifb->mripIfIndex.asnType);
  213. MibGetInputData.TableId = RIP_INTERFACE_TABLE;
  214. MibGetInputData.InterfaceIndex
  215. = (ULONG)GetAsnInteger (&Ifb->mripIfIndex, INVALID_INTERFACE_INDEX);
  216. rc = MprAdminMIBEntryGet(g_MibServerHandle,
  217. PID_IPX,
  218. IPX_PROTOCOL_RIP,
  219. &MibGetInputData,
  220. sizeof(RIP_MIB_GET_INPUT_DATA),
  221. &Ifp,
  222. &IfSize);
  223. if (rc == NO_ERROR && Ifp == NULL)
  224. {
  225. rc = ERROR_CAN_NOT_COMPLETE;
  226. }
  227. if (rc==NO_ERROR) {
  228. Ifb->MibSetInputData.RipInterface = *Ifp;
  229. Ifb->MibSetInputData.RipInterface.RipIfInfo.AdminState
  230. = (ULONG)GetAsnInteger(&Ifb->mripIfAdminState,
  231. Ifb->MibSetInputData.RipInterface.RipIfInfo.AdminState);
  232. Ifb->MibSetInputData.RipInterface.RipIfInfo.UpdateMode
  233. = (ULONG)GetAsnInteger(&Ifb->mripIfUpdateMode,
  234. Ifb->MibSetInputData.RipInterface.RipIfInfo.UpdateMode);
  235. Ifb->MibSetInputData.RipInterface.RipIfInfo.PeriodicUpdateInterval
  236. = (ULONG)GetAsnInteger(&Ifb->mripIfUpdateInterval,
  237. Ifb->MibSetInputData.RipInterface.RipIfInfo.PeriodicUpdateInterval);
  238. Ifb->MibSetInputData.RipInterface.RipIfInfo.AgeIntervalMultiplier
  239. = (ULONG)GetAsnInteger(&Ifb->mripIfAgeMultiplier,
  240. Ifb->MibSetInputData.RipInterface.RipIfInfo.AgeIntervalMultiplier);
  241. Ifb->MibSetInputData.RipInterface.RipIfInfo.Supply
  242. = (ULONG)GetAsnInteger(&Ifb->mripIfSupply,
  243. Ifb->MibSetInputData.RipInterface.RipIfInfo.Supply);
  244. Ifb->MibSetInputData.RipInterface.RipIfInfo.Listen
  245. = (ULONG)GetAsnInteger(&Ifb->mripIfListen,
  246. Ifb->MibSetInputData.RipInterface.RipIfInfo.Listen);
  247. MprAdminMIBBufferFree (Ifp);
  248. DbgTrace (DBG_RIPINTERFACES, ("MRIPSAP-mripIf: Validated if %ld\n",
  249. MibGetInputData.InterfaceIndex));
  250. return MIB_S_SUCCESS;
  251. }
  252. else {
  253. DbgTrace (DBG_RIPINTERFACES,
  254. ("MRIPSAP-mripIf: Validate failed on if %ld with error %ld\n",
  255. MibGetInputData.InterfaceIndex, rc));
  256. return MIB_S_ENTRY_NOT_FOUND;
  257. }
  258. case MIB_ACTION_SET:
  259. rc = MprAdminMIBEntrySet (g_MibServerHandle,
  260. PID_IPX,
  261. IPX_PROTOCOL_RIP,
  262. &Ifb->MibSetInputData,
  263. sizeof(RIP_MIB_SET_INPUT_DATA));
  264. if (rc==NO_ERROR) {
  265. DbgTrace (DBG_RIPINTERFACES, ("MRIPSAP-mripIf: Set succeded on if %ld\n",
  266. Ifb->MibSetInputData.RipInterface.InterfaceIndex));
  267. return MIB_S_SUCCESS;
  268. }
  269. else {
  270. DbgTrace (DBG_RIPINTERFACES,
  271. ("MRIPSAP-mripIf: Set failed on if %ld with error %ld\n",
  272. Ifb->MibSetInputData.RipInterface.InterfaceIndex, rc));
  273. return MIB_S_ENTRY_NOT_FOUND;
  274. }
  275. case MIB_ACTION_CLEANUP:
  276. return MIB_S_SUCCESS;
  277. default:
  278. DbgTrace (DBG_RIPINTERFACES,
  279. ("MMRIPSAP-mripIf: Set called with unsupported action code %d.\n",
  280. actionId));
  281. return MIB_S_INVALID_PARAMETER;
  282. }
  283. #undef Ifb
  284. }
  285. ///////////////////////////////////////////////////////////////////////////////
  286. // //
  287. // msapIfEntry table (1.3.6.1.4.1.311.1.9.2.2.1) //
  288. // //
  289. ///////////////////////////////////////////////////////////////////////////////
  290. UINT
  291. get_msapIfEntry(
  292. UINT actionId,
  293. AsnAny * objectArray,
  294. UINT * errorIndex
  295. ) {
  296. #define Ifb ((buf_msapIfEntry *)objectArray)
  297. PSAP_INTERFACE Ifp;
  298. SAP_MIB_GET_INPUT_DATA MibGetInputData;
  299. DWORD rc;
  300. ULONG IfSize;
  301. if (!EnsureRouterConnection()) {
  302. *errorIndex = 0;
  303. return MIB_S_ENTRY_NOT_FOUND;
  304. }
  305. MibGetInputData.TableId = SAP_INTERFACE_TABLE;
  306. MibGetInputData.InterfaceIndex
  307. = (ULONG)GetAsnInteger (&Ifb->msapIfIndex, ZERO_INTERFACE_INDEX);
  308. switch (actionId) {
  309. case MIB_ACTION_GET:
  310. ASSERTMSG ("No index in GET request for table ",
  311. Ifb->msapIfIndex.asnType);
  312. rc = MprAdminMIBEntryGet(g_MibServerHandle,
  313. PID_IPX,
  314. IPX_PROTOCOL_SAP,
  315. &MibGetInputData,
  316. sizeof(SAP_MIB_GET_INPUT_DATA),
  317. &Ifp,
  318. &IfSize);
  319. break;
  320. case MIB_ACTION_GETNEXT:
  321. if (Ifb->msapIfIndex.asnType)
  322. rc = MprAdminMIBEntryGetNext(g_MibServerHandle,
  323. PID_IPX,
  324. IPX_PROTOCOL_SAP,
  325. &MibGetInputData,
  326. sizeof(SAP_MIB_GET_INPUT_DATA),
  327. &Ifp,
  328. &IfSize);
  329. else
  330. rc = MprAdminMIBEntryGetFirst(g_MibServerHandle,
  331. PID_IPX,
  332. IPX_PROTOCOL_SAP,
  333. &MibGetInputData,
  334. sizeof(SAP_MIB_GET_INPUT_DATA),
  335. &Ifp,
  336. &IfSize);
  337. break;
  338. default:
  339. DbgTrace (DBG_SAPINTERFACES,
  340. ("MRIPSAP-msapIf:Get called with unsupported action code %d.\n",
  341. actionId));
  342. return MIB_S_INVALID_PARAMETER;
  343. }
  344. if (rc == NO_ERROR && Ifp == NULL)
  345. {
  346. rc = ERROR_CAN_NOT_COMPLETE;
  347. }
  348. switch (rc) {
  349. case NO_ERROR:
  350. DbgTrace (DBG_SAPINTERFACES,
  351. ("MRIPSAP-msapIf: Get(%d) request succeded for if %ld->%ld.\n",
  352. actionId,
  353. MibGetInputData.InterfaceIndex,
  354. Ifp->InterfaceIndex));
  355. ForceAsnInteger (&Ifb->msapIfIndex, Ifp->InterfaceIndex);
  356. SetAsnInteger (&Ifb->msapIfAdminState, Ifp->SapIfInfo.AdminState);
  357. SetAsnInteger (&Ifb->msapIfOperState, Ifp->SapIfStats.SapIfOperState);
  358. SetAsnInteger (&Ifb->msapIfUpdateMode, Ifp->SapIfInfo.UpdateMode);
  359. SetAsnInteger (&Ifb->msapIfUpdateInterval, Ifp->SapIfInfo.PeriodicUpdateInterval);
  360. SetAsnInteger (&Ifb->msapIfAgeMultiplier, Ifp->SapIfInfo.AgeIntervalMultiplier);
  361. SetAsnInteger (&Ifb->msapIfSupply, Ifp->SapIfInfo.Supply);
  362. SetAsnInteger (&Ifb->msapIfListen, Ifp->SapIfInfo.Listen);
  363. SetAsnInteger (&Ifb->msapIfGetNearestServerReply,
  364. Ifp->SapIfInfo.GetNearestServerReply);
  365. SetAsnCounter (&Ifb->msapIfInPackets, Ifp->SapIfStats.SapIfInputPackets);
  366. SetAsnCounter (&Ifb->msapIfOutPackets, Ifp->SapIfStats.SapIfOutputPackets);
  367. MprAdminMIBBufferFree (Ifp);
  368. return MIB_S_SUCCESS;
  369. case ERROR_NO_MORE_ITEMS:
  370. ASSERTMSG ("ERROR_NO_MORE_ITEMS returned, but request is not GETNEXT ",
  371. actionId==MIB_ACTION_GETNEXT);
  372. DbgTrace (DBG_SAPINTERFACES,
  373. ("MRIPSAP-msapIf: End of table reached on GETNEXT request for if %ld.\n",
  374. MibGetInputData.InterfaceIndex));
  375. return MIB_S_NO_MORE_ENTRIES;
  376. default:
  377. *errorIndex = 0;
  378. DbgTrace (DBG_SAPINTERFACES,
  379. ("MRIPSAP-msapIf: Get request for if %ld failed with error %ld.\n",
  380. MibGetInputData.InterfaceIndex, rc));
  381. return MIB_S_ENTRY_NOT_FOUND;
  382. }
  383. #undef Ifb
  384. }
  385. UINT
  386. set_msapIfEntry(
  387. UINT actionId,
  388. AsnAny * objectArray,
  389. UINT * errorIndex
  390. ) {
  391. #define Ifb ((sav_msapIfEntry *)objectArray)
  392. PSAP_INTERFACE Ifp;
  393. SAP_MIB_GET_INPUT_DATA MibGetInputData;
  394. DWORD rc;
  395. ULONG IfSize;
  396. if (!EnsureRouterConnection()) {
  397. *errorIndex = 0;
  398. return MIB_S_ENTRY_NOT_FOUND;
  399. }
  400. switch (actionId) {
  401. case MIB_ACTION_VALIDATE:
  402. ASSERTMSG ("No index in VALIDATE request for table ",
  403. Ifb->msapIfIndex.asnType);
  404. MibGetInputData.TableId = SAP_INTERFACE_TABLE;
  405. MibGetInputData.InterfaceIndex
  406. = (ULONG)GetAsnInteger (&Ifb->msapIfIndex, INVALID_INTERFACE_INDEX);
  407. rc = MprAdminMIBEntryGet(g_MibServerHandle,
  408. PID_IPX,
  409. IPX_PROTOCOL_SAP,
  410. &MibGetInputData,
  411. sizeof(SAP_MIB_GET_INPUT_DATA),
  412. &Ifp,
  413. &IfSize);
  414. if (rc == NO_ERROR && Ifp == NULL)
  415. {
  416. rc = ERROR_CAN_NOT_COMPLETE;
  417. }
  418. if (rc==NO_ERROR) {
  419. Ifb->MibSetInputData.SapInterface = *Ifp;
  420. Ifb->MibSetInputData.SapInterface.SapIfInfo.AdminState
  421. = (ULONG)GetAsnInteger(&Ifb->msapIfAdminState,
  422. Ifb->MibSetInputData.SapInterface.SapIfInfo.AdminState);
  423. Ifb->MibSetInputData.SapInterface.SapIfInfo.UpdateMode
  424. = (ULONG)GetAsnInteger(&Ifb->msapIfUpdateMode,
  425. Ifb->MibSetInputData.SapInterface.SapIfInfo.UpdateMode);
  426. Ifb->MibSetInputData.SapInterface.SapIfInfo.PeriodicUpdateInterval
  427. = (ULONG)GetAsnInteger(&Ifb->msapIfUpdateInterval,
  428. Ifb->MibSetInputData.SapInterface.SapIfInfo.PeriodicUpdateInterval);
  429. Ifb->MibSetInputData.SapInterface.SapIfInfo.AgeIntervalMultiplier
  430. = (ULONG)GetAsnInteger(&Ifb->msapIfAgeMultiplier,
  431. Ifb->MibSetInputData.SapInterface.SapIfInfo.AgeIntervalMultiplier);
  432. Ifb->MibSetInputData.SapInterface.SapIfInfo.Supply
  433. = (ULONG)GetAsnInteger(&Ifb->msapIfSupply,
  434. Ifb->MibSetInputData.SapInterface.SapIfInfo.Supply);
  435. Ifb->MibSetInputData.SapInterface.SapIfInfo.Listen
  436. = (ULONG)GetAsnInteger(&Ifb->msapIfListen,
  437. Ifb->MibSetInputData.SapInterface.SapIfInfo.Listen);
  438. Ifb->MibSetInputData.SapInterface.SapIfInfo.GetNearestServerReply
  439. = (ULONG)GetAsnInteger(&Ifb->msapIfGetNearestServerReply,
  440. Ifb->MibSetInputData.SapInterface.SapIfInfo.GetNearestServerReply);
  441. MprAdminMIBBufferFree (Ifp);
  442. DbgTrace (DBG_SAPINTERFACES, ("MRIPSAP-msapIf: Validated if %ld\n",
  443. MibGetInputData.InterfaceIndex));
  444. return MIB_S_SUCCESS;
  445. }
  446. else {
  447. DbgTrace (DBG_SAPINTERFACES,
  448. ("MRIPSAP-msapIf: Validate failed on if %ld with error %ld\n",
  449. MibGetInputData.InterfaceIndex, rc));
  450. return MIB_S_ENTRY_NOT_FOUND;
  451. }
  452. case MIB_ACTION_SET:
  453. rc = MprAdminMIBEntrySet (g_MibServerHandle,
  454. PID_IPX,
  455. IPX_PROTOCOL_SAP,
  456. &Ifb->MibSetInputData,
  457. sizeof(SAP_MIB_SET_INPUT_DATA));
  458. if (rc==NO_ERROR) {
  459. DbgTrace (DBG_SAPINTERFACES, ("MRIPSAP-msapIf: Set succeded on if %ld\n",
  460. Ifb->MibSetInputData.SapInterface.InterfaceIndex));
  461. return MIB_S_SUCCESS;
  462. }
  463. else {
  464. DbgTrace (DBG_SAPINTERFACES,
  465. ("MRIPSAP-msapIf: Set failed on if %ld with error %ld\n",
  466. Ifb->MibSetInputData.SapInterface.InterfaceIndex, rc));
  467. return MIB_S_ENTRY_NOT_FOUND;
  468. }
  469. case MIB_ACTION_CLEANUP:
  470. return MIB_S_SUCCESS;
  471. default:
  472. DbgTrace (DBG_SAPINTERFACES,
  473. ("MMRIPSAP-msapIf: Set called with unsupported action code %d.\n",
  474. actionId));
  475. return MIB_S_INVALID_PARAMETER;
  476. }
  477. #undef Ifb
  478. }