summaryrefslogtreecommitdiff
path: root/res/res_agi.c
diff options
context:
space:
mode:
authorMark Spencer <markster@digium.com>2004-07-17 20:25:39 +0000
committerMark Spencer <markster@digium.com>2004-07-17 20:25:39 +0000
commit57217916f18214be2c9bb8d10f89ff2047b4f1cd (patch)
tree92e188a34223a21b3056199e2c820976603f24b4 /res/res_agi.c
parentde4188df06a58b20da7da1da0843080548a801c5 (diff)
First pass at AGI registration
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@3461 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Diffstat (limited to 'res/res_agi.c')
-rwxr-xr-xres/res_agi.c29
1 files changed, 29 insertions, 0 deletions
diff --git a/res/res_agi.c b/res/res_agi.c
index ba4ab0ec2..e96807b3f 100755
--- a/res/res_agi.c
+++ b/res/res_agi.c
@@ -1160,6 +1160,35 @@ static int help_workhorse(int fd, char *match[])
return 0;
}
+static int agi_register(agi_command *agi)
+{
+ int x;
+ for (x=0;x<MAX_COMMANDS - 1;x++) {
+ if (commands[x].cmda[0] == agi->cmda[0]) {
+ ast_log(LOG_WARNING, "Command already registered!\n");
+ return -1;
+ }
+ }
+ for (x=0;x<MAX_COMMANDS - 1;x++) {
+ if (!commands[x].cmda[0]) {
+ commands[x] = *agi;
+ return 0;
+ }
+ }
+ ast_log(LOG_WARNING, "No more room for new commands!\n");
+ return -1;
+}
+
+static void agi_unregister(agi_command *agi)
+{
+ int x;
+ for (x=0;x<MAX_COMMANDS - 1;x++) {
+ if (commands[x].cmda[0] == agi->cmda[0]) {
+ memset(&commands[x], 0, sizeof(agi_command));
+ }
+ }
+}
+
static agi_command *find_command(char *cmds[], int exact)
{
int x;