summaryrefslogtreecommitdiff
path: root/main/cli.c
AgeCommit message (Collapse)Author
2006-12-19remove now useless extern declarations.Luigi Rizzo
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@48580 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-12-18convert the final clients of ast_build_string to use ast_str_*()Luigi Rizzo
Now the only module left using it is chan_sip.c git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@48559 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-12-16another conversion from ast_build_str to ast_strLuigi Rizzo
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@48517 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-12-15simplify the ast_dynamic_str_*.... routines byLuigi Rizzo
renaming them to ast_str ... and putting the struct ast_threadstorage pointer into the struct ast_str. This makes the code a lot more readable. At this point we can use these routines also to replace ast_build_string(). git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@48510 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-12-12Make sure tab-completion works even when we have typed a fullyLuigi Rizzo
matching word (e.g. "sip<TAB>"); this is implemented by this one-line change - for (;; dst++, src += n) { + for (;src < argindex; dst++, src += n) { However this code is not exactly trivial to understand, so i am also adding some comments to help figuring out what it does. git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@48408 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-12-06Constify a bunch of the usage strings for CLI commands.Russell Bryant
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@48302 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-12-01Merged revisions 48179 via svnmerge from Tilghman Lesher
https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r48179 | tilghman | 2006-12-01 13:38:59 -0600 (Fri, 01 Dec 2006) | 2 lines Double-unlock error (reported by blitzrage on IRC) ........ git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@48180 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-11-18Move this macro from cli.c to cli.h so apps can use itLuigi Rizzo
without duplicating the macro or the code: /*! * In many cases we need to print singular or plural * words depending on a count. This macro helps us e.g. * printf("we have %d object%s", n, ESS(n)); */ #define ESS(x) ((x) == 1 ? "" : "s") git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@47827 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-11-17remove a debugging messageLuigi Rizzo
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@47818 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-11-17convert "help" to new style,Luigi Rizzo
fix completion of arguments past the first one that i broke earlier today. git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@47817 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-11-17standardize "module show [like]"Luigi Rizzo
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@47815 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-11-17describe a bit the patterns that you can have in the commands,Luigi Rizzo
and add support for wildcard (spelled as '%'). On passing fix a bug in the expansion code which was hidden and appeared when implementing the wildcard The fix is just the line 'src != argindex', in case someone wants to test this on 1.4 - but i would just keep this in trunk. git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@47813 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-11-17merge the implemenmtation of "core set debug" and "core set verbose".Luigi Rizzo
No externally visible changes. git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@47790 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-11-17introduce a bit of regexp support in the internal CLI api.Luigi Rizzo
Now you can specify a cli command as "console autoanswer [on|off]" which means the on|off argument is optional, or "console {mute|unmute}" which means the mute|unmute argument is mandatory. The blocks in [] or {} do not necessarily need to be at the end of the string. Completions for the variant parts are generated automatically. This should significantly simplify the implementation of the various handlers. git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@47787 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-11-16remove an unused functionLuigi Rizzo
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@47769 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-11-16reduce indentation on a large function.Luigi Rizzo
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@47732 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-11-16use atomic instructions to update the inuse countersLuigi Rizzo
for CLI entriesC. The lock is not protecting this field. I wonder if the field should be declared 'volatile' as well. git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@47731 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-11-16make kevin (and 64 bit machines) happy andLuigi Rizzo
remove a cast from char* to int in handling the return values from new-style handlers. On passing, note that main/loader.c::ast_load_resource() always return 0 so errors are not propagated up. I am not sure this is the intended behaviour. git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@47727 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-11-15small simplifications and localization of variables.Luigi Rizzo
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@47667 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-11-15new-style "core show channels"Luigi Rizzo
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@47665 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-11-15more changes to new style of "module load" and "load".Luigi Rizzo
Under FreeBSD, the filename_completion used in the above commands does not work. Not sure why, but on passing i note that the function is part of readline and is not reentrant, so it needs to be fixed one way or another. git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@47664 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-11-15move another deprecated command to the new styleLuigi Rizzo
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@47663 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-11-15move "core set debug" to the new style, and remove duplicatedLuigi Rizzo
code for the deprecated handler. On passing fix a long standing bug in find_cli() which would not find the longest match - this part (trivial, basically just update matchlen on a match) must go in 1.4 and possibly 1.2 as well. git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@47662 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-11-15one more step cleaning the internal CLI interface:Luigi Rizzo
the NEW_CLI macro now supports extra arguments (to deprecate other commands). use this to implement unload and reload, and remove some unused functions. usual completion fixes (as these function accept multiple arguments). The summary is still a bit inconsistent. git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@47654 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-11-15update the internal cli api following comments from kevin.Luigi Rizzo
This change basically simplifies the interface of the new-style handler removing almost all the tricks used in the previous implementation to achieve backward compatibility (which is still present and guaranteed.) git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@47652 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-11-14add missing casts and remove an unused function.Luigi Rizzo
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@47630 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-11-14fix completion for "module reload mod_1 mod_2 ... "Luigi Rizzo
(should do the same for the other similar commands, "reload", "module unload" and so on. git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@47620 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-11-14partly convert to new style set-verbose, with completion fixesLuigi Rizzo
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@47619 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-11-14replace two deprecated functions with calls to the standard ones,Luigi Rizzo
with fixes to argc/argv git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@47616 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-11-14remove duplicated implementation for a deprecated function, use theLuigi Rizzo
original one instead with appropriate changes in argc/argv. This is not always applicable, but in some simple cases it is. git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@47614 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-11-14new-style for 'core show uptime', include 'complete' support and better ↵Luigi Rizzo
error checking git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@47609 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-11-14apply previous fix to old-style cli entries as well.Luigi Rizzo
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@47608 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-11-14fix "core set debug atleast ",Luigi Rizzo
and fix the simple case where a command can have multiple completions, the first ones coming from keywords in previous CLI entries. There is no solution yet for the complex case of N1 completions from a CLI entry, followed by N2 from the next one, and so on, because the _complete() handlers do not tell us how many matches it generates, so we don't know how many to skip when interrogating the other handlers. The only solution is to avoid, as much as possible, multiple CLI entries with the same prefix. git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@47607 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-11-14Bring in the improved internal API for the CLI.Luigi Rizzo
WATCH OUT: this changes the binary interface (ABI) for modules, so e.g. users of g729 codecs need a rebuilt module (but read below). The new way to write CLI handlers is described in detail in cli.h, and there are a few converted handlers in cli.c, look for NEW_CLI. After converting a couple of commands i am convinced that it is reasonably convenient to use, and it makes it easier to fix the pending CLI issues. On passing, note a bug with the current 'complete' architecture: if a command is a prefix of multiple CLI entries, we miss some of the possible options. As an example, "core set debug" can continue with "channel" from one CLI entry, and "off" or "atleast" from another one. We address this problem in a separate commit (when i have figured out a fix, that is). ABI issues: I asked Kevin if it was ok to make this change and he said yes. While it would have been possible to make the change without breaking the module ABI, the code would have been more convoluted. I am happy to restore the old ABI (while still being able to use the "new style" handlers) if there is demand. git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@47606 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-11-13Return module show to a working state. (issue #8353 reported by jserve)Joshua Colp
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@47544 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-11-13stop looking for new entries when we know we are done.Luigi Rizzo
there is no functional change, so it is not necessary to bother merging this to 1.4 now. git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@47537 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-11-13free memory when unregistering an entry.Luigi Rizzo
needs to be merged to 1.4 git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@47536 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-11-10A trunk that builds is a productive trunk.Joshua Colp
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@47464 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-11-10Merged revisions 47436 via svnmerge from Tilghman Lesher
https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r47436 | tilghman | 2006-11-10 10:51:55 -0600 (Fri, 10 Nov 2006) | 2 lines Discussion of these CLI changes resulted in more consistency (Bug 8236) ........ git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@47439 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-11-09Merged revisions 47377 via svnmerge from Russell Bryant
https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r47377 | russell | 2006-11-09 11:28:15 -0500 (Thu, 09 Nov 2006) | 2 lines fix tab completion for "core debug channel" and "core no debug channel" ........ git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@47378 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-11-09Merged revisions 47375 via svnmerge from Russell Bryant
https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r47375 | russell | 2006-11-09 11:24:02 -0500 (Thu, 09 Nov 2006) | 3 lines Fix "core show channel". Also, fix tab completion for both "core show channel" and "core show channels". ........ git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@47376 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-11-09Merged revisions 47372 via svnmerge from Russell Bryant
https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r47372 | russell | 2006-11-09 11:18:33 -0500 (Thu, 09 Nov 2006) | 3 lines Fix "core debug channel <whatever>". I guess someone needs to go through and audit every CLI command that changed number of arguments ... ........ git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@47374 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-11-09Merged revisions 47366 via svnmerge from Russell Bryant
https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r47366 | russell | 2006-11-09 10:49:39 -0500 (Thu, 09 Nov 2006) | 3 lines Fix another CLI command, "core show uptime" ... (issue #8323, reported by johnlange, fixed by myself) ........ git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@47367 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-11-04Merged revisions 47196 via svnmerge from Russell Bryant
https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r47196 | russell | 2006-11-04 13:10:22 -0500 (Sat, 04 Nov 2006) | 2 lines Fix another bug in "core set debug" ... ........ git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@47198 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-11-04Merged revisions 47195 via svnmerge from Russell Bryant
https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r47195 | russell | 2006-11-04 12:59:39 -0500 (Sat, 04 Nov 2006) | 2 lines Really fix the "core set debug" and "core set verbose" CLI commands. ........ git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@47197 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-11-04Merged revisions 47192 via svnmerge from Russell Bryant
https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r47192 | russell | 2006-11-04 12:38:24 -0500 (Sat, 04 Nov 2006) | 3 lines fix the "atleast" option to the "core set verbose" and "core set debug" CLI commands ........ git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@47193 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-11-03Fix "core show channels" and "core show modules".Luigi Rizzo
Not sure it applies like this to 1.4 because of deprecate versions of the same command(s). git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@47129 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-11-02Merged revisions 47051 via svnmerge from Tilghman Lesher
https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r47051 | tilghman | 2006-11-02 17:00:20 -0600 (Thu, 02 Nov 2006) | 2 lines Reverse change of "show" to "list" and make several other commands more consistent with "category verb arguments" ........ git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@47052 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-10-25Merged revisions 46200 via svnmerge from Kevin P. Fleming
https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r46200 | kpfleming | 2006-10-25 09:32:08 -0500 (Wed, 25 Oct 2006) | 2 lines apparently developers are still not aware that they should be use ast_copy_string instead of strncpy... fix up many more users, and fix some bugs in the process ........ git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@46201 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-10-19Extend the thread storage API such that a custom initialization function canRussell Bryant
be called for each thread specific object after they are allocated. Note that there was already the ability to define a custom cleanup function. Also, if the custom cleanup function is used, it *MUST* call free on the thread specific object at the end. There is no way to have this magically done that I can think of because the cleanup function registered with the pthread implementation will only call the function back with a pointer to the thread specific object, not the parent ast_threadstorage object. git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@45623 65c4cc65-6c06-0410-ace0-fbb531ad65f3