summaryrefslogtreecommitdiffstats
path: root/bgpd/bgp_fsm.h
diff options
context:
space:
mode:
authorJeffrey C. Ollie <jeff@ocjtech.us>2007-04-09 15:36:33 -0500
committerJeffrey C. Ollie <jeff@ocjtech.us>2007-04-09 15:36:33 -0500
commit37e11172f8ed157340783b73d56595bb02d0a2d2 (patch)
tree65163a9cdb8ded9c55c94da92e8a6327bda9067c /bgpd/bgp_fsm.h
parent8d3e3ccfd0d0cb82b253f937339d1c6189a2bf54 (diff)
parent43cd33a44e010f818633b7f144b5a0be352b41e7 (diff)
downloadquagga-0.99.6-realms.patch.tar.bz2
quagga-0.99.6-realms.patch.tar.xz
Merge commit 'quagga_0_99_6_release' into linux-realmsquagga-0.99.6-realms.patch
Diffstat (limited to 'bgpd/bgp_fsm.h')
-rw-r--r--bgpd/bgp_fsm.h43
1 files changed, 12 insertions, 31 deletions
diff --git a/bgpd/bgp_fsm.h b/bgpd/bgp_fsm.h
index e90f3b43..a749f8ea 100644
--- a/bgpd/bgp_fsm.h
+++ b/bgpd/bgp_fsm.h
@@ -25,67 +25,48 @@ Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
/* Macro for BGP read, write and timer thread. */
#define BGP_READ_ON(T,F,V) \
do { \
- if (!T) \
- { \
- peer_lock (peer); \
- THREAD_READ_ON(master,T,F,peer,V); \
- } \
+ if (!(T) && (peer->status != Deleted)) \
+ THREAD_READ_ON(master,T,F,peer,V); \
} while (0)
#define BGP_READ_OFF(T) \
do { \
if (T) \
- { \
- peer_unlock (peer); \
- THREAD_READ_OFF(T); \
- } \
+ THREAD_READ_OFF(T); \
} while (0)
#define BGP_WRITE_ON(T,F,V) \
do { \
- if (!T) \
- { \
- peer_lock (peer); \
- THREAD_WRITE_ON(master,(T),(F),peer,(V)); \
- } \
+ if (!(T) && (peer->status != Deleted)) \
+ THREAD_WRITE_ON(master,(T),(F),peer,(V)); \
} while (0)
#define BGP_WRITE_OFF(T) \
do { \
if (T) \
- { \
- peer_unlock (peer); \
- THREAD_WRITE_OFF(T); \
- } \
+ THREAD_WRITE_OFF(T); \
} while (0)
#define BGP_TIMER_ON(T,F,V) \
do { \
- if (!T) \
- { \
- peer_lock (peer); \
- THREAD_TIMER_ON(master,(T),(F),peer,(V)); \
- } \
+ if (!(T) && (peer->status != Deleted)) \
+ THREAD_TIMER_ON(master,(T),(F),peer,(V)); \
} while (0)
#define BGP_TIMER_OFF(T) \
do { \
if (T) \
- { \
- peer_unlock (peer); \
- THREAD_TIMER_OFF(T); \
- } \
+ THREAD_TIMER_OFF(T); \
} while (0)
#define BGP_EVENT_ADD(P,E) \
do { \
- peer_lock (peer); /* bgp event reference */ \
- thread_add_event (master, bgp_event, (P), (E)); \
+ if ((P)->status != Deleted) \
+ thread_add_event (master, bgp_event, (P), (E)); \
} while (0)
-#define BGP_EVENT_DELETE(P) \
+#define BGP_EVENT_FLUSH(P) \
do { \
- peer_unlock (peer); /* bgp event peer reference */ \
assert (peer); \
thread_cancel_event (master, (P)); \
} while (0)