X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=lib%2Fnetlink-notifier.c;h=6739eceec8ffbdaca3f4b82cf288b8a71a449735;hb=780325b5b8d4c0552b4b7719e0a38200d99f6b08;hp=9446488115381f6d6514f7d068209396ac44a515;hpb=2ee6545f2bff7eb27e8c84965e3ff38dfa909bf6;p=sliver-openvswitch.git diff --git a/lib/netlink-notifier.c b/lib/netlink-notifier.c index 944648811..6739eceec 100644 --- a/lib/netlink-notifier.c +++ b/lib/netlink-notifier.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2009, 2010, 2011 Nicira Networks. + * Copyright (c) 2009, 2010, 2011, 2012 Nicira, Inc. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -18,7 +18,6 @@ #include "netlink-notifier.h" -#include #include #include #include @@ -87,7 +86,7 @@ void nln_destroy(struct nln *nln) { if (nln) { - assert(list_is_empty(&nln->all_notifiers)); + ovs_assert(list_is_empty(&nln->all_notifiers)); nl_sock_destroy(nln->notify_sock); free(nln); } @@ -164,18 +163,20 @@ nln_run(struct nln *nln) nln->has_run = true; for (;;) { - struct ofpbuf *buf; + uint64_t buf_stub[4096 / 8]; + struct ofpbuf buf; int error; + ofpbuf_use_stub(&buf, buf_stub, sizeof buf_stub); error = nl_sock_recv(nln->notify_sock, &buf, false); if (!error) { - if (nln->parse(buf, nln->change)) { + if (nln->parse(&buf, nln->change)) { nln_report(nln, nln->change); } else { VLOG_WARN_RL(&rl, "received bad netlink message"); nln_report(nln, NULL); } - ofpbuf_delete(buf); + ofpbuf_uninit(&buf); } else if (error == EAGAIN) { return; } else {