summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2009-06-12[cleanup] add const attribute to lib/if.c::if_dumpStephen Hemminger
2009-06-12[cleanup] Convert XMALLOC/memset to XCALLOCStephen Hemminger
Simple conversion of XMALLOC/memset to XCALLOC
2009-06-12[bgpd] Add support for the old Linux 2.4, TCP_MD5_AUTH RFC2385 patchPaul Jakma
* 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.
2009-06-09[bgpd] Fixed as-path prepend/exclude ASN handlingDenis Ovsienko
- 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
2009-06-02Merge remote branch 'origin/master'Paul Jakma
2009-06-02[snmp] Compiler warning fixes for when "--enable-snmp" is configured.Chris Caputo
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.
2009-06-02[smux] 64-bit fix for lib/smux.h SNMP_INTEGER() macroChris Caputo
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.
2009-06-02[ospfd] fix vty ospfd no ospf abr-type standardFrancesco Dolcini
"no ospf abr-type standard" was broken
2009-06-02[ripd] Fix metrix in call to rip_zebra_ipv4_deleteKrisztian Kovacs
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.
2009-06-02[bgp] Fix crash on SIGHUP, deref of freed workqueuesSteve Hill
* 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
2009-06-01[trivia] Fixed typos in communities text (#334)Denis Ovsienko
2009-06-01[doc] Stick with quagga.net for consistency (#436)Denis Ovsienko
2009-05-29[bgpd] 64-bit bugfix in community_del_val by Jeremy Jackson <jerj@coplanar.net>Andrew J. Schorr
* 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.
2009-05-08[release] Bump version to 0.99.12Paul Jakma
2009-05-08Fix bgp ipv4/ipv6 accept handlingStephen Hemminger
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.
2009-05-08[build] tools/multiple-bgpd.sh should be in 'make dist'Paul Jakma
2009-04-30[bgpd] AS4 bugfix by Chris Caputo <ccaputo@alt.net>Denis Ovsienko
* 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.
2009-04-13Dmitry Tejblum <tejblum@yandex-team.ru>Denis Ovsienko
Don't enable HAVE_BSD_STRUCT_IP_MREQ_HACK for FreeBSD 7.0 and upper, because OS behaviour has changed.
2009-04-10Justified OSPF cost function names and added support for:Denis Ovsienko
ospf cost <1-65535> A.B.C.D no ospf cost <1-65535>
2008-11-29[lib] Fix timer precision.Joakim Tjernlund
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)
2008-11-29[lib] Move type cast in Fletcher checksumJoakim Tjernlund
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.
2008-11-29[rpm] some defaults for Fedora are way out of datePaul Jakma
* quagga.spec.in: No need to default to accomodate now ancient versions of Fedora
2008-11-24[lib] fix missing sockunion_normalise_mappedPaul Jakma
* lib/sockunion.c: (sockunion_accept) sockunion needs to be normalised here, as it used to before this was moved to a dedicated function..
2008-11-16[bgpd] Add 'show bgp views' commandMichael Lambert
* 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>
2008-11-16[lib] Switch Fletcher checksum back to old ospfd versionPaul Jakma
* 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.
2008-10-04[vtysh] Add commands from zebra_routemap.c to vtyshBartek Kania
* Makefile.am: vtysh should also pull in commands from zebra_routemap.c Signed-off-by: Paul Jakma <paul@quagga.net>
2008-10-02Merge branch 'bgpd/fsm'Paul Jakma
2008-10-02[release] Bump version to 0.99.11Paul Jakma
2008-09-24[bgpd] Fix definition of an rsclient commandMichael Lambert
* 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>
2008-09-24[ospfd] Fix SEGV during startup introduced in recent commitJoakim Tjernlund
* 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>
2008-09-24[ospfd] Move passive interface checkJoakim Tjernlund
* ospf_packet.c: Apply passive check and drop for all packages and not just Hellos. Signed-off-by: Paul Jakma <paul@quagga.net>
2008-09-24[build] Fix --enable-pie so it can actually be disabledPaul P Komkoff Jr
Signed-off-by: Paul Jakma <paul@quagga.net>
2008-09-09[lib] re-enable conversion of v6mapped INET6 sockunions to regular INETPaul Jakma
* 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.
2008-09-09[bgpd] Allow accepted peers to progress even if realpeer is in ConnectPaul Jakma
* 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.
2008-09-06[bgpd] Document the FSM dummy-peer race that sometimes afflicts session setupPaul Jakma
* 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.
2008-09-04Merge branch 'restricted-mode'Paul Jakma
2008-09-04[ospfd] Minor enhancements to recent self-host-routes suppression patchPaul Jakma
* 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.
2008-09-03Merge commit 'remotes/jocke/delete_ghost_route'Paul Jakma
2008-09-02Merge commit '53d0deceeb855493aa03c59477f8af7f6bb75140'Paul Jakma
2008-09-02[ospfd] Restructure opsf_if_update() and ospf_network_run()Joakim Tjernlund
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>
2008-09-01Merge commit 'remotes/jocke/ospf_neighbour'; commit ↵Paul Jakma
'remotes/jocke/snmp_crosscompile'
2008-08-26[doc] Update HACKING to reflect SCM changes and latest practicePaul Jakma
2008-08-26testPaul Jakma
2008-08-26Revert "[bgpd] Add 'bgp open-accept' option, to send OPEN immediately on ↵Paul Jakma
accepted conns" Revert commit d664ae1182c29b74b409bc8594b7bd0575e91ce9. An experimental patch which violates RFC4271 quite badly, but managed to accidently sneak its way in.
2008-08-25Set destination for PtP links to OSPF_ALLSPFROUTERS.Joakim Tjernlund
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.
2008-08-25Ignore host routes to self.Joakim Tjernlund
PtP links with /32 masks adds host routes to the remote host, see RFC 2328, 12.4.1.1, Option 1. Make sure that such routes are ignored
2008-08-25Make --enable-snmp cross compile and make libcrypto optional with ↵Joakim Tjernlund
--without-crypto Autoconfig work by me, the rest was done by "Kirill K. Smirnov" <lich@math.spbu.ru>
2008-08-25Fix SEGV in ip ospf neighbor allJoakim Tjernlund
Dont use vty->index in show_ip_ospf_neighbor_all_cmd(), It is invalid, use ospf_lookup() instead.
2008-08-23[vty] Add support for a 'restricted mode' with anonymous vty connectionsPaul Jakma
* lib/command.h: Add a RESTRICTED_NODE, intended for use with anonymous, 'no login' vtys, to provide a subset of 'view' mode commands. * lib/command.c: Add RESTRICTED_NODE bits, nothing special, just following VIEW_NODE. * lib/vty.c: (vty_auth) enable authentication should fall back to restricted/view node as appropriate. (vty_create) init vty's to restricted/view node as appropriate, for the 'no login' case. (vty_{no_,}restricted_mode_cmd) config commands to enable 'anonymous restricted' in vty configuration. (vty_config_write) 'anonymous restricted' config. (vty_init) Install some commands to restricted mode, and the 'anonymous restricted' config commands into VTY_NODE. * bgpd/*.c: Install some of the safe(r) BGP commands into 'restricted mode', i.e. lookup commands of non-sensitive data. Useful with looking-glass route-servers.
2008-08-23[trivia] Make 'make dist' happy about ChangeLog expungePaul Jakma
* ChangeLog: Add back a dummy, top-level ChangeLog * m4/Makefile.am: remove ChangeLog from EXTRA_DIST, why it was listed there, who knows.