DOC HOME SITE MAP MAN PAGES GNU INFO SEARCH PRINT BOOK
 
Developing SMUX peers for SNMP agents

Terminating foosmuxd's SMUX association

The reference SMUX peer invokes the routine smux_register when it is ready to terminate the SMUX association with the local agent. smux_register sends an RReqPDU to the agent, with ``priority'' set to -1 and ``operation'' set to 0; this un-registers the peer's highest priority registration for the specified MIB module:

void
close_conn()
{
/*
 * - De-register the subtrees that were previously registered
 * - Then gracefully close the smux connection
 * - and then the tcp connection itself.
 */

for (tc = triples; tc->t_tree; tc++) smux_register (tc -> t_name, -1, 0); smux_close(goingDown); exit(0); }

Then the peer calls smux_close, which packages an SMUX_PDUs_close PDU, encodes it in ASN.1 format, sends the PDU to the agent, and then closes the TCP end-point.

smux_close takes one argument, which will be one of the following: goingDown, packetFormat, unsupportedVersion, protocolError, internalError, or authenticationFailure. See ``Terminating an SMUX association'' for an explanation of these error codes.

If this routine fails, it sets smux_errno to one of the following: congestion, invalidOperation, or youLoseBig. See ``Error recovery'' for an explanation of these error codes.


© 2005 The SCO Group, Inc. All rights reserved.
SCO OpenServer Release 6.0.0 -- 02 June 2005