2
0
mirror of https://github.com/openvswitch/ovs synced 2025-10-25 15:07:05 +00:00

ofp-parse: Do not exit() upon a parse error.

Until now, failure to parse a flow in the ofp-parse module has caused the
program to abort immediately with a fatal error.  This makes it hard to
use these functions from any long-lived program.  This commit fixes the
problem.

Signed-off-by: Ben Pfaff <blp@nicira.com>
This commit is contained in:
Ben Pfaff
2013-07-08 10:15:00 -07:00
parent 5ed2d819bb
commit bdda5aca7b
20 changed files with 991 additions and 456 deletions

View File

@@ -1,4 +1,4 @@
/* Copyright (c) 2011, 2012 Nicira, Inc.
/* Copyright (c) 2011, 2012, 2013 Nicira, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -71,9 +71,14 @@ parse_bundle_actions(char *actions)
struct ofpact_bundle *bundle;
struct ofpbuf ofpacts;
struct ofpact *action;
char *error;
ofpbuf_init(&ofpacts, 0);
bundle_parse_load(actions, &ofpacts);
error = bundle_parse_load(actions, &ofpacts);
if (error) {
ovs_fatal(0, "%s", error);
}
action = ofpacts.data;
bundle = ofpact_get_BUNDLE(xmemdup(action, action->len));
ofpbuf_uninit(&ofpacts);