struct variable *find_var(struct context *context, const struct byte_array *name) { null_check(name); const struct program_state *state = (const struct program_state*)stack_peek(context->program_stack, 0); struct map *var_map = state->named_variables; struct variable *v = (struct variable*)map_get(var_map, name); // DEBUGPRINT(" find_var %s in {p:%p, s:%p, m:%p}: %p\n", byte_array_to_string(name), context->program_stack, state, var_map, v); if (!v && context->find) v = context->find(context, name); if (!v) v = sys_find(context, name); return v; }
void deal(int conn_fd) { char buf[32]; char name[32]; char passwd[32]; char pathname[SIZE] = {"/home/qiong/userinfo/"}; int ret; int flag; int fd; int zan; my_recv(conn_fd, buf, sizeof(buf)); printf("%c\n", buf[0]); if (buf[0] == 'l') { sys_log("进入用户登陆界面"); server_check(conn_fd); } else if (buf[0] == 'r') { sys_log("进入用户注册界面"); server_register(conn_fd); } else if (buf[0] == 'x') { chdir("/home/qiong/shujia/source/"); server_browse(conn_fd, "../source/"); } else if (buf[0] == 'q') { sys_log("浏览本地上传目录"); chdir("/home/qiong/shujia/source/"); server_look(conn_fd, "../source/"); } else if (buf[0] == 'd') { sys_log("查找资源"); sys_find(conn_fd); deal(conn_fd); } }