aboutsummaryrefslogtreecommitdiffstats
path: root/agni.c
diff options
context:
space:
mode:
authorFreeArtMan <dos21h@gmail.com>2017-04-20 10:43:28 +0100
committerFreeArtMan <dos21h@gmail.com>2017-04-20 10:43:28 +0100
commit5007608202739ed1835ffc10a54dba02bc0f361f (patch)
tree47baa281b0c767c5732025a39b74ca9d9f4785c5 /agni.c
parentac515d5ab9cebc863d5c34eaa2183c67c6e412d5 (diff)
downloadagni-5007608202739ed1835ffc10a54dba02bc0f361f.tar.gz
agni-5007608202739ed1835ffc10a54dba02bc0f361f.zip
Add command executor command check
Diffstat (limited to 'agni.c')
-rw-r--r--agni.c53
1 files changed, 46 insertions, 7 deletions
diff --git a/agni.c b/agni.c
index 03c9f2b..dc91a93 100644
--- a/agni.c
+++ b/agni.c
@@ -368,8 +368,8 @@ int th_start_client(void *data)
//PNL();
//PRINT("SERVER:%s PORT:%s USER:%s\n", cfg->server, cfg->port, cfg->user);
- //conn = irc_connect(cfg->server, cfg->port);
- conn = irc_connect("irc.freenode.net", "6667");
+ conn = irc_connect(cfg->server, cfg->port);
+ //conn = irc_connect("irc.freenode.net", "6667");
//PNL();
if (conn < 0)
{
@@ -777,11 +777,6 @@ int th_event_manager(void *data)
}
tbl_exec_print_tbl(etbl, TBL_PF_EXEC_ALL);
- etbl = tbl_exec_list_c(10);
- if (etbl == NULL)
- {
- PERM();
- }
//create command table
qtbl = tbl_qcmd_c(10);//well 10 should be ok right?
@@ -835,8 +830,19 @@ int th_event_manager(void *data)
//PNL();
if (recv_cmd != NULL)
{
+
+ char *recv_cmd_param=NULL;
+ size_t recv_cmd_param_sz=-1;
+
PNL();
PRINT("MQ:CMD %s\n", mq_cmd_buf(recv_cmd));
+
+
+ //get command fields
+ mq_cmd_param(recv_cmd, &recv_cmd_param, &recv_cmd_param_sz);
+
+
+
if (mq_cmd_o_cmp_cmd(recv_cmd,"QUIT") == 0)
{
printf("QUIT recieved lets quit main loop\n");
@@ -852,6 +858,7 @@ int th_event_manager(void *data)
mq_cmd_free(privcmd);
} else if (mq_cmd_o_cmp_cmd(recv_cmd,"PRIVMSG") == 0)
{
+ /*
printf("Some private message\n");
if (mq_cmd_o_cmp_param(recv_cmd, ":DATE") == 0)
{
@@ -880,8 +887,25 @@ int th_event_manager(void *data)
mq_cmd_free(privcmd);
privcmd = NULL;
+ } else if (mq_cmd_o_cmp_param(recv_cmd, ":HELLO") == 0)
+ {
+ char msg[] = "PONG TO HELLO";
+ mq_cmd *privcmd = mq_cmd_create(mq_cmd_id(recv_cmd),"PRIVMSG",strlen("PRIVMSG"),msg,strlen(msg));
+
+ PRINT("%s\n", privcmd->buf);
+
+ int id = mq_cmd_id(recv_cmd);
+ PRINT("%d\n",id);
+
+ char *cmdBuf = mq_cmd_buf(privcmd);
+ mq_ntf_write(mq, MQ_IN, cmdBuf, strlen(cmdBuf));
+ cmdBuf = NULL;
+
+ mq_cmd_free(privcmd);
+ privcmd = NULL;
} else
{
+
char msg[] = "PONG EVENT THREAD";
mq_cmd *privcmd = mq_cmd_create(mq_cmd_id(recv_cmd),"PRIVMSG",strlen("PRIVMSG"),msg,strlen(msg));
@@ -890,6 +914,21 @@ int th_event_manager(void *data)
mq_ntf_write(mq, MQ_IN, cmdBuf, strlen(cmdBuf));
mq_cmd_free(privcmd);
+
+ }
+ */
+
+
+ //check if command callback excists
+ if (recv_cmd_param!=NULL)
+ {
+ if (tbl_exec_in_s(etbl, recv_cmd_param+1)>=0) //there is ':' in front of command, check if ptr not null otherwise die
+ {
+
+ } else
+ {
+ PRINT("Command not found\n");
+ }
}
} else if (mq_cmd_o_cmp_cmd(recv_cmd,"CMD2") == 0)