diff options
author | Martin Mares <mj@ucw.cz> | 1999-11-17 13:14:44 +0100 |
---|---|---|
committer | Martin Mares <mj@ucw.cz> | 1999-11-17 13:14:44 +0100 |
commit | 62a463954815748d0d82da0e30651e6eea7bc9cf (patch) | |
tree | 4df691d34dc346791f56cd04e71dacc9979d5cd0 /nest/cli.c | |
parent | 30770df2ab33ffbfd75a9478265ac5e1a1db98d9 (diff) | |
download | bird-62a463954815748d0d82da0e30651e6eea7bc9cf.tar bird-62a463954815748d0d82da0e30651e6eea7bc9cf.zip |
Added some temporary examples of how to define CLI commands (search for CF_CLI).
To define a new command, just add a new rule to the gramar:
CF_CLI(COMMAND NAME, arguments, help-args, help-text) {
what-should-the-command-do
} ;
where <arguments> are appended to the RHS of the rule, <help-args> is the
argument list as shown in the help and <help-text> is description of the
command for the help.
<what-should-the-command-do> is a C code snippet to be executed. It should
not take too much time to execute. If you want to print out a lot of
information, you can schedule a routine to be called after the current
buffer is flushed by making cli->cont point to the routine (see the
TEST LONG command definition for an example); if the connection is closed
in the meantime, cli->cleanup gets called.
You can access `struct cli' belonging to the connection you're currently
servicing as this_cli, but only during parse time, not from routines scheduled
for deferred execution.
Functions to call inside command handlers:
cli_printf(cli, code, printf-args) -- print text to CLI connection,
<code> is message code as assigned in doc/reply_codes or a negative
one if it's a continuation line.
cli_msg(code, printf-args) -- the same for this_cli.
Use 'sock -x bird.ctl' for connecting to the CLI until a client is written.
Diffstat (limited to 'nest/cli.c')
0 files changed, 0 insertions, 0 deletions