log管理器内存分配池化,修复部分log写入部分与内存池部分存在的恶性bug
This commit is contained in:
@ -9,24 +9,22 @@
|
||||
#include "interpreter.h"
|
||||
#include "tools/pkgmanager/pkginstall.h"
|
||||
|
||||
int inter_in_log(const char *log,log_manager *manager)
|
||||
int inter_in_log(const char *log,const char *info,log_manager *manager)
|
||||
{
|
||||
if(strlen(log)>1024)
|
||||
return -1;
|
||||
logs* logss = (logs*)malloc(sizeof(logs));
|
||||
memcpy(logss->log,log,strlen(log));
|
||||
manager->in_log(logss,manager);
|
||||
manager->in_log(manager,log,info);
|
||||
return 0;
|
||||
}
|
||||
|
||||
int init_interpreter(Cmd *cmd_dic,ctx *self,int fifo[2],log_manager *log_manager)
|
||||
{
|
||||
printf("SYS:prepare env\n");
|
||||
inter_in_log("SYS:prepare env\n",log_manager);
|
||||
inter_in_log("prepare env\n","SYS",log_manager);
|
||||
printf("SYS:env ready\n");
|
||||
inter_in_log("SYS:env ready\n",log_manager);
|
||||
inter_in_log("env ready\n","SYS",log_manager);
|
||||
printf("SYS:loading cmd_dic\n");
|
||||
inter_in_log("SYS:loading cmd_dic\n",log_manager);
|
||||
inter_in_log("loading cmd_dic\n","SYS",log_manager);
|
||||
sprintf(cmd_dic[0].name, "pkginstall");
|
||||
cmd_dic[0].cmd = INSTALL;
|
||||
|
||||
@ -37,7 +35,7 @@ int init_interpreter(Cmd *cmd_dic,ctx *self,int fifo[2],log_manager *log_manager
|
||||
cmd_dic[2].cmd = QUIT;
|
||||
|
||||
printf("SYS:cmd_dir load complite\n");
|
||||
inter_in_log("SYS:cmd_dir load complite\n",log_manager);
|
||||
inter_in_log("cmd_dir load complite\n","SYS",log_manager);
|
||||
|
||||
for(int i =0;i<10;i++)
|
||||
{
|
||||
@ -45,7 +43,7 @@ int init_interpreter(Cmd *cmd_dic,ctx *self,int fifo[2],log_manager *log_manager
|
||||
}
|
||||
self->arg = NULL;
|
||||
printf("SYS:Creating ctl fifo\n");
|
||||
inter_in_log("SYS:Creating ctl fifo\n",log_manager);
|
||||
inter_in_log("Creating ctl fifo\n","SYS",log_manager);
|
||||
memcpy(self->fifofd,fifo,2*sizeof(int));
|
||||
self->log_manager = log_manager;
|
||||
}
|
||||
@ -71,7 +69,7 @@ int get_args(ctx *self)
|
||||
arg->next = (args*)malloc(sizeof(args));
|
||||
if(arg->next == NULL){
|
||||
perror("ERROR:fail to get mem");
|
||||
inter_in_log("ERROR:fail to get mem\n",self->log_manager);
|
||||
inter_in_log("fail to get mem\n","ERROR",self->log_manager);
|
||||
return -1;
|
||||
}
|
||||
arg = arg->next;
|
||||
@ -146,31 +144,31 @@ int exec(const int command,ctx *all_ctx)
|
||||
{
|
||||
case BAD_INPUT:
|
||||
printf("SYS:bad input,try again\n");
|
||||
inter_in_log("SYS:bad input,try again\n",all_ctx->log_manager);
|
||||
inter_in_log("bad input,try again\n","SYS",all_ctx->log_manager);
|
||||
return BAD_INPUT;
|
||||
|
||||
case INSTALL:
|
||||
if(all_ctx->arg == NULL){
|
||||
printf("SYS:Missing args\n");
|
||||
inter_in_log("SYS:Missng args\n",all_ctx->log_manager);
|
||||
inter_in_log("Missng args\n","SYS",all_ctx->log_manager);
|
||||
return 1;
|
||||
}
|
||||
printf("SYS:init pkgmanager\n");
|
||||
inter_in_log("SYS:init pkgmanager\n",all_ctx->log_manager);
|
||||
inter_in_log("init pkgmanager\n","SYS",all_ctx->log_manager);
|
||||
pkger *manager = init_pkginstaller();
|
||||
printf("SYS:installing\n");
|
||||
inter_in_log("SYS:installing\n",all_ctx->log_manager);
|
||||
inter_in_log("installing\n","SYS",all_ctx->log_manager);
|
||||
manager->packup(manager);
|
||||
return 1;
|
||||
|
||||
case RUN:
|
||||
printf("SYS:runing\n");
|
||||
inter_in_log("SYS:running\n",all_ctx->log_manager);
|
||||
inter_in_log("running\n","SYS",all_ctx->log_manager);
|
||||
return 1;
|
||||
|
||||
case QUIT:
|
||||
printf("SYS:shuting down\n");
|
||||
inter_in_log("SYS:shuting down\n",all_ctx->log_manager);
|
||||
inter_in_log("shuting down\n","SYS",all_ctx->log_manager);
|
||||
all_ctx->statue = -1;
|
||||
write(all_ctx->fifofd[1],"q",1);
|
||||
return 1;
|
||||
|
||||
Reference in New Issue
Block a user