#include <stdio.h>
#include <string.h>
#include "snmp.h"



void main(Argc,Argv)
int Argc;
char **Argv;
{
	mgt_sck *Sck;
	pkt_msg Msg;
	char 	Str [255];
	long    Tio;
	int     Rtr;
	
	if (Argc < 2 || Argc > 4)
	{
		printf ("Usage: %s <Host> <Timeout> <Retries>\n", Argv [0]);
		return;
	}
	if (Argc >= 3)
	  Tio = atol (Argv [2]);
	else 
	  Tio = 5000000;
	if (Argc >= 4)
	  Rtr = atoi (Argv [3]);
	else
	  Rtr = 10;
	if ((Sck = MgtOpn (htons (161), MgtAdr (Argv [1]))) == NULL)
	{
		printf ("Open failed\n");
		return;
	}
	if (StrDecOji ("1.3.6.1", &Msg.MsgPdu.PduRor.RorLst [0]) < 0)
	{
	    printf ("Decode failed\n");
	    return;
	}
	strcpy (Msg.MsgCom, "public");
	Msg.MsgComLen = 6;
	Msg.MsgPdu.PduRor.RorRid = 0;
	Msg.MsgPdu.PduRor.RorLstLen = 1;
	Msg.MsgPdu.PduRor.RorErrSts = PKT_NOERROR;
	while (Msg.MsgPdu.PduRor.RorErrSts == PKT_NOERROR)
	{
	        Msg.MsgPdu.PduRor.RorRid++;
	        Msg.MsgPdu.PduRor.RorTyp = PKT_NXTRQS;
		Msg.MsgPdu.PduRor.RorLst [0].ObjTag = PKT_NULL;
	        if (MgtRqs (Sck, &Msg, Tio, Rtr) < 0)                       
		{                                                          
		        printf ("Request failed\n");                       
		        return;                                            
		}                                                          
		if (StrEncObj (Str, &Msg.MsgPdu.PduRor.RorLst [0]) < 0)    
		{                                                          
		        printf ("Cannot show result\n");                   
		        return;                                            
		}
                printf ("%s\n", Str);
	}
	MgtCls (Sck);
}		


