mirror of
https://github.com/openvswitch/ovs
synced 2025-10-27 15:18:06 +00:00
ofp-parse: Make parse_ofp_str() thread-safe.
Signed-off-by: Ben Pfaff <blp@nicira.com> Acked-by: Andy Zhou <azhou@nicira.com>
This commit is contained in:
@@ -34,6 +34,7 @@
|
|||||||
#include "ofp-util.h"
|
#include "ofp-util.h"
|
||||||
#include "ofpbuf.h"
|
#include "ofpbuf.h"
|
||||||
#include "openflow/openflow.h"
|
#include "openflow/openflow.h"
|
||||||
|
#include "ovs-thread.h"
|
||||||
#include "packets.h"
|
#include "packets.h"
|
||||||
#include "socket-util.h"
|
#include "socket-util.h"
|
||||||
#include "vconn.h"
|
#include "vconn.h"
|
||||||
@@ -1519,12 +1520,16 @@ static char * WARN_UNUSED_RESULT
|
|||||||
parse_flow_monitor_request__(struct ofputil_flow_monitor_request *fmr,
|
parse_flow_monitor_request__(struct ofputil_flow_monitor_request *fmr,
|
||||||
const char *str_, char *string)
|
const char *str_, char *string)
|
||||||
{
|
{
|
||||||
|
static pthread_mutex_t mutex = PTHREAD_ADAPTIVE_MUTEX_INITIALIZER;
|
||||||
static uint32_t id;
|
static uint32_t id;
|
||||||
|
|
||||||
char *save_ptr = NULL;
|
char *save_ptr = NULL;
|
||||||
char *name;
|
char *name;
|
||||||
|
|
||||||
|
xpthread_mutex_lock(&mutex);
|
||||||
fmr->id = id++;
|
fmr->id = id++;
|
||||||
|
xpthread_mutex_unlock(&mutex);
|
||||||
|
|
||||||
fmr->flags = (NXFMF_INITIAL | NXFMF_ADD | NXFMF_DELETE | NXFMF_MODIFY
|
fmr->flags = (NXFMF_INITIAL | NXFMF_ADD | NXFMF_DELETE | NXFMF_MODIFY
|
||||||
| NXFMF_OWN | NXFMF_ACTIONS);
|
| NXFMF_OWN | NXFMF_ACTIONS);
|
||||||
fmr->out_port = OFPP_NONE;
|
fmr->out_port = OFPP_NONE;
|
||||||
|
|||||||
Reference in New Issue
Block a user