Download SunNet Manager 2.2.3 Programmer`s Guide
Transcript
12
Netmgt_error status;/* status report argument */
NETMGT_DBG("do_set_request\n");
/* get any optional arguments */
if (netmgt_fetch_argument (NETMGT_OPTSTRING, &option))
/* handle request option */
/* fetch request arguments and perform set operations */
for (;;)
/* get next set argument
if (!netmgt_fetch_setval (&setval)) {
(void) netmgt_fetch_error(&status);
if (!netmgt_send_error(&status))
NETMGT_DBG("netmgt_fetch_setval failed: %s\n",
netmgt_sperror());
return;
}
/* a sentinel string marks the end of arguments
if (strcmp (setval.name, NETMGT_ENDOFARGS) == 0)
return;
/* assume here the set operation failed - send
* an fatal error report to the requester
*/
if (!perform_set(system, setval)) {
status.service_error = NETMGT_FATAL;
status.agent_error = SET_FAILED;
status.message = "a description of why it failed";
if (!netmgt_send_error(&status))
NETMGT_DBG("netmgt_send_error failed: %s\n",
netmgt_sperror());
return;
}
}
/* assume all the set operations succeeded - send a success status
* message to the requester
*/
status.service_error = NETMGT_SUCCESS;
status.agent_error = (u_int)0;
status.message = (char *)NULL;
Procedure for Writing an Agent
12-15