Commit graph

434 commits

Author SHA1 Message Date
Martin Mares bc2fb68098 Parse CLI commands. We use the same parser as for configuration files (because
we want to allow filter and similar complex constructs to be used in commands
and we should avoid code duplication), only with CLI_MARKER token prepended
before the whole input.

Defined macro CF_CLI(cmd, args, help) for defining CLI commands in .Y files.
The first argument specifies the command itself, the remaining two arguments
are copied to the help file (er, will be copied after the help file starts
to exist). This macro automatically creates a skeleton rule for the command,
you only need to append arguments as in:

	CF_CLI(STEAL MONEY, <$>, [[Steal <$> US dollars or equivalent in any other currency]]): NUM {
		cli_msg(0, "%d$ stolen", $3);
	} ;

Also don't forget to reset lexer state between inputs.
1999-10-31 17:47:47 +00:00
Martin Mares b9672a845f The CLI I/O functions work as desired. 1999-10-31 15:43:44 +00:00
Martin Mares 7d3aab1c16 First steps of the Command Line Interface: I/O routines. 1999-10-29 12:10:10 +00:00
Martin Mares b93abffae4 Implemented unix-domain sockets. 1999-10-29 12:09:29 +00:00
Martin Mares 0d70292d88 Events now return a value. If it's non-zero, the event is re-queued
for processing in next event cycle. This can be used to prevent background
actions (hint: user commands) from hogging the CPU for too long time.
1999-10-29 12:08:49 +00:00
Martin Mares 92af6f309b Simplify handling of free chunks. 1999-10-29 10:08:27 +00:00
Martin Mares 54165b1315 Configure PATH_CONTROL_SOCKET.
autoconf.h is now written to obj/sysdep, the source tree is hopefully
completely read-only now.
1999-10-29 10:08:09 +00:00
Martin Mares ed6081502a Added skeleton of the client. Does nothing, but at least compiles. 1999-10-29 09:44:44 +00:00
Pavel Machek 41be4444f2 switch() { } done right. 1999-10-28 21:03:36 +00:00
Ondrej Filip c2250f91c7 Minor changes and bug fixes. Preparing for Exchange and higher states. 1999-10-19 16:13:06 +00:00
Ondrej Filip 96f1b8ba10 Huge changes. Neighbor and interface state machines rewritten.
It should be cleaner now, I'm preparing for file splitting.
Maybe I added some minor bugs. :-(
1999-10-18 21:48:51 +00:00
Pavel Machek f942a589ef FIXME's for rip added.
Will we ever able to generate packets saying "route 1.2.3.4 using someone else"?
1999-10-12 13:04:50 +00:00
Martin Mares 89dc383a8c Changed syntax of ip_class_mask, the old one was stupid. 1999-10-12 07:46:08 +00:00
Pavel Machek d3dd620b96 Filters: permit variables of prefix types, cleanup around
variables. TODO list added, hopefully complete. Use new features of
filters in bird.conf
1999-10-12 06:27:42 +00:00
Pavel Machek c79ec2ec19 Untested IPv6 support added. I do not know if it compiles in IPV6 mode. 1999-10-11 14:19:29 +00:00
Pavel Machek 720d911d77 Added constants of type prefix and pair, added their printing 1999-10-07 14:10:08 +00:00
Pavel Machek 4872cef4df Added examples of pairs and prefixes 1999-10-07 14:09:50 +00:00
Pavel Machek c9f8c1a855 FIXME's added. Hopefully fixme list is now complete for filters. 1999-10-07 13:38:26 +00:00
Martin Mares f782b72c53 Failure to set socket TOS is not a fatal error. 1999-10-02 11:06:44 +00:00
Martin Mares 507cb9e58b Don't forget to free large blocks. 1999-10-02 10:55:19 +00:00
Pavel Machek ac40c888c2 Obvious bugs in authentication fixed. 1999-10-02 10:44:48 +00:00
Pavel Machek 7db7b7db60 Case arg { 1: printf "one"; } works. You can not use two commands
after one label, yet.
1999-09-29 14:24:58 +00:00
Pavel Machek 4caa2231fc Make configuration use new case statement. 1999-09-29 14:23:11 +00:00
Ondrej Filip 2c1d1cc765 DD packet receiving in ExStart. 1999-08-25 18:44:50 +00:00
Ondrej Filip 1af664158d A structure for receiving DD seq packets added. 1999-08-24 18:32:26 +00:00
Ondrej Filip e3121112ab Preparing to send DD packets. 1999-08-24 14:42:51 +00:00
Pavel Machek 2981814066 Few FIXME's removed from auth, few FIXME's added to filter. 1999-08-20 09:59:39 +00:00
Pavel Machek bce8a34b12 Few fixme's fixed in rip (will not crash any more on request for
sending routing table - hopefully).

Next few steps in md5 authentication (not yet complete).
1999-08-18 13:19:33 +00:00
Martin Mares f651941402 Added a function for generating 32-bit random numbers. 1999-08-17 20:47:40 +00:00
Ondrej Filip b332fcdfc8 Better dumping. 1999-08-16 10:32:05 +00:00
Ondrej Filip 032df28048 Small bux fixes. A neigh_chstate added. 1999-08-10 12:06:45 +00:00
Ondrej Filip a7d388d23e Multiple "hton problems" fixed. Now we're in EXSTART state. 1999-08-09 18:59:37 +00:00
Ondrej Filip 2be22ddb4c "My own IP problem" fixed. 1999-08-09 18:49:50 +00:00
Ondrej Filip a4c2ee717c Bug fix in checksum calculation. 1999-08-09 18:34:08 +00:00
Ondrej Filip b1693b8f74 Bug in election fixed. 1999-08-09 18:11:51 +00:00
Ondrej Filip e83dc0d7e7 (Backup) Designated Router election added. 1999-08-09 17:58:01 +00:00
Ondrej Filip 8c51f96acf Some interface state machine changes. I found some problem in RFC,
trying to conntact authors.
1999-08-09 13:03:28 +00:00
Martin Mares 55e06729b1 Forgot to do a `cvs add', grr. 1999-08-03 19:57:43 +00:00
Martin Mares d7975d261f Ouch, how could I write this? 1999-08-03 19:38:48 +00:00
Martin Mares 4532a89e31 Taught Netlink how to behave in IPv6 world. 1999-08-03 19:37:37 +00:00
Martin Mares 4f22c98185 Support for IPv6 sockets. How nice one doesn't have to ifdef around
ten years of API evolution :-)
1999-08-03 19:36:51 +00:00
Martin Mares dce267832a Basic support for IPv6. The system-dependent part doesn't work yet,
but the core routines are there and seem to be working.

   o  lib/ipv6.[ch] written
   o  Lexical analyser recognizes IPv6 addresses and when in IPv6
      mode, treats pure IPv4 addresses as router IDs.
   o  Router ID must be configured manually on IPv6 systems.
   o  Added SCOPE_ORGANIZATION for org-scoped IPv6 multicasts.
   o  Fixed few places where ipa_(hton|ntoh) was called as a function
      returning converted address.
1999-08-03 19:36:06 +00:00
Martin Mares 707ef83378 Pruned the TODO list. 1999-08-03 19:35:01 +00:00
Martin Mares 9c11ec9efc Implemented a Table-to-Table protocol a.k.a The Pipe. 1999-08-03 19:34:26 +00:00
Martin Mares 8c943173ce Allow announces of rte's to protocols in FS_FEEDING state.
Else, we would get chicken-egg problems in the table-to-table protocol.
1999-08-03 19:33:45 +00:00
Martin Mares 7de45ba4a0 Kernel route syncer supports multiple tables.
The changes are just too extensive for lazy me to list them
there, but see the comment at the top of sysdep/unix/krt.c.
The code got a bit more ifdeffy than I'd like, though.

Also fixed a bunch of FIXME's and added a couple of others. :)
1999-08-03 19:33:22 +00:00
Martin Mares 9d8856897f Protocol engine bug fixes:
o  Make proto_config->table always point to the right
      table even if it should be the default one.
   o  When shutting down, kill protocol in reverse order
      of their priority.
   o  When stopping a protocol down, disconnect it from
      routing tables immediately instead of waiting
      for the delayed protocol flush event.

Also added a protocol instance counter (used by KRT code
in very magic ways).
1999-08-03 19:31:54 +00:00
Martin Mares b6628a8c98 Added macros for walking lists backwards. 1999-08-03 19:31:30 +00:00
Martin Mares 9a706f32af Added missing structure declarations. 1999-08-03 19:31:11 +00:00
Martin Mares 8edf2361f9 Cleaned up handling of interface patterns:
o  Parsing of interface patterns moved to generic code,
      introduced this_ipatt which works similarly to this_iface.
   o  Interface patterns now support selection by both interface
      names and primary IP addresses.
   o  Proto `direct' updated.
   o  RIP updated as well, it also seems the memory corruption
      bug there is gone.
1999-08-03 19:30:49 +00:00