diff options
author | FreeArtMan <dos21h@gmail.com> | 2017-09-24 11:55:09 +0100 |
---|---|---|
committer | FreeArtMan <dos21h@gmail.com> | 2017-09-24 11:55:09 +0100 |
commit | 5de1c5ba999dba7da45316d3c1f2592c0e0e4804 (patch) | |
tree | 58e2fdc46c9b8b43598acdfad479bda9359b1df9 | |
parent | 1dcf41797bda73d9c9c286d1eff8309ee2148e13 (diff) | |
download | agni-5de1c5ba999dba7da45316d3c1f2592c0e0e4804.tar.gz agni-5de1c5ba999dba7da45316d3c1f2592c0e0e4804.zip |
Rearranged code for more IPC protocols
-rw-r--r-- | agni.c | 6 | ||||
-rw-r--r-- | cmd/cmd_todo.c | 10 | ||||
-rw-r--r-- | cmd/cmd_todo.h | 17 | ||||
-rw-r--r-- | config_cmds.h | 47 | ||||
-rw-r--r-- | nbrpc_call.c | 49 | ||||
-rw-r--r-- | nbrpc_call.h | 40 | ||||
-rw-r--r-- | nbrpc_event.c (renamed from nbrpc.c) | 41 | ||||
-rw-r--r-- | nbrpc_event.h (renamed from nbrpc.h) | 20 | ||||
-rw-r--r-- | sock_conn.c | 2 | ||||
-rw-r--r-- | tbl_qcmd.h | 4 |
10 files changed, 211 insertions, 25 deletions
@@ -34,7 +34,7 @@ #include "arg.h" -#include "nbrpc.h" +#include "nbrpc_event.h" /* no defence programming, no error checking, no argument checking just PoC @@ -598,7 +598,7 @@ int th_start_client(void *data) printf("Reconnect in 10 sec\n"); sleep(10); } - sleep(1); + //sleep(1); } //send some commands to irc to register nick snprintf(cmd_buf, TH_CONN_BUF_SZ, "USER %s 0 0 :%s\r\n", cfg->user, cfg->user); @@ -618,7 +618,7 @@ int th_start_client(void *data) printf("Reconnect in 10 sec\n"); sleep(10); } - sleep(1); + //sleep(1); } //send some commands to irc to register nick snprintf(cmd_buf, TH_CONN_BUF_SZ, "USER %s 0 0 :%s\r\n", cfg->user, cfg->user); diff --git a/cmd/cmd_todo.c b/cmd/cmd_todo.c new file mode 100644 index 0000000..0f3ae58 --- /dev/null +++ b/cmd/cmd_todo.c @@ -0,0 +1,10 @@ +#include "cmd_todo.h" + +void *cmd_todo(void *data) +{ + char *ret = NULL; + + + + return ret; +} diff --git a/cmd/cmd_todo.h b/cmd/cmd_todo.h new file mode 100644 index 0000000..b5227e7 --- /dev/null +++ b/cmd/cmd_todo.h @@ -0,0 +1,17 @@ +#ifndef __CMD_TODO_H +#define __CMD_TODO_H + +#include <stdlib.h> +#include <stdio.h> +#include <stdint.h> +#include <time.h> +#include <unistd.h> +#include <sys/types.h> +#include <sys/stat.h> + +#include "util.h" +#include "debug.h" + +void *cmd_todo(void *data); + +#endif
\ No newline at end of file diff --git a/config_cmds.h b/config_cmds.h index a123ec8..e532d64 100644 --- a/config_cmds.h +++ b/config_cmds.h @@ -1,8 +1,13 @@ #ifndef __CONFIG_CMDS_H #define __CONFIG_CMDS_H +#define CMD_T_SIMPLE 0 +#define CMD_T_RPC 1 +#define CMD_T_LUA 2 + typedef struct single_cmd_def { + int type; char *name; void *(*callback)(void *); } single_cmd_def; @@ -15,24 +20,30 @@ typedef struct single_cmd_def //nothing else comaptible will be added, as its not about "standarts" single_cmd_def confgi_cmd_list[] = { - {"DATE",cmd_date}, - {"UPTIME",cmd_uptime}, - {"VERSION",cmd_version}, {"!version",cmd_version}, - {"PING",cmd_ping}, {"!ping",cmd_ping}, - {"LOADAVG",cmd_loadavg}, - {"RUSE",cmd_rusage}, - {"CMD",cmd_cmd}, {"!echo",cmd_cmd}, - {"SHA1",cmd_sha1}, - {"COOKIE",cmd_cookie}, - {"BOTU",cmd_botu}, {"!uptime",cmd_botu}, - {"FIR1P",cmd_fir1p}, - {"RAND",cmd_rand}, - {"RANDC",cmd_rand_libc}, - {"FIR",cmd_fir}, - {"HELP",cmd_help}, - {"SPI",cmd_spi}, - {"STAT",cmd_stat}, - {NULL,NULL} + //simple echo response commands + {CMD_T_SIMPLE,"DATE",cmd_date}, + {CMD_T_SIMPLE,"UPTIME",cmd_uptime}, + {CMD_T_SIMPLE,"VERSION",cmd_version}, {CMD_T_SIMPLE,"!version",cmd_version}, + {CMD_T_SIMPLE,"PING",cmd_ping}, {CMD_T_SIMPLE,"!ping",cmd_ping}, + {CMD_T_SIMPLE,"LOADAVG",cmd_loadavg}, + {CMD_T_SIMPLE,"RUSE",cmd_rusage}, + {CMD_T_SIMPLE,"CMD",cmd_cmd}, {CMD_T_SIMPLE,"!echo",cmd_cmd}, + {CMD_T_SIMPLE,"SHA1",cmd_sha1}, + {CMD_T_SIMPLE,"COOKIE",cmd_cookie}, + {CMD_T_SIMPLE,"BOTU",cmd_botu}, {CMD_T_SIMPLE,"!uptime",cmd_botu}, + {CMD_T_SIMPLE,"FIR1P",cmd_fir1p}, + {CMD_T_SIMPLE,"RAND",cmd_rand}, + {CMD_T_SIMPLE,"RANDC",cmd_rand_libc}, + {CMD_T_SIMPLE,"FIR",cmd_fir}, + {CMD_T_SIMPLE,"HELP",cmd_help}, + {CMD_T_SIMPLE,"SPI",cmd_spi}, + {CMD_T_SIMPLE,"STAT",cmd_stat}, + + //more complicated command + {CMD_T_RPC,"TODO",cmd_todo}, + + + {0,NULL,NULL} }; diff --git a/nbrpc_call.c b/nbrpc_call.c new file mode 100644 index 0000000..3fddde7 --- /dev/null +++ b/nbrpc_call.c @@ -0,0 +1,49 @@ +#include "nbrpc_call.h" + +rpc_call_request* rpc_call_req_new(char *method, char *params, int id) +{ + +} + + +rpc_call_response* rpc_call_resp_new(char *result, char *error, int id) +{ + +} + + +int rpc_call_req_free(rpc_call_request *req) +{ + +} + + +int rpc_call_resp_free(rpc_call_response *resp) +{ + +} + + +int rpc_call_req_marsh( rpc_call_request *req, netbyte_store **nb_req) +{ + +} + + +int rpc_call_resp_marsh( rpc_call_response *resp, netbyte_store **nb_resp) +{ + +} + + +int rpc_call_req_unmarsh( netbyte_store *nb_req, rpc_call_request **req) +{ + +} + + +int rpc_call_resp_unmarsh(netbyte_store *nb_resp, rpc_call_response **resp) +{ + +} + diff --git a/nbrpc_call.h b/nbrpc_call.h new file mode 100644 index 0000000..183f911 --- /dev/null +++ b/nbrpc_call.h @@ -0,0 +1,40 @@ +#ifndef __AGNI_NBRPC_CALL_H +#define __AGNI_NBRPC_CALL_H + +#include <netbytes.h> + +#include <mq_ntf.h> + +typedef struct rpc_call_request +{ + char *method; + char *params; + char *user; + char *mask; + char *server; + int id; +} rpc_call_request; + +typedef struct rpc_call_response +{ + char *result; + char *error; + char *user; + char *mask; + char *server; + int id; +} rpc_call_response; + +rpc_call_request* rpc_call_req_new(char *method, char *params, int id); +rpc_call_response* rpc_call_resp_new(char *result, char *error, int id); + +int rpc_call_req_free(rpc_call_request *req); +int rpc_call_resp_free(rpc_call_response *resp); + +int rpc_call_req_marsh( rpc_call_request *req, netbyte_store **nb_req); +int rpc_call_resp_marsh( rpc_call_response *resp, netbyte_store **nb_resp); + +int rpc_call_req_unmarsh( netbyte_store *nb_req, rpc_call_request **req); +int rpc_call_resp_unmarsh(netbyte_store *nb_resp, rpc_call_response **resp); + +#endif
\ No newline at end of file @@ -1,4 +1,4 @@ -#include "nbrpc.h" +#include "nbrpc_event.h" extern char* alloc_new_str(char *); extern char *alloc_new_str_s(char *, size_t); @@ -229,4 +229,41 @@ int rpc_resp_unmarsh(netbyte_store *nb_resp, rpc_response **resp) *resp = __resp; return 0; -}
\ No newline at end of file +} + + +int rpc_req_set_user(rpc_request *req) +{ + +} + + +int rpc_resp_set_user(rpc_response *resp) +{ + +} + + +int rpc_req_set_mask(rpc_request *req) +{ + +} + + +int rpc_resp_set_mask(rpc_response *resp) +{ + +} + + +int rpc_req_set_server(rpc_request *req) +{ + +} + + +int rpc_resp_set_server(rpc_response *resp) +{ + +} + @@ -3,12 +3,15 @@ #include <netbytes.h> -#include "mq_ntf.h" +#include <mq_ntf.h> typedef struct rpc_request { char *method; char *params; + char *user; + char *mask; + char *server; int id; } rpc_request; @@ -16,15 +19,30 @@ typedef struct rpc_response { char *result; char *error; + char *user; + char *mask; + char *server; int id; } rpc_response; rpc_request* rpc_req_new(char *method, char *params, int id); rpc_response* rpc_resp_new(char *result, char *error, int id); + +int rpc_req_set_user(rpc_request *req); +int rpc_resp_set_user(rpc_response *resp); + +int rpc_req_set_mask(rpc_request *req); +int rpc_resp_set_mask(rpc_response *resp); + +int rpc_req_set_server(rpc_request *req); +int rpc_resp_set_server(rpc_response *resp); + int rpc_req_free(rpc_request *req); int rpc_resp_free(rpc_response *resp); + int rpc_req_marsh( rpc_request *req, netbyte_store **nb_req); int rpc_resp_marsh( rpc_response *resp, netbyte_store **nb_resp); + int rpc_req_unmarsh( netbyte_store *nb_req, rpc_request **req); int rpc_resp_unmarsh(netbyte_store *nb_resp, rpc_response **resp); diff --git a/sock_conn.c b/sock_conn.c index 0c206ea..c06bcb2 100644 --- a/sock_conn.c +++ b/sock_conn.c @@ -303,7 +303,7 @@ int irc_connect( char *hostname, char *port ) int irc_open(char *hostname, char *port, irc_conn *conn) { int fd, fret; - struct addrinfo serv, *res; + struct addrinfo serv, *res=NULL;//_res, *res=&_res; if (conn == NULL) { @@ -15,6 +15,10 @@ #define EXEC_CURRENT 0 //executes in current thread #define EXEC_SEPERATE 1 //executes in seperate thread +#define TBL_T_SIMPLE 0 //simple command that just passes params to callback nothing else +#define TBL_T_RPC 1 //send more params and uses rpc for command +#define TBL_T_LUA 2 //send commands to lua interpreter + /* Fields: */ |