Added a simple embedded GPL dhcp server for ReactOS by
[reactos.git] / reactos / services / dhcpd / src / display / display.c
1 #include <stdio.h>
2
3 #include <headers.h>
4 #include <datatypes.h>
5 #include <display.h>
6 #include <options.h>
7
8 int display_dhcp_packet( DHCPMESSAGE *dhcpm, DHCPOPTIONS *dhcpo )
9 {
10 char *mtype;
11 if( dhcpm == NULL )
12 return -1;
13
14 fprintf( stdout, "op: %s\t|htype: %s\t|hlen: %u\t|hops: %u\n", (dhcpm->op == 1)?"BOOTREQUEST":"BOOTREPLY", (dhcpm->htype==1)?"Ethernet 10Mb":"unknown", dhcpm->hlen, dhcpm->hops);
15 fprintf( stdout, "xid: %u \n", dhcpm->xid );
16 fprintf( stdout, "secs: %u\t\t|flags: %u\n", dhcpm->secs, dhcpm->flags );
17 fprintf( stdout, "ciaddr: %u.%u.%u.%u \n", (dhcpm->ciaddr >> 24), ((dhcpm->ciaddr>>16)&0xFF), ((dhcpm->ciaddr>>8)&0xFF), ((dhcpm->ciaddr)&0xFF));
18 fprintf( stdout, "yiaddr: %u.%u.%u.%u \n", (dhcpm->yiaddr >> 24), ((dhcpm->yiaddr>>16)&0xFF), ((dhcpm->yiaddr>>8)&0xFF), ((dhcpm->yiaddr)&0xFF));
19 fprintf( stdout, "siaddr: %u.%u.%u.%u \n", (dhcpm->siaddr >> 24), ((dhcpm->siaddr>>16)&0xFF), ((dhcpm->siaddr>>8)&0xFF), ((dhcpm->siaddr)&0xFF));
20 fprintf( stdout, "giaddr: %u.%u.%u.%u \n", (dhcpm->giaddr >> 24), ((dhcpm->giaddr>>16)&0xFF), ((dhcpm->giaddr>>8)&0xFF), ((dhcpm->giaddr)&0xFF));
21 fprintf( stdout, "chaddr: %X::%X::%X::%X::%X::%X \n", dhcpm->chaddr[0], dhcpm->chaddr[1], dhcpm->chaddr[2], dhcpm->chaddr[3], dhcpm->chaddr[4], dhcpm->chaddr[5] );
22 fprintf( stdout, "sname: %s \n", dhcpm->sname );
23 fprintf( stdout, "file: %s \n", dhcpm->file );
24 /* options come here */
25 switch( dhcpo->type )
26 {
27 case DHCPDISCOVER:
28 mtype = (char *)malloc( strlen( "DHCPDISCOVER" ) +1);
29 strcpy( mtype, "DHCPDISCOVER" );
30 break;
31 case DHCPREQUEST:
32 mtype = (char *)malloc( strlen( "DHCPREQUEST" ) +1);
33 strcpy( mtype, "DHCPREQUEST" );
34 break;
35 case DHCPACK:
36 mtype = (char *)malloc( strlen( "DHCPACK" ) +1);
37 strcpy( mtype, "DHCPACK" );
38 break;
39 case DHCPNAK:
40 mtype = (char *)malloc( strlen( "DHCPNAK" ) +1);
41 strcpy( mtype, "DHCPNAK" );
42 break;
43 case DHCPRELEASE:
44 mtype = (char *)malloc( strlen( "DHCPRELEASE" ) +1);
45 strcpy( mtype, "DHCPRELEASE" );
46 break;
47 case DHCPDECLINE:
48 mtype = (char *)malloc( strlen( "DHCPDECLINE" ) +1);
49 strcpy( mtype, "DHCPDECLINE" );
50 break;
51 case DHCPOFFER:
52 mtype = (char *)malloc( strlen( "DHCPOFFER" ) +1);
53 strcpy( mtype, "DHCPOFFER" );
54 break;
55 default:
56 mtype = (char *)malloc( strlen("Unknown Type") +1);
57 strcpy( mtype, "Unknown Type" );
58 break;
59 }
60 fprintf( stdout, "Message Type: %s \n", mtype );
61 return 0;
62 }
63