/* History:126,1 */ /* public domain by Russell Nelson, nelson@crynwr.com. Politeness dictates * that you leave this notice intact */ #include #include #include "pktdrvr.h" char buffer[1514]; /* single buffer */ int packet_len; /* the length of data in buffer */ int intno; /* our handle */ int oldmode; char myeaddr[6]; /* our Ethernet address */ int main() { int handle; char idle_chars[] = "-/|\\"; int idle_index = 0; /* search for the first packet driver in memory */ for (intno = 0x60; intno <= 0x80; intno++) { if (test_for_pd(intno)) break; } /* if there is none, crap out */ if (!test_for_pd(intno)) { fprintf(stderr, "No packet driver found"); exit(1); } /* get a handle so that we can receive packets */ handle = access_type(intno, CL_ETHERNET, /* has to be an Ethernet driver */ 0xffff, /* we don't care whose it is. */ 0, /* we want the first piece of hardware */ NULL, /* doesn't matter because we want all */ 0, /* zero type length, that is, all. */ prijem); /* -> our upcall */ /* get the adaptor's Ethernet address */ get_address (intno,handle,myeaddr,sizeof myeaddr); /* put the interface into promiscuous mode */ oldmode = set_mode(intno,handle,6); while (!kbhit()) { #if 0 printf("%c\b", idle_chars[idle_index++]); idle_index %= (sizeof(idle_chars)-1); #endif if (packet_len) { dump_bytes(buffer, packet_len); #if 0 /* send packet back */ memcpy(buffer,buffer+6,6); memcpy(buffer+6,myeaddr,6); send_pkt(intno,buffer,packet_len); #endif packet_len = 0; } } getch(); set_mode(intno,handle,oldmode); release_type(intno, handle); return 0; }