X-Git-Url: https://git.whamcloud.com/?p=fs%2Flustre-release.git;a=blobdiff_plain;f=snmp%2Flustre-snmp-trap.c;h=0080b90fcf488c12f0bdcf3b7ad47f5b6369e3c8;hp=9b6073d95c6738103c2aa5a01b8ef3c33836f646;hb=55a7e2dcecaf482c40840840db2b0b795bad2bb9;hpb=313b3c3b9d82670b77d4624deb4471f89fc5a8cb diff --git a/snmp/lustre-snmp-trap.c b/snmp/lustre-snmp-trap.c index 9b6073d..0080b90 100644 --- a/snmp/lustre-snmp-trap.c +++ b/snmp/lustre-snmp-trap.c @@ -1,6 +1,4 @@ -/* -*- mode: c; c-basic-offset: 8; indent-tabs-mode: nil; -*- - * vim:expandtab:shiftwidth=8:tabstop=8: - * +/* * GPL HEADER START * * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. @@ -17,16 +15,12 @@ * * You should have received a copy of the GNU General Public License * version 2 along with this program; If not, see - * http://www.sun.com/software/products/lustre/docs/GPLv2.pdf - * - * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, - * CA 95054 USA or visit www.sun.com if you need additional information or - * have any questions. + * http://www.gnu.org/licenses/gpl-2.0.html * * GPL HEADER END */ /* - * Copyright 2008 Sun Microsystems, Inc. All rights reserved + * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. * Use is subject to license terms. */ /* @@ -51,14 +45,13 @@ */ #include -#if defined (__linux__) #include -#endif #include #include #include #include #include +#include #include "lustre-snmp-util.h" /************************************************************************** @@ -126,7 +119,7 @@ static unsigned int g_registration_handle; static char *g_health_check_test_file = 0; /***************************************************************************** - * Function: initilize_trap_handler + * Function: initialize_trap_handler * * Description: Initlized the trap poll haalder. * @@ -136,7 +129,7 @@ static char *g_health_check_test_file = 0; * ****************************************************************************/ -void initilize_trap_handler(void) +void initialize_trap_handler(void) { g_poll_interval_seconds = get_poll_interval_seconds(); @@ -235,16 +228,23 @@ void health_poll_worker(unsigned int registration_number, void *clientarg) FILE *fptr = NULL; char string[MAX_LINE_SIZE]; int b_seen_portals_catastrophe = 0; - const char *filename = g_health_check_test_file == 0 ? - LUSTRE_PATH FILENAME_SYSHEALTHCHECK : - g_health_check_test_file; - + char *filename; + glob_t path; + + if (cfs_get_param_paths(&path, "health_check") != 0) + return; + + filename = g_health_check_test_file == 0 ? path.gl_pathv[0] : g_health_check_test_file; + /*DEBUGMSGTL(("lsnmpd","health_entry_parser(%s)\n",filename));*/ /* Open the file. Use the test file env variable if there is one */ fptr = fopen(filename,"r"); + /* Free parameter's path string */ + cfs_free_param_data(&path); + /* If the path is not found do nothing */ if( NULL == fptr) return; @@ -358,13 +358,14 @@ void send_portals_catastrophe_trap(char *reason_string) */ var_trap[1].next_variable = NULL; - /*The "name" is the OID of the portals trap reason strong*/ + /* The "name" is the OID of the portals trap reason string */ var_trap[1].name = lustre_portals_trap_string; var_trap[1].name_length = sizeof(lustre_portals_trap_string) / sizeof(oid); - /*And the data is a octet string, that contains the actually reason string*/ + /* And the data is an octet string, that contains the actually reason + * string */ var_trap[1].type = ASN_OCTET_STR; - var_trap[1].val.string = reason_string; + var_trap[1].val.string = (unsigned char *)reason_string; var_trap[1].val_len = strlen(reason_string); /*And now send off the trap*/ @@ -413,28 +414,30 @@ void send_obd_unhealthy_trap(char *obd_name,char *reason_string) */ var_trap[1].next_variable = &var_trap[2];; - /*The "name" is the OID of the portals trap reason strong*/ + /* The "name" is the OID of the portals trap reason string */ var_trap[1].name = lustre_unhealthy_trap_device_name_string; var_trap[1].name_length = sizeof(lustre_unhealthy_trap_device_name_string) / sizeof(oid); - /*And the data is a octet string, that contains the actually reason strong*/ + /* And the data is an octet string, that contains the actual reason + * string */ var_trap[1].type = ASN_OCTET_STR; - var_trap[1].val.string = obd_name; + var_trap[1].val.string = (unsigned char *)obd_name; var_trap[1].val_len = strlen(obd_name); - /* - * Setup the third variable in the trap data. + /* + * Setup the third variable in the trap data. * It is the last in the chain so set next to NULL */ var_trap[2].next_variable = NULL; - /*The "name" is the OID of the portals trap reason strong*/ + /* The "name" is the OID of the portals trap reason string */ var_trap[2].name = lustre_unhealthy_trap_reason_string; var_trap[2].name_length = sizeof(lustre_unhealthy_trap_reason_string) / sizeof(oid); - /*And the data is a octet string, that contains the actually reason strong*/ + /* And the data is an octet string, that contains the actual reason + * string */ var_trap[2].type = ASN_OCTET_STR; - var_trap[2].val.string = reason_string; + var_trap[2].val.string = (unsigned char *)reason_string; var_trap[2].val_len = strlen(reason_string); /*And now send off the trap*/