diff options
Diffstat (limited to 'mq_cmd.c')
-rw-r--r-- | mq_cmd.c | 325 |
1 files changed, 0 insertions, 325 deletions
diff --git a/mq_cmd.c b/mq_cmd.c deleted file mode 100644 index bc692a4..0000000 --- a/mq_cmd.c +++ /dev/null @@ -1,325 +0,0 @@ -#include "mq_cmd.h" - -#define MQ_CMD_MSG_SIZE 1024 -//last string element should be string ;] -mq_cmd* mq_cmd_create(int id, char *cmd, size_t cmd_sz, char *param, size_t param_sz) -{ - mq_cmd *ret = NULL; - - if (cmd == NULL) - { - PERM(); - return NULL; - } - if (param == NULL) - { - PERM(); - return NULL; - } - - ret = malloc(sizeof(mq_cmd)); - if (ret == NULL) - { - ENL(); - return NULL; - } - memset(ret, 0, sizeof(mq_cmd)); - - ret->id = id; - ret->sz = MQ_CMD_MSG_SIZE; - ret->buf = malloc(MQ_CMD_MSG_SIZE); - memset(ret->buf, 0, MQ_CMD_MSG_SIZE); //speed? who cares - if (ret->buf == NULL) - { - ENL(); - free(ret); - return NULL; - } - //if not null string that everything will blow up pal - //cmd[cmd_sz-1] = 0x0; - //param[param_sz-1] = 0x0; - char *t_cmd = malloc(cmd_sz+1); - memcpy(t_cmd, cmd, cmd_sz); - t_cmd[cmd_sz]=0; - - char *t_param = malloc(param_sz+1); - memcpy(t_param, param, param_sz); - t_param[param_sz]=0; - snprintf(ret->buf,ret->sz-1,":%d:%s: %s", id, t_cmd, t_param); - - free(t_cmd); - free(t_param); - - return ret; -} - -mq_cmd* mq_cmd_creates(char *str, size_t sz, int id) -{ - mq_cmd *ret = NULL; - - //just naive belive everything is fine in string - ret = malloc(sizeof(mq_cmd)); //can blow up - ret->buf = malloc(sz); - if (ret->buf == NULL) - { - PERM(); - free(ret); - return NULL; - } - memset(ret->buf, 0, MQ_CMD_MSG_SIZE); - ret->sz = sz; - memcpy(ret->buf,str,sz); - ret->id = id; - - return ret; -} - -int mq_cmd_id(mq_cmd *cmd) -{ - int i,j,strt,sz; - int id_parse; - char buf[16]; //fix this - /*:[ID]:*/ - - if (cmd == NULL) - { - PERM(); - return -1; - } - - i = 0; - while ((cmd->buf[i] != 0) && (i<cmd->sz)) - { - if (cmd->buf[i] == ':') - { - i++; - strt = i; - sz = 0; - while ((cmd->buf[i] != ':')&& - (cmd->buf[i] != '\0')&& - (i<cmd->sz)) - { - sz++; - i++; - } - for (j=0;j<(strt+sz)||j<15;j++) - { - buf[j] = cmd->buf[strt+j]; - } - buf[j] = 0x0; - id_parse = atoi(buf); - return id_parse; - } - i++; - } - return -1; -} - -//buf contains pointer to cmd -//sz contains size of buf -//%s formatting should work badly, writting to buf modifies cmd -//be carefull -int mq_cmd_cmd(mq_cmd *cmd, char **buf, size_t *sz) -{ - int i,strt,cnt,l_c; - - if (cmd == NULL) - { - PERM(); - return -1; - } - if (buf == NULL) - { - PERM(); - return -1; - } - if (sz == NULL) - { - PERM(); - return -1; - } - - i = 0; - l_c = 0; - while ((cmd->buf[i] != 0)&&(i<cmd->sz)) - { - if (cmd->buf[i] == ':') - { - l_c += 1; - if (l_c == 2) - { - i++; - break; - - } - } - i++; - } - strt = i; - cnt = 0; - while ((cmd->buf[i] != 0)&&(i<cmd->sz)) - { - - if (cmd->buf[i] == ':') - break; - cnt++; - i++; - } - *buf = cmd->buf+strt; - *sz = cnt; - - return 0; -} - -int mq_cmd_param(mq_cmd *cmd, char **param, size_t *sz) -{ - int i,strt,l_c; - - i = 0; - l_c = 0; - while ((cmd->buf[i] != 0)&&(i<cmd->sz)) - { - if (cmd->buf[i] == ':') - { - l_c += 1; - if (l_c == 3) - { - i++; - break; - } - } - i++; - } - - while ((cmd->buf[i] != 0)&&(i<cmd->sz)) - { - if (cmd->buf[i] != ' ') break; - i++; - } - strt = i; - *param = cmd->buf+strt; - - //buffer allways ends with zero, no worries - *sz = strlen(*param); - - return 0; -} - -size_t mq_cmd_size(mq_cmd *cmd) -{ - if (cmd == NULL) - { - PERM(); - return -1; - } - return cmd->sz; -} - -char *mq_cmd_buf(mq_cmd *cmd) -{ - if (cmd == NULL) - { - PERM(); - return NULL; - } - - return cmd->buf; -} - -void mq_cmd_free(mq_cmd *mq) -{ - if (mq != NULL) - { - free(mq->buf); - mq->buf = NULL; - free(mq); - mq = NULL; - } -} - - -int mq_cmd_o_cmp_param(mq_cmd *cmd, char *str) -{ - int str_sz; //get strsize from strlen() - size_t buf_sz; - char *buf = NULL; - - if (cmd == NULL) - { - return -1; - } - - if (str == NULL) - { - return -1; - } - - if (-1 == mq_cmd_param(cmd, &buf, &buf_sz)) - { - return -1; - } - - str_sz = strlen(str); - if (strncmp(buf, str, str_sz) != 0) - { - return -1; - } - - return 0; -} - -int mq_cmd_o_cmp_cmd( mq_cmd *cmd, char *str) -{ - int str_sz; //get strsize from strlen() - size_t buf_sz; - char *buf = NULL; - - if (cmd == NULL) - { - PERM(); - return -1; - } - - if (str == NULL) - { - PERM(); - return -1; - } - - if (-1 == mq_cmd_cmd(cmd, &buf, &buf_sz)) - { - return -1; - } - - str_sz = strlen(str); - if (strncmp(buf, str, str_sz) != 0) - { - return -1; - } - - return 0; -} - -int mq_cmd_o_cmp_id( mq_cmd *cmd, int id) -{ - int fret; - if (cmd == NULL) - { - PERM(); - return -1; - } - - if (id < 0) - { - PERM(); - return -1; - } - - if ((fret = mq_cmd_id(cmd)) != id) - { - ENL(); - return -1; - } - - return 0; -} |