summaryrefslogtreecommitdiffstats
path: root/lib
Commit message (Collapse)AuthorAgeFilesLines
* Cancel thread in work_queue_freeStephen Hemminger2009-04-061-0/+3
| | | | | If shutting down, thread may still be pending, so cancel it. Fixes one possible OOPS in BGP
* Put symbolic backtrace on system logStephen Hemminger2009-03-091-6/+15
| | | | When BGP crashes, sometimes all we get to see is syslog.
* sockopt_tcp_signature: sin6 requires IPV6Stephen Hemminger2009-02-191-0/+2
| | | | | An external user was building on system without IPV6 and it wouldn't work.
* whitespace fixStephen Hemminger2009-02-092-2/+2
|
* revert: don't bother with gcc builtin_expect()Stephen Hemminger2009-02-091-8/+8
| | | | Doesn't really help and unlikely to get upstream (pun intended).
* Merge branch 'master' of /home/shemminger/src/quagga into jennerStephen Hemminger2009-02-092-2/+2
|\
| * [lib] Fix timer precision.Joakim Tjernlund2008-11-291-1/+1
| | | | | | | | | | | | | | | | 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)
| * [lib] Move type cast in Fletcher checksumJoakim Tjernlund2008-11-291-1/+1
| | | | | | | | | | | | | | | | 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.
* | Handle rename to existing deviceStephen Hemminger2008-12-191-6/+11
| | | | | | | | | | | | In the case of rename, delete_retain would be called twice. Once when the interface is removed from the system, and again when interface is being replaced during rename.
* | Handle interfaces coming back from deadStephen Hemminger2008-12-121-15/+18
| | | | | | | | | | | | | | Need to handle the case where interface comes back after being deleted. After deletion state is retained but ifindex is set to IFINDEX_INTERNAL. When new interface arrives with same name, then update index
* | Fix inversion of likely/unlikely in assertStephen Hemminger2008-12-021-11/+3
| |
* | Minor whitespaceStephen Hemminger2008-12-012-2/+1
| | | | | | | | | | Make the quagga upstream and vyatta where only difference was white space.
* | Revert "Add compiler directive to mark code paths that log as cold"Stephen Hemminger2008-12-012-26/+18
| | | | | | | | | | | | This reverts commit ebc04ce20a871c99dbb116a4fbada967dd750c43. Don't really need this and it would be too hard to convince upstream to take it.
* | Make command nodes static (again)Stephen Hemminger2008-12-011-4/+4
| | | | | | | | Change lost in merge.
* | Make command nodes static (again)Stephen Hemminger2008-12-011-6/+6
| | | | | | | | Change lost in merge.
* | Merge branch 'master' of /home/shemminger/src/quagga into jennerStephen Hemminger2008-12-013-54/+45
|\| | | | | | | | | | | Conflicts: lib/checksum.c
| * [lib] fix missing sockunion_normalise_mappedPaul Jakma2008-11-241-0/+1
| | | | | | | | | | * lib/sockunion.c: (sockunion_accept) sockunion needs to be normalised here, as it used to before this was moved to a dedicated function..
| * [lib] Switch Fletcher checksum back to old ospfd versionPaul Jakma2008-11-162-33/+21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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.
* | Fix Fletcher checksum bug.Joakim Tjernlund2008-11-071-39/+37
| | | | | | | | | | | | | | | | | | | | The new impl. of the Fletcher checkum is buggy. I have changed back the critical part to the orginal method and fixed the buggy one, hid it behind UNSIGNED_FLETCHER. Also did some simple optimizations to reduce the number of instructions in the hot path for both fletcher_checksum() and in_cksum().
* | Merge in latest quagga (0.99.11)Stephen Hemminger2008-10-2718-4332/+217
|\ \ | | | | | | | | | Merge in current upstream version of quagga.
| * | Merge branch 'master' of /home/shemminger/src/quagga into upstreamStephen Hemminger2008-10-1324-4298/+292
| |\| | | | | | | | | | Resolve all conflicts by using upstream version.
| | * [lib] re-enable conversion of v6mapped INET6 sockunions to regular INETPaul Jakma2008-09-091-40/+20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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.
| | * Merge branch 'restricted-mode'Paul Jakma2008-09-044-4/+75
| | |\
| | | * [vty] Add support for a 'restricted mode' with anonymous vty connectionsPaul Jakma2008-08-234-4/+75
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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.
| | * | Make --enable-snmp cross compile and make libcrypto optional with ↵Joakim Tjernlund2008-08-251-1/+3
| | |/ | | | | | | | | | | | | | | | | | | --without-crypto Autoconfig work by me, the rest was done by "Kirill K. Smirnov" <lich@math.spbu.ru>
| | * [administrivia] Git should ignore backup files and .loT filesPaul Jakma2008-08-221-0/+4
| | |
| | * [trivia] Remove ChangeLog files, as this data is now maintained in SCMPaul Jakma2008-08-221-4270/+0
| | |
| | * [warnings] Fix various SOS warningsPaul Jakma2008-08-224-2/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2008-08-15 Paul Jakma <paul.jakma@sun.com> * */*: Fix various problems flagged by Sun Studio compiler. - '<qualifier> <storage>' obsolescent in declarations - empty statements (';' after ALIAS definitions) - implicit declarations (e.g printstack in lib/log.c) - "\%" in printf string instead of "%%" - loops that return on the first iteration (legitimately, but compiler can't really know), e.g. bgp_routemap.c - internal declarations which mask prototypes.
| | * [lib] Fix mistake in tcp-md5sig commit which broke compile on BSDPaul Jakma2008-08-221-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | 2008-08-15 Paul Jakma <paul.jakma@sun.com> * lib/sockopt.c: (sockopt_tcp_signature) ifdef'ing hid variable declaration for HAVE_DECL_TCP_MD5SIG && !GNU_LINUX, breaking compile - fix.
| | * [lib] mes_lookup string lookup table argument should be marked constStephen Hemminger2008-08-225-4/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | 2008-08-14 Stephen Hemminger <stephen.hemminger@vyatta.com> * lib/log.{c,h}: struct message argument should point to const * */*.c: adjust to suit, Signed-off-by: Paul Jakma <paul@quagga.net>
| | * [lib] hash compare function arguments ought to be const qualifiedStephen Hemminger2008-08-225-16/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2008-08-14 Stephen Hemminger <stephen.hemminger@vyatta.com> * lib/hash.h: (struct hash) Hash comparator callback really ought to treat storage behind arguments as constant - a compare function with side-effects would be evil. * */*.c: Adjust comparator functions similarly, thus fixing at least a few compiler warnings about const qualifier being dropped. Signed-off-by: Paul Jakma <paul@quagga.net>
| | * [lib] Add fletcher checksum implementationJingjing Duan2008-08-222-0/+80
| | | | | | | | | | | | | | | | | | | | | | | | | | | 2008-08-13 Jingjing Duan <Jingjing.Duan@sun.com> * lib/checksum.?: (fletcher_checksum) implementation of Fletcher checksum, as per RFC1008. Signed-off-by: Paul Jakma <paul@quagga.net>
| | * [vty] Allow delete during password entryRoy2008-08-221-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | 2008-08-13 roy <quagga@de.vio.us> * lib/vty.c: (vty_delete_char) move check for authentication down a bit, so we do the delete, but still not re-write of line. Signed-off-by: Paul Jakma <paul@quagga.net>
| | * [administrivia] Add .gitignore files, based on .cvsignores.Paul Jakma2008-08-221-0/+12
| | |
| | * [bgpd] TCP-MD5: password vty configuration and initial Linux supportPaul Jakma2008-07-215-2/+90
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2008-07-21 Paul Jakma <paul.jakma@sun.com> * bgp_packet.c: (bgp_open_receive) fix warning in a zlog call * bgp_vty.c: (bgp_vty_return) add return code * bgpd.c: (bgp_master_init) setup the socket list. * bgp_network.c: Remove the dual IPv4/6 socket thing for now, which was implemented by Michael, until such time as its clear its required for Linux (see sockopt comments). IPv6 support, including IPv4 sessions on AF_INET6 sockets, therefore is broken, and the '-l 0.0.0.0' arguments would need to be given to bgpd to make things work here. 2008-07-21 Michael H. Warfield <mhw@wittsend.com> YOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org> Tomohiko Kusuda <kusuda@inetcore.com> Leigh Brown <leigh@solinno.co.uk> * bgp_network.c: (bgp_md5_set_one) shim between libzebra tcp-md5 sockopt and bgpd. (bgp_md5_set_socket) Helper for bgp_connect (bgp_md5_set) setup TCP-MD5SIG for the given peer. (bgp_connect) call out to bgp_md5_set_socket for the outgoing connect socket. (bgp_socket) save references to the listen sockets, needed if TCP-MD5SIG is applied later or changed. * bgp_vty.c: (*neighbor_password_cmd) New 'neighbor ... password' commands. * bgpd.c: (peer_{new,delete) manage TCP-MD5 password (peer_group2peer_config_copy) inherit TCP-MD5 password (peer_password_{un,}set) orchestrate the whole add/remove of TCP-MD5 passwords: applying checks, stopping peers, and trying to return errors to UI, etc. (bgp_config_write_peer) save password. Fix missing newline in writeout of neighbor ... port. 2008-07-21 Paul Jakma <paul.jakma@sun.com> * sockunion.c: ifdef out various places that converted v4mapped sockets to pure v4. Doesn't seem necessary at all, presumably a workaround for now historical inet_ntop bugs (?) 2008-07-21 Michael H. Warfield <mhw@wittsend.com> YOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org> * sockopt.{c,h}: (sockopt_tcp_signature) Add TCP-MD5SIG support.
| | * [lib] trivial: add const qualifier to stream_put/writePaul Jakma2008-06-073-4/+9
| | | | | | | | | | | | | | | | | | | | | 2008-06-07 Paul Jakma <paul@jakma.org> * stream.{c,h}: (stream_{put,write}) add const qualifier to source argument. Change u_char to void *.
| | * + initial edition of meta-queue for RIB updates processing (bug #431)Denis Ovsienko2008-06-023-17/+9
| | |
| | * [zebra/linux] Use BPF to filter out responses, to try avoid netlink overrunsPaul Jakma2008-05-291-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | 2008-05-29 Stephen Hemminger <stephen.hemminger@vyatta.com> * rt_netlink.c: (netlink_install_filter) BPF filter to catch and drop responses to zebra's own route messages. (kernel_init) add BPF filter on the netlink socket.
| | * [lib] Fix the struct message LOOKUP function to be more robustPaul Jakma2008-02-283-10/+34
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2008-02-28 Paul Jakma <paul.jakma@sun.com> * log.c: (mes_lookup) Sowmini Varadhan diagnosed a problem where this function can cause a NULL dereference, on lookups for unknown indices, or messages with NULL strings. Can occur, e.g., debug logging code when processing received messages. Fixed to accept a pointer to a default string to be used if there is no match. * log.h: LOOKUP adjusted to match
| | * [lib/linklist] Enforce "nodes must have data" invariant more rigorouslyPaul Jakma2008-02-282-5/+23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2008-02-28 Paul Jakma <paul.jakma@sun.com> * linklist.c: This implementation expects that the data pointer not be null, e.g. listgetdata() asserts this. The list add methods don't apply the same sanity check. Noted by Jim Carlson in bug #437.
| | * [c++] remove/rename some names in headers that clash with C++ reserved wordsPaul Jakma2008-02-261-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2008-01-30 Peter Szilagyi <sp615@hszk.bme.hu> * lib/stream.h: Remove named 'new' parameter in prototype for c++ header compatibility. * ospfd/ospf_opaque.h: ditto * ospfd/ospfd.h: Renamed struct export to _export for c++ header compatibility. * ospf6d/ospf6_area.h: ditto
| | * [link-detect] Improve BSD support.Andrew J. Schorr2008-01-112-3/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2008-01-11 Andrew J. Schorr <ajschorr@alumni.princeton.edu> * lib/zebra.h: Revert previous change, no need to include <net/if_media.h> here. * zebra/ioctl.c: If HAVE_BSD_LINK_DETECT is defined, include <net/if_media.h> (if_get_flags) Remove debug messages about BSD link state. * zebra/kernel_socket.c: (bsd_linkdetect_translate) If link state is unknown, we should set the IFF_RUNNING flag.
| | * [link-detect] Try to get BSD link-detect to work properly.Andrew J. Schorr2008-01-102-0/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2008-01-10 Ingo Flaschberger <if@xip.at> * configure.ac: Define HAVE_BSD_LINK_DETECT if <net/if_media.h> is present. * lib/zebra.h: If HAVE_BSD_LINK_DETECT is defined, include <net/if_media.h>. * zebra/ioctl.c: (if_get_flags) If HAVE_BSD_LINK_DETECT, use the SIOCGIFMEDIA ioctl to ascertain link state. * zebra/kernel_socket.c: (bsd_linkdetect_translate) New function to map the ifm_data.ifi_link_state value into the IFF_RUNNING flag. (ifm_read) Call bsd_linkdetect_translate to fix the IFF_RUNNING flag before calling if_flags_update.
| | * [lib] add mising UL qualifier to numerical constantPaul Jakma2008-01-082-1/+7
| | | | | | | | | | | | | | | | | | | | | | | | 2008-01-08 Pavol Rusnak <prusnak@suse.cz> * memory.c: (mtype_memstr) Fix accidental shift past width of type, constant should have been forced to UL, rather than being left to default to int.
| | * + fixed bug #418 (changing address on an existing interface doesn't cause ↵Denis Ovsienko2007-11-124-11/+41
| | | | | | | | | | | | existing static routes to be revalidated)
| | * [snmp-smux] Fix problems if 'smux peer ...' is issued multiple timesPaul Jakma2007-10-222-2/+17
| | | | | | | | | | | | | | | | | | | | | 2007-10-22 Lorenzo Colitti <lorenzo@colitti.com> * smux.c: (smux_stop) Avoid cancelling a defunct thread pointer (smux_start) Stop smux before trying to start it, possibly again.
| | * + pidfiles are now always created with 0644 perms instead if LOGFILE_MASK (0600)Denis Ovsienko2007-10-042-3/+10
| | |
| | * [privs/Solaris] Quagga should work in zones with IP instancesPaul Jakma2007-09-182-0/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | 2007-09-18 Paul Jakma <paul.jakma@sun.com> * privs.c: definition of ZCAP_NET_ADMIN on Solaris should be PRIV_SYS_IP_CONFIG, when that's available. Thus allowing Quagga to work with in Solaris zones with exclusive IP instances.
| | * Bug #362 is fixed now.Denis Ovsienko2007-08-213-0/+36
| | |
| | * Merged own patch for the bug #391 (debugging and comments mostly).Denis Ovsienko2007-08-132-0/+6
| | |