Age | Commit message (Collapse) | Author |
|
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.
|
|
|
|
* bgpd/bgp_aspath.c: (aspath_make_str_count) "assert (len < str_size)" was
getting hit under certain 4-byte ASN conditions. New realloc strategy.
* bgpd/bgp_aspath.c: (aspath_key_make) const warning fix.
"%d" -> "%u" 4-byte ASN corrections. Prevent negative number when ASN is
above 2^31.
|
|
Don't enable HAVE_BSD_STRUCT_IP_MREQ_HACK for FreeBSD 7.0 and upper,
because OS behaviour has changed.
|
|
ospf cost <1-65535> A.B.C.D
no ospf cost <1-65535>
|
|
Whenever a thread adds an timer funcname_thread_add_timer_timeval() gets called
to add the timer. Before adding the timer a quagga_gettimeofday() call
is made to do some time house keeping. However quagga_gettimeofday() only
updates recent_time, not relative_time that is used to calculate
the alarm_time. Replace with quagga_get_relative (NULL)
|
|
The int type cast should be on the whole expression
passed to the mod operator. Otherwise it won't work
when/if c0/c1 is unsigned.
Making c0/c1 unsigned makes it possible to use 5802
as MODX value.
|
|
* quagga.spec.in: No need to default to accomodate now ancient versions of
Fedora
|
|
* lib/sockunion.c: (sockunion_accept) sockunion needs to be normalised here,
as it used to before this was moved to a dedicated function..
|
|
* bgp_vty.c: (show_bgp_views_cmd) new command to list all defined
views.
(with small edits by Paul Jakma)
Signed-off-by: Paul Jakma <paul@quagga.net>
|
|
* lib/checksum.c: (fletcher_checksum) Switch the second phase of the checksum
back to the old ospfd logic.
The isisd-derived version:
a) is very hard to follow
b) had some kind of subtle bug that caused it be wrong when c0=0 and c1=254
(potentially fixable by doing the mods before adjusting x and y)
Additionally:
- explicitely cast expressions using non-internal variables to int, to ensure
the result is signed.
- defensively change the length argument to 'size_t', to ensure the code
works with that argument being unsigned..
Thanks to Joakim Tjernlund for the investigative work into this bug.
* tests/test-checksum.c: new file to exercise the checksum code.
|
|
* Makefile.am: vtysh should also pull in commands from zebra_routemap.c
Signed-off-by: Paul Jakma <paul@quagga.net>
|
|
|
|
|
|
* bgp_route.c: (show_ip_bgp_view_rsclient_route_cmd) Add the missing "ip"
to the command string.
Signed-off-by: Paul Jakma <paul@quagga.net>
|
|
* ospfd/ospfd.c: (opsf_if_update) Check if ospf_lookup() returns NULL.
Fixes bug introduced with recent ospf_network_run changes in
a49eb30a, where SEGV will happen if not the "router ospf" command has
been executed before the first interfaces are reported by zebra.
Signed-off-by: Paul Jakma <paul@quagga.net>
|
|
* ospf_packet.c: Apply passive check and drop for all packages
and not just Hellos.
Signed-off-by: Paul Jakma <paul@quagga.net>
|
|
Signed-off-by: Paul Jakma <paul@quagga.net>
|
|
* lib/sockunion.c: Re-enable conversion of v6mapped INET6 sockunions to
regular INET sockunions, which was disabled in 0df7c9, as it leads to
failures in sockunion_cmp.
(sockunion_normalise_mapped) consolidate here
(sockunion_accept) remove conversion code altogether here - no sockunion
is created
(sockunion_get{sockname,peername}) normalise newly created sockunion.
|
|
* bgpd/bgp_packet.c: (bgp_open_receive) Try fix the little race in the FSM,
where a accept-peer that progress faster than realpeer gets closed down if
realpeer is still just in Connect, by allowing the realpeer to be
bgp_stop'ed and doing the regular swapping-of-FSM state.
|
|
* bgp_packet.c: (bgp_open_receive) the accept-peer hack can sometimes
cause a race between two peers that try to establish sessions to each other,
causing session setup to fail when it should have succeeded. In the worst
case, the race can 'loop', causing prolonged failure to establish sessions.
|
|
|
|
* ospf_spf.c: (ospf_spf_process_stubs) Track whether
parent router vertex is the root, so that the host-route
suppression logic need only be activated for such vertices.
Move the actual logic to ospf_intra_add_stub.
* ospf_route.c: (ospf_intra_add_stub) Main test of link moved
here, notionally more appropriate.
|
|
|
|
|
|
Add an struct interface paramenter and adjust the affected
code accordingly.
The old code was a mess looping over all interfaces several times
when one interface was added/changed.
* ospfd/ospfd.h: Add struct interface parameter to ospf_if_update()
* ospfd/ospf_zebra.c: Add ifp arg to ospf_if_update() calls.
(ospf_interface_address_delete) delete ospf_if_update() call,
redundant as function calls ospf_if_free() itself.
* ospfd/ospfd.c: (ospf_network_unset) handle deconfiguration here,
rather than ospf_if_update.
(ospf_network_run_interface) ospf_network_run, for
any given interface.
(ospf_network_run) move guts to previous, and use it.
(ospf_if_update) Adjust to take struct interface as argument, as
all callers have a specific ifp in mind.
Iterate over ifp's connected list and call ospf_network_run_interface
instead of ospf_network_run, turning this path into O(nm) rather
than O(n^2).
Adjust all code dealing with opsf_if_update and ospf_network_run to
pass the new struct interface * arg.
(some minor modifications and bug-additions by Paul Jakma).
Signed-off-by: Paul Jakma <paul@quagga.net>
|
|
'remotes/jocke/snmp_crosscompile'
|
|
|
|
|
|
accepted conns"
Revert commit d664ae1182c29b74b409bc8594b7bd0575e91ce9. An experimental
patch which violates RFC4271 quite badly, but managed to accidently sneak
its way in.
|
|
Update ospf_db_desc_send(), ospf_ls_upd_queue_send() and ospf_ls_req_send()
to always use OSPF_ALLSPFROUTERS for PtP links.
See RFC 2328, chap 8.1 for details:
"The IP destination address for the packet is selected as
follows. On physical point-to-point networks, the IP
destination is always set to the address AllSPFRouters."
Without this, it won't be possible to establish adjacencies on
multiple unnumbered links to the same router.
ChangeLog:
2008-07-25 Joakim Tjernlund <Joakim.Tjernlund@transmode.se>
* ospfd/ospf_packet.c: Set destination for PtP links to
OSPF_ALLSPFROUTERS.
|