aboutsummaryrefslogtreecommitdiffstats
path: root/db.c
diff options
context:
space:
mode:
authorkpfleming <kpfleming@f38db490-d61c-443f-a65b-d21fe96a405b>2005-07-20 00:38:20 +0000
committerkpfleming <kpfleming@f38db490-d61c-443f-a65b-d21fe96a405b>2005-07-20 00:38:20 +0000
commit8103f9c0f80e672899db6e2c74c8b437b441b656 (patch)
treed25aec4d8e1a1629c00f87e0d73aa814109ea8e1 /db.c
parent0414f4361d8f4575a94ed0484edac9872c6df686 (diff)
add ActionID output and lock CLI fd for Manager action DBGet (bug #4727)
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@6175 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'db.c')
-rwxr-xr-xdb.c13
1 files changed, 11 insertions, 2 deletions
diff --git a/db.c b/db.c
index 707f57e2b..0e4660464 100755
--- a/db.c
+++ b/db.c
@@ -529,6 +529,8 @@ static int manager_dbput(struct mansession *s, struct message *m)
static int manager_dbget(struct mansession *s, struct message *m)
{
+ char *id = astman_get_header(m,"ActionID");
+ char idText[256] = "";
char *family = astman_get_header(m, "Family");
char *key = astman_get_header(m, "Key");
char tmp[256];
@@ -543,16 +545,23 @@ static int manager_dbget(struct mansession *s, struct message *m)
return 0;
}
+ if (id && !ast_strlen_zero(id))
+ snprintf(idText, sizeof(idText) ,"ActionID: %s\r\n", id);
+
res = ast_db_get(family, key, tmp, sizeof(tmp));
if (res) {
astman_send_error(s, m, "Database entry not found");
} else {
astman_send_ack(s, m, "Result will follow");
+ ast_mutex_lock(&s->lock);
ast_cli(s->fd, "Event: DBGetResponse\r\n"
"Family: %s\r\n"
"Key: %s\r\n"
- "Val: %s\r\n\r\n",
- family, key, tmp);
+ "Val: %s\r\n"
+ "%s"
+ "\r\n",
+ family, key, tmp, idText);
+ ast_mutex_unlock(&s->lock);
}
return 0;
}