diff options
-rw-r--r-- | plugins/check_by_ssh.c | 4 | ||||
-rw-r--r-- | plugins/check_dhcp.c | 225 |
2 files changed, 106 insertions, 123 deletions
diff --git a/plugins/check_by_ssh.c b/plugins/check_by_ssh.c index f31c9c61..2ceee28f 100644 --- a/plugins/check_by_ssh.c +++ b/plugins/check_by_ssh.c | |||
@@ -213,9 +213,7 @@ process_arguments (int argc, char **argv) | |||
213 | 213 | ||
214 | switch (c) { | 214 | switch (c) { |
215 | case '?': /* help */ | 215 | case '?': /* help */ |
216 | printf (_("%s: Unknown argument: %s\n\n"), progname, optarg); | 216 | usage2 (_("Unknown argument"), optarg); |
217 | print_usage (); | ||
218 | exit (STATE_UNKNOWN); | ||
219 | case 'V': /* version */ | 217 | case 'V': /* version */ |
220 | print_revision (progname, revision); | 218 | print_revision (progname, revision); |
221 | exit (STATE_OK); | 219 | exit (STATE_OK); |
diff --git a/plugins/check_dhcp.c b/plugins/check_dhcp.c index 623636c8..1a16d3e7 100644 --- a/plugins/check_dhcp.c +++ b/plugins/check_dhcp.c | |||
@@ -22,8 +22,15 @@ | |||
22 | * along with this program; if not, write to the Free Software | 22 | * along with this program; if not, write to the Free Software |
23 | * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. | 23 | * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. |
24 | * | 24 | * |
25 | * $Id$ | ||
26 | * | ||
25 | *****************************************************************************/ | 27 | *****************************************************************************/ |
26 | 28 | ||
29 | const char *progname = "check_dhcp"; | ||
30 | const char *revision = "$Revision$"; | ||
31 | const char *copyright = "2001-2004"; | ||
32 | const char *email = "nagiosplug-devel@lists.sourceforge.net"; | ||
33 | |||
27 | #include "common.h" | 34 | #include "common.h" |
28 | #include "netutils.h" | 35 | #include "netutils.h" |
29 | #include "utils.h" | 36 | #include "utils.h" |
@@ -94,8 +101,6 @@ long mac_addr_dlpi( const char *, int, u_char *); | |||
94 | 101 | ||
95 | #endif | 102 | #endif |
96 | 103 | ||
97 | const char *progname = "check_dhcp"; | ||
98 | |||
99 | #define HAVE_GETOPT_H | 104 | #define HAVE_GETOPT_H |
100 | 105 | ||
101 | 106 | ||
@@ -238,12 +243,13 @@ int main(int argc, char **argv){ | |||
238 | int dhcp_socket; | 243 | int dhcp_socket; |
239 | int result; | 244 | int result; |
240 | 245 | ||
246 | setlocale (LC_ALL, ""); | ||
247 | bindtextdomain (PACKAGE, LOCALEDIR); | ||
248 | textdomain (PACKAGE); | ||
249 | |||
241 | if(process_arguments(argc,argv)!=OK){ | 250 | if(process_arguments(argc,argv)!=OK){ |
242 | /*usage("Invalid command arguments supplied\n");*/ | 251 | usage4 (_("Could not parse arguments")); |
243 | printf("Invalid command arguments supplied\n"); | 252 | } |
244 | exit(STATE_UNKNOWN); | ||
245 | } | ||
246 | |||
247 | 253 | ||
248 | /* create socket for DHCP communications */ | 254 | /* create socket for DHCP communications */ |
249 | dhcp_socket=create_dhcp_socket(); | 255 | dhcp_socket=create_dhcp_socket(); |
@@ -284,7 +290,7 @@ int get_hardware_address(int sock,char *interface_name){ | |||
284 | 290 | ||
285 | /* try and grab hardware address of requested interface */ | 291 | /* try and grab hardware address of requested interface */ |
286 | if(ioctl(sock,SIOCGIFHWADDR,&ifr)<0){ | 292 | if(ioctl(sock,SIOCGIFHWADDR,&ifr)<0){ |
287 | printf("Error: Could not get hardware address of interface '%s'\n",interface_name); | 293 | printf(_("Error: Could not get hardware address of interface '%s'\n"),interface_name); |
288 | exit(STATE_UNKNOWN); | 294 | exit(STATE_UNKNOWN); |
289 | } | 295 | } |
290 | 296 | ||
@@ -306,22 +312,22 @@ int get_hardware_address(int sock,char *interface_name){ | |||
306 | mib[4] = NET_RT_IFLIST; | 312 | mib[4] = NET_RT_IFLIST; |
307 | 313 | ||
308 | if ((mib[5] = if_nametoindex(interface_name)) == 0) { | 314 | if ((mib[5] = if_nametoindex(interface_name)) == 0) { |
309 | printf("Error: if_nametoindex error - %s.\n", strerror(errno)); | 315 | printf(_("Error: if_nametoindex error - %s.\n"), strerror(errno)); |
310 | exit(STATE_UNKNOWN); | 316 | exit(STATE_UNKNOWN); |
311 | } | 317 | } |
312 | 318 | ||
313 | if (sysctl(mib, 6, NULL, &len, NULL, 0) < 0) { | 319 | if (sysctl(mib, 6, NULL, &len, NULL, 0) < 0) { |
314 | printf("Error: Couldn't get hardware address from %s. sysctl 1 error - %s.\n", interface_name, strerror(errno)); | 320 | printf(_("Error: Couldn't get hardware address from %s. sysctl 1 error - %s.\n"), interface_name, strerror(errno)); |
315 | exit(STATE_UNKNOWN); | 321 | exit(STATE_UNKNOWN); |
316 | } | 322 | } |
317 | 323 | ||
318 | if ((buf = malloc(len)) == NULL) { | 324 | if ((buf = malloc(len)) == NULL) { |
319 | printf("Error: Couldn't get hardware address from interface %s. malloc error - %s.\n", interface_name, strerror(errno)); | 325 | printf(_("Error: Couldn't get hardware address from interface %s. malloc error - %s.\n"), interface_name, strerror(errno)); |
320 | exit(4); | 326 | exit(4); |
321 | } | 327 | } |
322 | 328 | ||
323 | if (sysctl(mib, 6, buf, &len, NULL, 0) < 0) { | 329 | if (sysctl(mib, 6, buf, &len, NULL, 0) < 0) { |
324 | printf("Error: Couldn't get hardware address from %s. sysctl 2 error - %s.\n", interface_name, strerror(errno)); | 330 | printf(_("Error: Couldn't get hardware address from %s. sysctl 2 error - %s.\n"), interface_name, strerror(errno)); |
325 | exit(STATE_UNKNOWN); | 331 | exit(STATE_UNKNOWN); |
326 | } | 332 | } |
327 | 333 | ||
@@ -346,12 +352,12 @@ int get_hardware_address(int sock,char *interface_name){ | |||
346 | *p = '\0' ; | 352 | *p = '\0' ; |
347 | strncat(dev, interface_name, 6) ; | 353 | strncat(dev, interface_name, 6) ; |
348 | } else { | 354 | } else { |
349 | printf("Error: can't find unit number in interface_name (%s) - expecting TypeNumber eg lnc0.\n", interface_name); | 355 | printf(_("Error: can't find unit number in interface_name (%s) - expecting TypeNumber eg lnc0.\n"), interface_name); |
350 | exit(STATE_UNKNOWN); | 356 | exit(STATE_UNKNOWN); |
351 | } | 357 | } |
352 | stat = mac_addr_dlpi(dev, unit, client_hardware_address); | 358 | stat = mac_addr_dlpi(dev, unit, client_hardware_address); |
353 | if (stat != 0) { | 359 | if (stat != 0) { |
354 | printf("Error: can't read MAC address from DLPI streams interface for device %s unit %d.\n", dev, unit); | 360 | printf(_("Error: can't read MAC address from DLPI streams interface for device %s unit %d.\n"), dev, unit); |
355 | exit(STATE_UNKNOWN); | 361 | exit(STATE_UNKNOWN); |
356 | } | 362 | } |
357 | 363 | ||
@@ -363,18 +369,18 @@ int get_hardware_address(int sock,char *interface_name){ | |||
363 | 369 | ||
364 | stat = mac_addr_dlpi(dev, unit, client_hardware_address); | 370 | stat = mac_addr_dlpi(dev, unit, client_hardware_address); |
365 | if (stat != 0) { | 371 | if (stat != 0) { |
366 | printf("Error: can't read MAC address from DLPI streams interface for device %s unit %d.\n", dev, unit); | 372 | printf(_("Error: can't read MAC address from DLPI streams interface for device %s unit %d.\n"), dev, unit); |
367 | exit(STATE_UNKNOWN); | 373 | exit(STATE_UNKNOWN); |
368 | } | 374 | } |
369 | /* Kompf 2000-2003 */ | 375 | /* Kompf 2000-2003 */ |
370 | 376 | ||
371 | #else | 377 | #else |
372 | printf("Error: can't get MAC address for this architecture.\n"); | 378 | printf(_("Error: can't get MAC address for this architecture.\n")); |
373 | exit(STATE_UNKNOWN); | 379 | exit(STATE_UNKNOWN); |
374 | #endif | 380 | #endif |
375 | 381 | ||
376 | if (verbose) { | 382 | if (verbose) { |
377 | printf( "Hardware address: "); | 383 | printf(_("Hardware address: ")); |
378 | for (i=0; i<6; ++i) | 384 | for (i=0; i<6; ++i) |
379 | printf("%2.2x", client_hardware_address[i]); | 385 | printf("%2.2x", client_hardware_address[i]); |
380 | printf( "\n"); | 386 | printf( "\n"); |
@@ -449,7 +455,7 @@ int send_dhcp_discover(int sock){ | |||
449 | 455 | ||
450 | 456 | ||
451 | if (verbose) { | 457 | if (verbose) { |
452 | printf("DHCPDISCOVER to %s port %d\n",inet_ntoa(sockaddr_broadcast.sin_addr),ntohs(sockaddr_broadcast.sin_port)); | 458 | printf(_("DHCPDISCOVER to %s port %d\n"),inet_ntoa(sockaddr_broadcast.sin_addr),ntohs(sockaddr_broadcast.sin_port)); |
453 | printf("DHCPDISCOVER XID: %lu (0x%X)\n",ntohl(discover_packet.xid),ntohl(discover_packet.xid)); | 459 | printf("DHCPDISCOVER XID: %lu (0x%X)\n",ntohl(discover_packet.xid),ntohl(discover_packet.xid)); |
454 | printf("DHCDISCOVER ciaddr: %s\n",inet_ntoa(discover_packet.ciaddr)); | 460 | printf("DHCDISCOVER ciaddr: %s\n",inet_ntoa(discover_packet.ciaddr)); |
455 | printf("DHCDISCOVER yiaddr: %s\n",inet_ntoa(discover_packet.yiaddr)); | 461 | printf("DHCDISCOVER yiaddr: %s\n",inet_ntoa(discover_packet.yiaddr)); |
@@ -500,26 +506,26 @@ int get_dhcp_offer(int sock){ | |||
500 | 506 | ||
501 | if(result!=OK){ | 507 | if(result!=OK){ |
502 | if (verbose) | 508 | if (verbose) |
503 | printf("Result=ERROR\n"); | 509 | printf(_("Result=ERROR\n")); |
504 | 510 | ||
505 | continue; | 511 | continue; |
506 | } | 512 | } |
507 | else{ | 513 | else{ |
508 | if (verbose) | 514 | if (verbose) |
509 | printf("Result=OK\n"); | 515 | printf(_("Result=OK\n")); |
510 | 516 | ||
511 | responses++; | 517 | responses++; |
512 | } | 518 | } |
513 | 519 | ||
514 | if (verbose) { | 520 | if (verbose) { |
515 | printf("DHCPOFFER from IP address %s\n",inet_ntoa(source.sin_addr)); | 521 | printf(_("DHCPOFFER from IP address %s\n"),inet_ntoa(source.sin_addr)); |
516 | printf("DHCPOFFER XID: %lu (0x%X)\n",ntohl(offer_packet.xid),ntohl(offer_packet.xid)); | 522 | printf("DHCPOFFER XID: %lu (0x%X)\n",ntohl(offer_packet.xid),ntohl(offer_packet.xid)); |
517 | } | 523 | } |
518 | 524 | ||
519 | /* check packet xid to see if its the same as the one we used in the discover packet */ | 525 | /* check packet xid to see if its the same as the one we used in the discover packet */ |
520 | if(ntohl(offer_packet.xid)!=packet_xid){ | 526 | if(ntohl(offer_packet.xid)!=packet_xid){ |
521 | if (verbose) | 527 | if (verbose) |
522 | printf("DHCPOFFER XID (%lu) did not match DHCPDISCOVER XID (%lu) - ignoring packet\n",ntohl(offer_packet.xid),packet_xid); | 528 | printf(_("DHCPOFFER XID (%lu) did not match DHCPDISCOVER XID (%lu) - ignoring packet\n"),ntohl(offer_packet.xid),packet_xid); |
523 | 529 | ||
524 | continue; | 530 | continue; |
525 | } | 531 | } |
@@ -541,7 +547,7 @@ int get_dhcp_offer(int sock){ | |||
541 | 547 | ||
542 | if(result==ERROR){ | 548 | if(result==ERROR){ |
543 | if (verbose) | 549 | if (verbose) |
544 | printf("DHCPOFFER hardware address did not match our own - ignoring packet\n"); | 550 | printf(_("DHCPOFFER hardware address did not match our own - ignoring packet\n")); |
545 | 551 | ||
546 | continue; | 552 | continue; |
547 | } | 553 | } |
@@ -559,8 +565,8 @@ int get_dhcp_offer(int sock){ | |||
559 | } | 565 | } |
560 | 566 | ||
561 | if (verbose) { | 567 | if (verbose) { |
562 | printf("Total responses seen on the wire: %d\n",responses); | 568 | printf(_("Total responses seen on the wire: %d\n"),responses); |
563 | printf("Valid responses for this machine: %d\n",valid_responses); | 569 | printf(_("Valid responses for this machine: %d\n"),valid_responses); |
564 | } | 570 | } |
565 | 571 | ||
566 | return OK; | 572 | return OK; |
@@ -576,7 +582,7 @@ int send_dhcp_packet(void *buffer, int buffer_size, int sock, struct sockaddr_in | |||
576 | result=sendto(sock,(char *)buffer,buffer_size,0,(struct sockaddr *)dest,sizeof(*dest)); | 582 | result=sendto(sock,(char *)buffer,buffer_size,0,(struct sockaddr *)dest,sizeof(*dest)); |
577 | 583 | ||
578 | if (verbose) | 584 | if (verbose) |
579 | printf("send_dhcp_packet result: %d\n",result); | 585 | printf(_("send_dhcp_packet result: %d\n"),result); |
580 | 586 | ||
581 | if(result<0) | 587 | if(result<0) |
582 | return ERROR; | 588 | return ERROR; |
@@ -605,7 +611,7 @@ int receive_dhcp_packet(void *buffer, int buffer_size, int sock, int timeout, st | |||
605 | /* make sure some data has arrived */ | 611 | /* make sure some data has arrived */ |
606 | if(!FD_ISSET(sock,&readfds)){ | 612 | if(!FD_ISSET(sock,&readfds)){ |
607 | if (verbose) | 613 | if (verbose) |
608 | printf("No (more) data received\n"); | 614 | printf(_("No (more) data received\n")); |
609 | return ERROR; | 615 | return ERROR; |
610 | } | 616 | } |
611 | 617 | ||
@@ -624,15 +630,15 @@ int receive_dhcp_packet(void *buffer, int buffer_size, int sock, int timeout, st | |||
624 | 630 | ||
625 | if(recv_result==-1){ | 631 | if(recv_result==-1){ |
626 | if (verbose) { | 632 | if (verbose) { |
627 | printf("recvfrom() failed, "); | 633 | printf(_("recvfrom() failed, ")); |
628 | printf("errno: (%d) -> %s\n",errno,strerror(errno)); | 634 | printf("errno: (%d) -> %s\n",errno,strerror(errno)); |
629 | } | 635 | } |
630 | return ERROR; | 636 | return ERROR; |
631 | } | 637 | } |
632 | else{ | 638 | else{ |
633 | if (verbose) { | 639 | if (verbose) { |
634 | printf("receive_dhcp_packet() result: %d\n",recv_result); | 640 | printf(_("receive_dhcp_packet() result: %d\n"),recv_result); |
635 | printf("receive_dhcp_packet() source: %s\n",inet_ntoa(source_address.sin_addr)); | 641 | printf(_("receive_dhcp_packet() source: %s\n"),inet_ntoa(source_address.sin_addr)); |
636 | } | 642 | } |
637 | 643 | ||
638 | memcpy(address,&source_address,sizeof(source_address)); | 644 | memcpy(address,&source_address,sizeof(source_address)); |
@@ -644,7 +650,6 @@ int receive_dhcp_packet(void *buffer, int buffer_size, int sock, int timeout, st | |||
644 | } | 650 | } |
645 | 651 | ||
646 | 652 | ||
647 | |||
648 | /* creates a socket for DHCP communication */ | 653 | /* creates a socket for DHCP communication */ |
649 | int create_dhcp_socket(void){ | 654 | int create_dhcp_socket(void){ |
650 | struct sockaddr_in myname; | 655 | struct sockaddr_in myname; |
@@ -662,7 +667,7 @@ int create_dhcp_socket(void){ | |||
662 | /* create a socket for DHCP communications */ | 667 | /* create a socket for DHCP communications */ |
663 | sock=socket(AF_INET,SOCK_DGRAM,IPPROTO_UDP); | 668 | sock=socket(AF_INET,SOCK_DGRAM,IPPROTO_UDP); |
664 | if(sock<0){ | 669 | if(sock<0){ |
665 | printf("Error: Could not create socket!\n"); | 670 | printf(_("Error: Could not create socket!\n")); |
666 | exit(STATE_UNKNOWN); | 671 | exit(STATE_UNKNOWN); |
667 | } | 672 | } |
668 | 673 | ||
@@ -672,13 +677,13 @@ int create_dhcp_socket(void){ | |||
672 | /* set the reuse address flag so we don't get errors when restarting */ | 677 | /* set the reuse address flag so we don't get errors when restarting */ |
673 | flag=1; | 678 | flag=1; |
674 | if(setsockopt(sock,SOL_SOCKET,SO_REUSEADDR,(char *)&flag,sizeof(flag))<0){ | 679 | if(setsockopt(sock,SOL_SOCKET,SO_REUSEADDR,(char *)&flag,sizeof(flag))<0){ |
675 | printf("Error: Could not set reuse address option on DHCP socket!\n"); | 680 | printf(_("Error: Could not set reuse address option on DHCP socket!\n")); |
676 | exit(STATE_UNKNOWN); | 681 | exit(STATE_UNKNOWN); |
677 | } | 682 | } |
678 | 683 | ||
679 | /* set the broadcast option - we need this to listen to DHCP broadcast messages */ | 684 | /* set the broadcast option - we need this to listen to DHCP broadcast messages */ |
680 | if(setsockopt(sock,SOL_SOCKET,SO_BROADCAST,(char *)&flag,sizeof flag)<0){ | 685 | if(setsockopt(sock,SOL_SOCKET,SO_BROADCAST,(char *)&flag,sizeof flag)<0){ |
681 | printf("Error: Could not set broadcast option on DHCP socket!\n"); | 686 | printf(_("Error: Could not set broadcast option on DHCP socket!\n")); |
682 | exit(STATE_UNKNOWN); | 687 | exit(STATE_UNKNOWN); |
683 | } | 688 | } |
684 | 689 | ||
@@ -686,7 +691,7 @@ int create_dhcp_socket(void){ | |||
686 | #if defined(__linux__) | 691 | #if defined(__linux__) |
687 | strncpy(interface.ifr_ifrn.ifrn_name,network_interface_name,IFNAMSIZ); | 692 | strncpy(interface.ifr_ifrn.ifrn_name,network_interface_name,IFNAMSIZ); |
688 | if(setsockopt(sock,SOL_SOCKET,SO_BINDTODEVICE,(char *)&interface,sizeof(interface))<0){ | 693 | if(setsockopt(sock,SOL_SOCKET,SO_BINDTODEVICE,(char *)&interface,sizeof(interface))<0){ |
689 | printf("Error: Could not bind socket to interface %s. Check your privileges...\n",network_interface_name); | 694 | printf(_("Error: Could not bind socket to interface %s. Check your privileges...\n"),network_interface_name); |
690 | exit(STATE_UNKNOWN); | 695 | exit(STATE_UNKNOWN); |
691 | } | 696 | } |
692 | 697 | ||
@@ -696,7 +701,7 @@ int create_dhcp_socket(void){ | |||
696 | 701 | ||
697 | /* bind the socket */ | 702 | /* bind the socket */ |
698 | if(bind(sock,(struct sockaddr *)&myname,sizeof(myname))<0){ | 703 | if(bind(sock,(struct sockaddr *)&myname,sizeof(myname))<0){ |
699 | printf("Error: Could not bind to DHCP socket (port %d)! Check your privileges...\n",DHCP_CLIENT_PORT); | 704 | printf(_("Error: Could not bind to DHCP socket (port %d)! Check your privileges...\n"),DHCP_CLIENT_PORT); |
700 | exit(STATE_UNKNOWN); | 705 | exit(STATE_UNKNOWN); |
701 | } | 706 | } |
702 | 707 | ||
@@ -704,9 +709,6 @@ int create_dhcp_socket(void){ | |||
704 | } | 709 | } |
705 | 710 | ||
706 | 711 | ||
707 | |||
708 | |||
709 | |||
710 | /* closes DHCP socket */ | 712 | /* closes DHCP socket */ |
711 | int close_dhcp_socket(int sock){ | 713 | int close_dhcp_socket(int sock){ |
712 | 714 | ||
@@ -716,8 +718,6 @@ int close_dhcp_socket(int sock){ | |||
716 | } | 718 | } |
717 | 719 | ||
718 | 720 | ||
719 | |||
720 | |||
721 | /* adds a requested server address to list in memory */ | 721 | /* adds a requested server address to list in memory */ |
722 | int add_requested_server(struct in_addr server_address){ | 722 | int add_requested_server(struct in_addr server_address){ |
723 | requested_server *new_server; | 723 | requested_server *new_server; |
@@ -734,7 +734,7 @@ int add_requested_server(struct in_addr server_address){ | |||
734 | requested_servers++; | 734 | requested_servers++; |
735 | 735 | ||
736 | if (verbose) | 736 | if (verbose) |
737 | printf("Requested server address: %s\n",inet_ntoa(new_server->server_address)); | 737 | printf(_("Requested server address: %s\n"),inet_ntoa(new_server->server_address)); |
738 | 738 | ||
739 | return OK; | 739 | return OK; |
740 | } | 740 | } |
@@ -784,16 +784,16 @@ int add_dhcp_offer(struct in_addr source,dhcp_packet *offer_packet){ | |||
784 | 784 | ||
785 | if (verbose) { | 785 | if (verbose) { |
786 | if(dhcp_lease_time==DHCP_INFINITE_TIME) | 786 | if(dhcp_lease_time==DHCP_INFINITE_TIME) |
787 | printf("Lease Time: Infinite\n"); | 787 | printf(_("Lease Time: Infinite\n")); |
788 | else | 788 | else |
789 | printf("Lease Time: %lu seconds\n",(unsigned long)dhcp_lease_time); | 789 | printf(_("Lease Time: %lu seconds\n"),(unsigned long)dhcp_lease_time); |
790 | if(dhcp_renewal_time==DHCP_INFINITE_TIME) | 790 | if(dhcp_renewal_time==DHCP_INFINITE_TIME) |
791 | printf("Renewal Time: Infinite\n"); | 791 | printf(_("Renewal Time: Infinite\n")); |
792 | else | 792 | else |
793 | printf("Renewal Time: %lu seconds\n",(unsigned long)dhcp_renewal_time); | 793 | printf(_("Renewal Time: %lu seconds\n"),(unsigned long)dhcp_renewal_time); |
794 | if(dhcp_rebinding_time==DHCP_INFINITE_TIME) | 794 | if(dhcp_rebinding_time==DHCP_INFINITE_TIME) |
795 | printf("Rebinding Time: Infinite\n"); | 795 | printf(_("Rebinding Time: Infinite\n")); |
796 | printf("Rebinding Time: %lu seconds\n",(unsigned long)dhcp_rebinding_time); | 796 | printf(_("Rebinding Time: %lu seconds\n"),(unsigned long)dhcp_rebinding_time); |
797 | } | 797 | } |
798 | 798 | ||
799 | new_offer=(dhcp_offer *)malloc(sizeof(dhcp_offer)); | 799 | new_offer=(dhcp_offer *)malloc(sizeof(dhcp_offer)); |
@@ -801,7 +801,6 @@ int add_dhcp_offer(struct in_addr source,dhcp_packet *offer_packet){ | |||
801 | if(new_offer==NULL) | 801 | if(new_offer==NULL) |
802 | return ERROR; | 802 | return ERROR; |
803 | 803 | ||
804 | |||
805 | new_offer->server_address=source; | 804 | new_offer->server_address=source; |
806 | new_offer->offered_address=offer_packet->yiaddr; | 805 | new_offer->offered_address=offer_packet->yiaddr; |
807 | new_offer->lease_time=dhcp_lease_time; | 806 | new_offer->lease_time=dhcp_lease_time; |
@@ -810,8 +809,8 @@ int add_dhcp_offer(struct in_addr source,dhcp_packet *offer_packet){ | |||
810 | 809 | ||
811 | 810 | ||
812 | if (verbose) { | 811 | if (verbose) { |
813 | printf("Added offer from server @ %s",inet_ntoa(new_offer->server_address)); | 812 | printf(_("Added offer from server @ %s"),inet_ntoa(new_offer->server_address)); |
814 | printf(" of IP address %s\n",inet_ntoa(new_offer->offered_address)); | 813 | printf(_(" of IP address %s\n"),inet_ntoa(new_offer->offered_address)); |
815 | } | 814 | } |
816 | 815 | ||
817 | /* add new offer to head of list */ | 816 | /* add new offer to head of list */ |
@@ -822,8 +821,6 @@ int add_dhcp_offer(struct in_addr source,dhcp_packet *offer_packet){ | |||
822 | } | 821 | } |
823 | 822 | ||
824 | 823 | ||
825 | |||
826 | |||
827 | /* frees memory allocated to DHCP OFFER list */ | 824 | /* frees memory allocated to DHCP OFFER list */ |
828 | int free_dhcp_offer_list(void){ | 825 | int free_dhcp_offer_list(void){ |
829 | dhcp_offer *this_offer; | 826 | dhcp_offer *this_offer; |
@@ -838,8 +835,6 @@ int free_dhcp_offer_list(void){ | |||
838 | } | 835 | } |
839 | 836 | ||
840 | 837 | ||
841 | |||
842 | |||
843 | /* frees memory allocated to requested server list */ | 838 | /* frees memory allocated to requested server list */ |
844 | int free_requested_server_list(void){ | 839 | int free_requested_server_list(void){ |
845 | requested_server *this_server; | 840 | requested_server *this_server; |
@@ -882,8 +877,8 @@ int get_results(void){ | |||
882 | /* see if the servers we wanted a response from talked to us or not */ | 877 | /* see if the servers we wanted a response from talked to us or not */ |
883 | if(!memcmp(&temp_offer->server_address,&temp_server->server_address,sizeof(temp_server->server_address))){ | 878 | if(!memcmp(&temp_offer->server_address,&temp_server->server_address,sizeof(temp_server->server_address))){ |
884 | if (verbose) { | 879 | if (verbose) { |
885 | printf("DHCP Server Match: Offerer=%s",inet_ntoa(temp_offer->server_address)); | 880 | printf(_("DHCP Server Match: Offerer=%s"),inet_ntoa(temp_offer->server_address)); |
886 | printf(" Requested=%s\n",inet_ntoa(temp_server->server_address)); | 881 | printf(_(" Requested=%s\n"),inet_ntoa(temp_server->server_address)); |
887 | } | 882 | } |
888 | requested_responses++; | 883 | requested_responses++; |
889 | } | 884 | } |
@@ -922,21 +917,21 @@ int get_results(void){ | |||
922 | 917 | ||
923 | /* we didn't receive any DHCPOFFERs */ | 918 | /* we didn't receive any DHCPOFFERs */ |
924 | if(dhcp_offer_list==NULL){ | 919 | if(dhcp_offer_list==NULL){ |
925 | printf("No DHCPOFFERs were received.\n"); | 920 | printf(_("No DHCPOFFERs were received.\n")); |
926 | return result; | 921 | return result; |
927 | } | 922 | } |
928 | 923 | ||
929 | printf("Received %d DHCPOFFER(s)",valid_responses); | 924 | printf(_("Received %d DHCPOFFER(s)"),valid_responses); |
930 | 925 | ||
931 | if(requested_servers>0) | 926 | if(requested_servers>0) |
932 | printf(", %s%d of %d requested servers responded",((requested_responses<requested_servers) && requested_responses>0)?"only ":"",requested_responses,requested_servers); | 927 | printf(_(", %s%d of %d requested servers responded"),((requested_responses<requested_servers) && requested_responses>0)?"only ":"",requested_responses,requested_servers); |
933 | 928 | ||
934 | if(request_specific_address==TRUE) | 929 | if(request_specific_address==TRUE) |
935 | printf(", requested address (%s) was %soffered",inet_ntoa(requested_address),(received_requested_address==TRUE)?"":"not "); | 930 | printf(_(", requested address (%s) was %soffered"),inet_ntoa(requested_address),(received_requested_address==TRUE)?"":"not "); |
936 | 931 | ||
937 | printf(", max lease time = "); | 932 | printf(_(", max lease time = ")); |
938 | if(max_lease_time==DHCP_INFINITE_TIME) | 933 | if(max_lease_time==DHCP_INFINITE_TIME) |
939 | printf("Infinity"); | 934 | printf(_("Infinity")); |
940 | else | 935 | else |
941 | printf("%lu sec",(unsigned long)max_lease_time); | 936 | printf("%lu sec",(unsigned long)max_lease_time); |
942 | 937 | ||
@@ -946,57 +941,6 @@ int get_results(void){ | |||
946 | } | 941 | } |
947 | 942 | ||
948 | 943 | ||
949 | |||
950 | |||
951 | |||
952 | |||
953 | /* print usage help */ | ||
954 | void print_help(void){ | ||
955 | |||
956 | /*print_revision(progname,"$Revision$");*/ | ||
957 | |||
958 | printf("Copyright (c) 2001-2004 Ethan Galstad (nagios@nagios.org)\n\n"); | ||
959 | printf("This plugin tests the availability of DHCP servers on a network.\n\n"); | ||
960 | |||
961 | print_usage(); | ||
962 | |||
963 | printf | ||
964 | ("\nOptions:\n" | ||
965 | " -s, --serverip=IPADDRESS\n" | ||
966 | " IP address of DHCP server that we must hear from\n" | ||
967 | " -r, --requestedip=IPADDRESS\n" | ||
968 | " IP address that should be offered by at least one DHCP server\n" | ||
969 | " -t, --timeout=INTEGER\n" | ||
970 | " Seconds to wait for DHCPOFFER before timeout occurs\n" | ||
971 | " -i, --interface=STRING\n" | ||
972 | " Interface to to use for listening (i.e. eth0)\n" | ||
973 | " -v, --verbose\n" | ||
974 | " Print extra information (command-line use only)\n" | ||
975 | " -h, --help\n" | ||
976 | " Print detailed help screen\n" | ||
977 | " -V, --version\n" | ||
978 | " Print version information\n\n" | ||
979 | ); | ||
980 | |||
981 | /*support();*/ | ||
982 | |||
983 | return; | ||
984 | } | ||
985 | |||
986 | |||
987 | /* prints usage information */ | ||
988 | void print_usage(void){ | ||
989 | |||
990 | printf("Usage: %s [-s serverip] [-r requestedip] [-t timeout] [-i interface]\n",progname); | ||
991 | printf(" %s --help\n",progname); | ||
992 | printf(" %s --version\n",progname); | ||
993 | |||
994 | return; | ||
995 | } | ||
996 | |||
997 | |||
998 | |||
999 | |||
1000 | /* process command-line arguments */ | 944 | /* process command-line arguments */ |
1001 | int process_arguments(int argc, char **argv){ | 945 | int process_arguments(int argc, char **argv){ |
1002 | int c; | 946 | int c; |
@@ -1174,7 +1118,7 @@ static int check_ctrl(int prim) | |||
1174 | { | 1118 | { |
1175 | dl_error_ack_t *err_ack = (dl_error_ack_t *)ctl_area; | 1119 | dl_error_ack_t *err_ack = (dl_error_ack_t *)ctl_area; |
1176 | if(err_ack->dl_primitive != prim) { | 1120 | if(err_ack->dl_primitive != prim) { |
1177 | printf("Error: DLPI stream API failed to get MAC in check_ctrl: %s.\n", strerror(errno)); | 1121 | printf(_("Error: DLPI stream API failed to get MAC in check_ctrl: %s.\n"), strerror(errno)); |
1178 | exit(STATE_UNKNOWN); | 1122 | exit(STATE_UNKNOWN); |
1179 | } | 1123 | } |
1180 | return 0; | 1124 | return 0; |
@@ -1185,7 +1129,7 @@ static int put_ctrl(int fd, int len, int pri) | |||
1185 | { | 1129 | { |
1186 | ctl.len = len; | 1130 | ctl.len = len; |
1187 | if(putmsg(fd, &ctl, 0, pri) < 0) { | 1131 | if(putmsg(fd, &ctl, 0, pri) < 0) { |
1188 | printf("Error: DLPI stream API failed to get MAC in put_ctrl/putmsg(): %s.\n", strerror(errno)); | 1132 | printf(_("Error: DLPI stream API failed to get MAC in put_ctrl/putmsg(): %s.\n"), strerror(errno)); |
1189 | exit(STATE_UNKNOWN); | 1133 | exit(STATE_UNKNOWN); |
1190 | } | 1134 | } |
1191 | return 0; | 1135 | return 0; |
@@ -1197,7 +1141,7 @@ static int put_both(int fd, int clen, int dlen, int pri) | |||
1197 | ctl.len = clen; | 1141 | ctl.len = clen; |
1198 | dat.len = dlen; | 1142 | dat.len = dlen; |
1199 | if(putmsg(fd, &ctl, &dat, pri) < 0) { | 1143 | if(putmsg(fd, &ctl, &dat, pri) < 0) { |
1200 | printf("Error: DLPI stream API failed to get MAC in put_both/putmsg().\n", strerror(errno)); | 1144 | printf(_("Error: DLPI stream API failed to get MAC in put_both/putmsg().\n"), strerror(errno)); |
1201 | exit(STATE_UNKNOWN); | 1145 | exit(STATE_UNKNOWN); |
1202 | } | 1146 | } |
1203 | return 0; | 1147 | return 0; |
@@ -1208,7 +1152,7 @@ static int dl_open(const char *dev, int unit, int *fd) | |||
1208 | { | 1152 | { |
1209 | dl_attach_req_t *attach_req = (dl_attach_req_t *)ctl_area; | 1153 | dl_attach_req_t *attach_req = (dl_attach_req_t *)ctl_area; |
1210 | if((*fd = open(dev, O_RDWR)) == -1) { | 1154 | if((*fd = open(dev, O_RDWR)) == -1) { |
1211 | printf("Error: DLPI stream API failed to get MAC in dl_attach_req/open(%s..): %s.\n", dev, strerror(errno)); | 1155 | printf(_("Error: DLPI stream API failed to get MAC in dl_attach_req/open(%s..): %s.\n"), dev, strerror(errno)); |
1212 | exit(STATE_UNKNOWN); | 1156 | exit(STATE_UNKNOWN); |
1213 | } | 1157 | } |
1214 | attach_req->dl_primitive = DL_ATTACH_REQ; | 1158 | attach_req->dl_primitive = DL_ATTACH_REQ; |
@@ -1232,7 +1176,7 @@ static int dl_bind(int fd, int sap, u_char *addr) | |||
1232 | put_ctrl(fd, sizeof(dl_bind_req_t), 0); | 1176 | put_ctrl(fd, sizeof(dl_bind_req_t), 0); |
1233 | get_msg(fd); | 1177 | get_msg(fd); |
1234 | if (GOT_ERR == check_ctrl(DL_BIND_ACK)) { | 1178 | if (GOT_ERR == check_ctrl(DL_BIND_ACK)) { |
1235 | printf("Error: DLPI stream API failed to get MAC in dl_bind/check_ctrl(): %s.\n", strerror(errno)); | 1179 | printf(_("Error: DLPI stream API failed to get MAC in dl_bind/check_ctrl(): %s.\n"), strerror(errno)); |
1236 | exit(STATE_UNKNOWN); | 1180 | exit(STATE_UNKNOWN); |
1237 | } | 1181 | } |
1238 | bcopy((u_char *)bind_ack + bind_ack->dl_addr_offset, addr, | 1182 | bcopy((u_char *)bind_ack + bind_ack->dl_addr_offset, addr, |
@@ -1267,6 +1211,47 @@ long mac_addr_dlpi( const char *dev, int unit, u_char *addr) { | |||
1267 | return -1; | 1211 | return -1; |
1268 | } | 1212 | } |
1269 | 1213 | ||
1270 | #endif | ||
1271 | /* Kompf 2000-2003 */ | 1214 | /* Kompf 2000-2003 */ |
1272 | 1215 | ||
1216 | #endif | ||
1217 | |||
1218 | |||
1219 | /* print usage help */ | ||
1220 | void print_help(void){ | ||
1221 | |||
1222 | print_revision(progname,revision); | ||
1223 | |||
1224 | printf("Copyright (c) 2001-2004 Ethan Galstad (nagios@nagios.org)\n\n"); | ||
1225 | printf (COPYRIGHT, copyright, email); | ||
1226 | |||
1227 | printf(_("This plugin tests the availability of DHCP servers on a network.\n\n")); | ||
1228 | |||
1229 | print_usage(); | ||
1230 | |||
1231 | printf(_("\ | ||
1232 | -s, --serverip=IPADDRESS\n\ | ||
1233 | IP address of DHCP server that we must hear from\n\ | ||
1234 | -r, --requestedip=IPADDRESS\n\ | ||
1235 | IP address that should be offered by at least one DHCP server\n\ | ||
1236 | -t, --timeout=INTEGER\n\ | ||
1237 | Seconds to wait for DHCPOFFER before timeout occurs\n\ | ||
1238 | -i, --interface=STRING\n\ | ||
1239 | Interface to to use for listening (i.e. eth0)\n\ | ||
1240 | -v, --verbose\n\ | ||
1241 | Print extra information (command-line use only)\n\ | ||
1242 | -h, --help\n\ | ||
1243 | Print detailed help screen\n\ | ||
1244 | -V, --version\n\ | ||
1245 | Print version information\n")); | ||
1246 | } | ||
1247 | |||
1248 | |||
1249 | void print_usage(void) | ||
1250 | { | ||
1251 | printf("\ | ||
1252 | Usage: %s [-s serverip] [-r requestedip] [-t timeout] [-i interface]\n\ | ||
1253 | [-v]",progname); | ||
1254 | } | ||
1255 | |||
1256 | |||
1257 | |||