On 02/19/2015 10:34 AM, Russell Bryant wrote:
> On 02/19/2015 03:12 AM, Ben Pfaff wrote:
>> The lower layers count errors but until now nothing actually reported them.
>>
>> Found by inspection.
>>
>> Signed-off-by: Ben Pfaff <[email protected]>
>> ---
>> vswitchd/bridge.c | 8 +++++---
>> 1 file changed, 5 insertions(+), 3 deletions(-)
>>
>> diff --git a/vswitchd/bridge.c b/vswitchd/bridge.c
>> index 297c0dd..a143be1 100644
>> --- a/vswitchd/bridge.c
>> +++ b/vswitchd/bridge.c
>> @@ -1,4 +1,4 @@
>> -/* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014 Nicira, Inc.
>> +/* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 Nicira, Inc.
>> *
>> * Licensed under the Apache License, Version 2.0 (the "License");
>> * you may not use this file except in compliance with the License.
>> @@ -2489,8 +2489,8 @@ port_refresh_rstp_status(struct port *port)
>> struct ofproto *ofproto = port->bridge->ofproto;
>> struct iface *iface;
>> struct ofproto_port_rstp_status status;
>> - char *keys[3];
>> - int64_t int_values[3];
>> + char *keys[4];
>
> Based on the code below, it looks like it would be nice to make this
> "const char *keys[4];".
>
> If that gets changed, it's passed to automatically generated code where
> the parameter is not const. It's the 2nd parameter here:
>
> ovsrec_port_set_statistics(const struct ovsrec_port *row, char
> **key_statistics, const int64_t *value_statistics, size_t n_statistics)
>
> The second parameter is explicitly excluded from being made const, but
> it's not clear why. Is there some C detail I'm forgetting, or does this
> seem safe?
>
> The following change results in the 2nd parameter above being made const
> and seems to still build without any warnings:
Nevermind ... of course there's a bunch of warnings. I just didn't set
-Werror.
It looks like the below change wouldn't be desired, but maybe adding
const to just "char **" would be OK. Of course, it's not important
anyway ...
> diff --git a/ovsdb/ovsdb-idlc.in b/ovsdb/ovsdb-idlc.in
> index 6c8aa43..2d32850 100755
> --- a/ovsdb/ovsdb-idlc.in
> +++ b/ovsdb/ovsdb-idlc.in
> @@ -21,7 +21,7 @@ def annotateSchema(schemaFile, annotationFile):
> sys.stdout.write('\n')
>
> def constify(cType, const):
> - if (const and cType.endswith('*') and not cType.endswith('**')):
> + if const and cType.endswith('*'):
> return 'const %s' % cType
> else:
> return cType
>
>
>> + int64_t int_values[4];
>> struct smap smap;
>>
>> if (port_is_synthetic(port)) {
>> @@ -2539,6 +2539,8 @@ port_refresh_rstp_status(struct port *port)
>> int_values[1] = status.rx_count;
>> keys[2] = "rstp_uptime";
>> int_values[2] = status.uptime;
>> + keys[3] = "rstp_error_count";
>> + int_values[3] = status.error_count;
>> ovsrec_port_set_rstp_statistics(port->cfg, keys, int_values,
>> ARRAY_SIZE(int_values));
>> }
>>
>
>
--
Russell Bryant
_______________________________________________
dev mailing list
[email protected]
http://openvswitch.org/mailman/listinfo/dev