Age | Commit message (Collapse) | Author |
|
|
|
|
|
Avoid bugs, and improve cache locality by allowing message lists
to be read/only.
|
|
Fix printf format warning and make capability table 'const static'
|
|
smux_trap and oid_copy should allow read-only source.
|
|
Message lists can be read-only, and hash tables are local to this
code.
|
|
The finite state machine table is immutable.
|
|
When a BGP instance is deleted with lots of routes and neighbors
it is possible for the peer rsclient queue to run after
bgp_delete has been called. This would lead to bgpd crashing,
see https://bugzilla.vyatta.com/show_bug.cgi?id=3436
The fix is to add reference counting to the BGP instance and defer
actual freeing until all references are gone.
This patch also fixes a memory leak where the self-reference
peer instance was being created but never freed.
The check in bgp_clear_route is no longer valid because it is possible
for it to be called when peer is in Deleted state during cleanup.
|
|
These variables are const.
|
|
|
|
|
|
Don't need big buffer 1024 to hold IPV4 (INET_ADDRSTRLEN)
or IPv6 (INET6_ADDRSTRLEN) message.
|
|
Vyatta Bug 3999
|
|
When BGP crashes, sometimes all we get to see is syslog.
|
|
An external user was building on system without IPv6 and
it wouldn't work.
|
|
Don't need command twice.
|
|
ospf6d will crash if attempting to remove interface when no areas have been
defined Check if any areas have been defined. Should prevent use of empty
pointer.
|
|
ospf6d will crash if this command is executed on a non-border-router.
Included test to verify that any routes are defined, preventing empty
pointer from being used.
|
|
Suggestion: Makes no sense to me that the statement to remove ospf6
configuration is located in OSPF6D_NODE.
Moved to CONFIG_NODE next to matching define command.
|
|
ospf6d will crash if the same range is defined twice.
There was no check if the same range had previously been defined,
thereby causing a later assert to fail.
|
|
This may fix vyatta BUG 3096. The reference count for OSPF route table was
never completely freed on deleting all neighbors.
|
|
Need to check both IFF_UP and IFF_RUNNING if link-detect is enabled,
before announcing routes.
|
|
The MTU data in the netlink message is always unsigned 32 bits.
Don't use integer.
|
|
|
|
Do some cleanup work on recently added meta-queue code:
* use table rather than switch
* indent with quagga standard indentation
* since meta_queue_new is only used at initialization
allocation failure should be fatal.
|
|
Add more prototypes and make some functions static
|
|
|
|
There are times that configuration scripts want to run vtysh but
don't want to get error messages or failed exit status
|
|
If passed a bad command, return non-zero exit code
|
|
Add environment variable (VTYSH_LOG) for logging.
If a command fails, exit with non-zero exit code and don't
continue multipart commands.
|
|
Vtysh is used in pipelines and it helps if the output starts right
away instead of waiting for a whole buffer to fill.
|
|
|
|
The cmd_nodes used to configure vty, can mostly be static so
(basic data hiding 101).
|
|
Use Ansi-C prototypes rather than old K&R method of declaring
function without arguments
|
|
|
|
Simple conversion of XMALLOC/memset to XCALLOC
|
|
* configure.ac: Add a --enable-linux24-tcp-md5 argument, to compile in
support for the old TCP-MD5 patch for Linux 2.4 systems. This overrides
auto-detection of TCP-MD5 supported by the target system.
* lib/sockopt.c: (sockopt_tcp_signature) add in a variant for the old
Linux 2.4, TCP_MD5_AUTH variant of TCP-MD5 support, conditional
on the previous configure arg.
|
|
- aspath_gettoken(): use as_t to fix 4-byte ASN scanning (bug #484)
- set_aspath_prepend_cmd(): use CMD_AS_RANGE in message to match
actual range
- no_set_aspath_prepend_val_cmd(): idem
- set_aspath_exclude_cmd(): idem
- no_set_aspath_exclude_val_cmd(): idem
|
|
|
|
Compiled on 32-bit and 64-bit linux gcc 4.1.2 platforms.
No run-time testing on 32-bit and limited run-time testing on 64-bit.
|
|
Macro SNMP_INTEGER() prepares data which is eventually processed
by asn_build_int(). SNMP_INTEGER() was using "int32_t" whereas
asn_build_int() uses "long". On 32-bit systems these are the
same, both 4 bytes, but on x86 64-bit systems "long" is 8 bytes.
asn_build_int()'s reaction to an improperly sized value is to return
a NULL pointer. Quagga's smux.c would eventually get this NULL
pointer and use it in calculations to determine how much data to send
over the smux connection, resulting in garbage being sent to the
SNMP agent.
Corrected SNMP_INTEGER() to use "long".
Tested on 32-bit and 64-bit x86 Linux 2.6.27.10 systems running
Quagga 0.99.11 with bgpd smux.
|
|
"no ospf abr-type standard" was broken
|
|
Fix a potential problem (most probably not triggering a real problem, at
least on Linux). When an interface goes down and ripd tries to delete the
corresponding route it errorneously passes the interface's index instead of
the metric to zebra.
|
|
* lib/workqueue.c: free-ing workqueues had never been tested obviously,
queue's thread was not being stopped
* bgpd/bgpd.c: null out freed workqueues, to prevent acting on freed
workqueues
|
|
|
|
|
|
* bgpd/bgp_community.c: (community_del_val) Fix bug in memcpy that was
using the wrong size on architectures where a pointer is not 32 bits.
|
|
|
|
When bgp calls getaddrinfo, it gets both ipv6 and ipv4 addresses.
Unless IPV6_ONLY is set on Linux, only the ipv6 bind will succeed,
and the IPV4 connections will come in as mapped connections on the
IPV6 socket.
|
|
|