[ofa-general] Re: [PATCH] osm: handle first syntax error in policy file
Yevgeny Kliteynik
kliteyn at dev.mellanox.co.il
Thu Nov 15 05:56:05 PST 2007
Sasha Khapyorsky wrote:
> Hi Yevgeny,
>
> On 14:03 Thu 15 Nov , Yevgeny Kliteynik wrote:
>> When parsing QoS policy file for the first time, print
>> first syntax error to stdout and to the osm log.
>>
>> Signed-off-by: Yevgeny Kliteynik <kliteyn at dev.mellanox.co.il>
>> ---
>> opensm/opensm/osm_qos_parser.y | 11 ++++++++++-
>> 1 files changed, 10 insertions(+), 1 deletions(-)
>>
>> diff --git a/opensm/opensm/osm_qos_parser.y b/opensm/opensm/osm_qos_parser.y
>> index 4738831..71f41fe 100644
>> --- a/opensm/opensm/osm_qos_parser.y
>> +++ b/opensm/opensm/osm_qos_parser.y
>> @@ -1873,12 +1873,21 @@ int __qos_parser_wrap()
>>
>> void __qos_parser_error (char *s)
>> {
>> + static boolean_t first_time = TRUE;
>
> Could we avoid using static variables?
Would you prefer global flags instead?
Is there any other way? Nothing comes to mind right now...
> (But seems __qos_parser_error() function itself should be declared as static).
Sorry, can't do - it's defined by yacc, and
it's even declared as extern in this file.
-- Yevgeny
> Sasha
>
>
>> + char * last_text_read = __parser_strip_white(__qos_parser_text);
>> OSM_LOG_ENTER(p_qos_parser_osm_log, __qos_parser_error);
>> osm_log(p_qos_parser_osm_log, OSM_LOG_ERROR,
>> "__qos_parser_error: ERR AC05: "
>> "Syntax error (line %d:%d): %s. "
>> "Last text read: \"%s\"\n",
>> - line_num, column_num, s, __parser_strip_white(__qos_parser_text));
>> + line_num, column_num, s, last_text_read);
>> + if (first_time)
>> + {
>> + first_time = FALSE;
>> + printf("Error parsing QoS Policy File (line %d:%d): \"%s\". "
>> + "Last text read: \"%s\".\n",
>> + line_num, column_num, s, last_text_read);
>> + }
>> OSM_LOG_EXIT(p_qos_parser_osm_log);
>> }
>>
>> --
>> 1.5.1.4
>>
>>
>
More information about the general
mailing list