コード例 #1
0
ファイル: uim-el-agent.c プロジェクト: TheSLinux-forks/uim
static int
process_command(int serial, int cid, char *cmd)
{
  /*char *opt, *opt2; */
  char *p, *opt;
  int ret;

  if ((p = strchr(cmd, '\n')))
	*p = '\0';
  else
	return -1;

  if ((opt = strchr(cmd, ' '))) {
	*opt = '\0';
	opt ++;
  } else {
	opt = NULL;
  }

  debug_printf(DEBUG_NOTE, "cmd: %s\n", cmd);

  if (strcmp(cmd, "RELEASE") == 0)
	ret = cmd_release(cid);
  else if (strcmp(cmd, "UNFOCUSED") == 0)
	ret = cmd_unfocused(cid);
  else if (strcmp(cmd, "FOCUSED") == 0)
	ret = cmd_focused(cid);
  else if (strcmp(cmd, "HIDE") == 0)
	ret = cmd_hide(cid);
  else if (strcmp(cmd, "SHOW") == 0)
	ret = cmd_show(cid);
  else if (strcmp(cmd, "NEW") == 0)
  	ret = cmd_new(cid, opt);
  else if (strcmp(cmd, "RESET") == 0)
	ret = cmd_reset(cid);
  else if (strcmp(cmd, "CHANGE") == 0)
  	ret = cmd_change(cid, opt);
  else if (strcmp(cmd, "PROP") == 0)
  	ret = cmd_prop(cid, opt);
  else if (strcmp(cmd, "LABEL") == 0)
  	ret = cmd_label(cid);
  else if (strcmp(cmd, "HELPER") == 0)
	ret = cmd_helper(cid, opt);
  else if (strcmp(cmd, "NOP") == 0)
  	ret = cmd_nop(cid);
  else if (strcmp(cmd, "LIST") == 0)
  	ret = cmd_list();
  else if (strcmp(cmd, "SETENC") == 0)
  	ret = cmd_setenc(opt);
  else if (strcmp(cmd, "GETENC") == 0)
  	ret = cmd_getenc(opt); /* for debug */
  else
	ret = cmd_error();

  return ret;
}
コード例 #2
0
ファイル: safelease.c プロジェクト: oVirt/safelease
int
main(int argc, char **argv)
{
    int opt;
    void *v = 0;

    signal(SIGTERM, sig_handler);
    signal(SIGINT, sig_handler);
    signal(SIGTRAP, sig_handler);

    if (posix_memalign(&v, 4096, 512) != 0)
    {
        fprintf(stderr, "fatal memory allocation error\n");
        return 1;
    }

    iobuf = v;
    memset(iobuf, 0, 512);

    progname = strrchr(argv[0], '/');
    if (!progname)
        progname = argv[0];
    else
        progname++;

    while ((opt = getopt(argc, argv, "+hd")) != -1) {
        switch (opt) {
        case 'h':
            usage();
            break;
        case 'd':
            debug++;
            break;
        }
    }
    if (optind >= argc)
        usage();

    if (!strcmp(argv[optind], "acquire"))
        return cmd_acquire(argc - optind, argv + optind);
    if (!strcmp(argv[optind], "renew"))
        return cmd_renew(argc - optind, argv + optind);
    if (!strcmp(argv[optind], "release"))
        return cmd_release(argc - optind, argv + optind);
    if (!strcmp(argv[optind], "query"))
        return cmd_query(argc - optind, argv + optind);
    if (!strcmp(argv[optind], "protect"))
        return cmd_protect(argc - optind, argv + optind);

    fprintf(stderr, "unknonwn op <%s>\n", argv[optind]);
    usage();

    return 1;
}
コード例 #3
0
ファイル: test_main.c プロジェクト: wuhong1986/cutils
int main(int argc, char *argv[])
{
    cli_init();
    log_init();
    thread_init();
    cmd_init();
    dev_addr_mgr_init();
    addr_sock_init();
    socket_init();
    dev_router_init();
    cli_commands_init();

    broadcast_msg_t msg;
    dev_addr_mgr_add_support_dev_type(1);
    dev_addr_mgr_set_network_type(NETWORK_TYPE_CENTER);
    dev_addr_mgr_set_addr_mac(0x89ABCDE0);

    dev_router_set_mac_local(0x89ABCDE0);

#ifdef TEST_CLIENT
    ex_memzero_one(&msg);
    strcpy(msg.dev_name, "1004");
    msg.router_list_lens[0] = 3;
    msg.router_list_lens[1] = 3;
    msg.router_list_lens[2] = 0;
    msg.router_list_lens[3] = 0;
    msg.router_cnt = 7;
    msg.router_list_cnt = 2;
    msg.network_nodes[0].dev_type = 1;
    msg.network_nodes[0].addr_mac = 0x89ABCDE0;
    msg.network_nodes[0].subnet_cnt = 4;
    msg.network_nodes[0].network_type = NETWORK_TYPE_ROUTER;
    strcpy(msg.network_nodes[0].dev_name, "1004");

    msg.network_nodes[1].dev_type = 1;
    msg.network_nodes[1].addr_mac = 0x89ABCDE1;
    msg.network_nodes[1].subnet_cnt = 4;
    msg.network_nodes[1].network_type = NETWORK_TYPE_ROUTER;
    strcpy(msg.network_nodes[1].dev_name, "1003");

    msg.network_nodes[2].dev_type = 1;
    msg.network_nodes[2].addr_mac = 0x89ABCDE2;
    msg.network_nodes[2].subnet_cnt = 4;
    msg.network_nodes[2].network_type = NETWORK_TYPE_ROUTER;
    strcpy(msg.network_nodes[2].dev_name, "1002");

    msg.network_nodes[3].dev_type = 1;
    msg.network_nodes[3].addr_mac = 0x89ABCDE3;
    msg.network_nodes[3].subnet_cnt = 4;
    msg.network_nodes[3].network_type = NETWORK_TYPE_ROUTER;
    strcpy(msg.network_nodes[3].dev_name, "1001");

    msg.network_nodes[4].dev_type = 1;
    msg.network_nodes[4].addr_mac = 0x89ABCDE4;
    msg.network_nodes[4].subnet_cnt = 4;
    msg.network_nodes[4].network_type = NETWORK_TYPE_ROUTER;
    strcpy(msg.network_nodes[4].dev_name, "1005");

    msg.network_nodes[5].dev_type = 1;
    msg.network_nodes[5].addr_mac = 0x89ABCDE5;
    msg.network_nodes[5].subnet_cnt = 4;
    msg.network_nodes[5].network_type = NETWORK_TYPE_ROUTER;
    strcpy(msg.network_nodes[5].dev_name, "1006");

    msg.network_nodes[6].dev_type = 1;
    msg.network_nodes[6].addr_mac = 0x89ABCDE6;
    msg.network_nodes[6].subnet_cnt = 4;
    msg.network_nodes[6].network_type = NETWORK_TYPE_ROUTER;
    strcpy(msg.network_nodes[6].dev_name, "1007");
#endif

    socket_listen_async(50002);
    socket_listen_cli(49999);
    socket_recv_start();
#ifdef TEST_SERVER
    socket_bc_tx_start("test", 50000, 50001, 50002);
#endif
#ifdef TEST_CLIENT
    socket_bc_rx_start("test", 50000, 50001, &msg);
#endif

#if 0
    cstr *json = cstr_new();
    int fd = 0;
    fd = socket_cli_send_request("127.0.0.1", 49999, "test");
    socket_cli_recv_response(fd, json);
    cstr_clear(json);
    fd = socket_cli_send_request("127.0.0.1", 49999, "test f**k");
    socket_cli_recv_response(fd, json);
    cstr_clear(json);
    fd = socket_cli_send_request("127.0.0.1", 49999, "f**k f**k f**k you test f**k");
    socket_cli_recv_response(fd, json);
    cstr_free(json);
#endif

    cli_loop();

    dev_addr_mgr_release();
    socket_release();
    cmd_release();
    thread_release();
    log_release();
    cli_release();
#if 0
  cli_cmd_t cmd;
  int i = 0;

  command_init(&cmd, argv[0], "0.0.1");
  command_option(&cmd, "-v", "--verbose", "enable verbose stuff", verbose);
  command_option(&cmd, "-r", "--required <arg>", "required arg", required);
  command_option(&cmd, "-o", "--optional [arg]", "optional arg", optional);
  command_parse(&cmd, argc, argv);
  printf("additional args:\n");
  for (i = 0; i < cmd.argc; ++i) {
    printf("  - '%s'\n", cmd.argv[i]);
  }
  command_free(&cmd);
#endif
    return 0;
}
コード例 #4
0
ファイル: edimg.c プロジェクト: bigpussy/harib_os_src
int main(int argc, UCHAR **argv)
{
	UCHAR *script0 = malloc(SIZ_SCRIPT);
//	fat_flags = malloc(65536);
	fat = malloc(65536 * 2);
	filebuf0 = malloc(SIZ_FILEBUF);
	imgbuf0 = malloc(SIZ_IMGBUF);
	UCHAR *p, *q, *r, *script1;
	int i;
	FILE *fp;
	if (imgbuf0 == NULL)
		errend(1); /* out of memory */

	/* スクリプト準備 */
	q = script0;
	while ((p = *++argv) != NULL) {
		if (*p != '@') {
			r = ++q;
			while ((*q++ = *p++) != '\0') {
				if (q - script0 >= SIZ_SCRIPT - 4)
					errend(2); /* script too long */
			}
			if (q - r > 255 + 1)
				errend(3); /* script too long */
			*(r - 1) = (q - r) - 1;
			continue;
		}
		p++;
		fp = fopen(p, "rb");
		if (fp == NULL)
			errend(4); /* script file open error */
		i = fread(filebuf0, 1, SIZ_FILEBUF, fp);
		if (i >= SIZ_FILEBUF)
			errend(5); /* script file open error */
		script1 = filebuf0 + i;
		p = filebuf0;
		for (;;) {
			while (p < script1 && *p <= ' ')
				p++;
			if (p >= script1)
				break;
			r = ++q;
			while (p < script1 && *p > ' ') {
				if (q - script0 >= SIZ_SCRIPT - 4)
					errend(6); /* script too long */
				*q++ = *p++;
			}
			if (q - r > 255)
				errend(7); /* script too long */
			*(r - 1) = q - r;
			*q++ = '\0';
		}
	}
	*q++ = '\0';
	script1 = q;

	/* スクリプト解釈 */
	p = script0;
	for (;;) {
		if (*p == '\0')
			break;
		if (cmdmatch(p, "copy")) {
			p = (UCHAR *) cmd_copy(p);
			continue;
		}
		if (cmdmatch(p, "ovrcopy")) {
			p = (UCHAR *) cmd_ovrcopy(p);
			continue;
		}
		if (cmdmatch(p, "create")) {
			p = (UCHAR *) cmd_create(p);
			continue;
		}
		if (cmdmatch(p, "ovrcreate")) {
			p = (UCHAR *) cmd_ovrcreate(p);
			continue;
		}
		if (cmdmatch(p, "delete")) {
			p = (UCHAR *) cmd_delete(p);
			continue;
		}
		if (cmdmatch(p, "setattr")) {
			p = (UCHAR *) cmd_setattr(p);
			continue;
		}
		if (cmdmatch(p, "wbinimg")) {
			p = (UCHAR *) cmd_wbinimg(p);
			continue;
		}
		if (cmdmatch(p, "release")) {
			p = (UCHAR *) cmd_release(p);
			continue;
		}
		if (cmdmatch(p, "writedata")) {
			p = (UCHAR *) cmd_writedata(p);
			continue;
		}
		if (cmdmatch(p, "list")) {
			p = (UCHAR *) cmd_list(p);
			continue;
		}
		if (cmdmatch(p, "copyall")) {
			p = (UCHAR *) cmd_copyall(p);
			continue;
		}
		if (cmdmatch(p, "exe2bin")) {
			p = (UCHAR *) cmd_exe2bin(p);
			continue;
		}
		if (cmdmatch(p, "opt")) {
			p += *p + 2;
			continue;
		}
		if (optmatch(p, "imgin")) {
			p = (UCHAR *) opt_imgin(p);
			continue;
		}
		if (optmatch(p, "vsiz")) {
			p = (UCHAR *) opt_vsiz(p);
			continue;
		}
		if (optmatch(p, "imgout")) {
			p = (UCHAR *) opt_imgout(p);
			continue;
		}
		if (optmatch(p, "binin")) {
			p = (UCHAR *) opt_binin(p);
			continue;
		}
		if (optmatch(p, "binout")) {
			p = (UCHAR *) opt_binout(p);
			continue;
		}
		if (optmatch(p, "_path")) {
			p = (UCHAR *) opt_bpath(p);
			continue;
		}
		if (optmatch(p, "bias")) {
			p = (UCHAR *) opt_bias(p);
			continue;
		}
		if (cmdmatch(p, "/*")) {
			i = 1;
			do {
				p += *p + 2;
				if (*p == '\0')
					errend(9); /* comment nesting error */
				if (cmdmatch(p, "/*"))
					i++;
				if (cmdmatch(p, "*/"))
					i--;
			} while (i > 0);
			p += *p + 2;
			continue;
		}
		fputs("script syntax error. : ", stderr);
		fputs(p + 1, stderr);
		errend(8); /* script syntax error */
	}
	return 0;
}
コード例 #5
0
ファイル: test.c プロジェクト: gaccob/gbase
static void
run() {
    cmd_t* cmd = cmd_create(".history", "~>");
    cmd_register(cmd, "base conhash",               test_base_conhash);
    cmd_register(cmd, "base bitset",                test_base_bitset);
    cmd_register(cmd, "base heap",                  test_base_heap);
    cmd_register(cmd, "base rbtree",                test_base_rbtree);
    cmd_register(cmd, "base rbuffer",               test_base_rbuffer);
    cmd_register(cmd, "base slist",                 test_base_slist);
    cmd_register(cmd, "base skiplist",              test_base_skiplist);
    cmd_register(cmd, "base skiplist find",         test_base_skiplist_find);
    cmd_register(cmd, "base skiplist duplicate",    test_base_skiplist_duplicate);
    cmd_register(cmd, "base timer",                 test_base_timer);
    cmd_register(cmd, "core atomic",                test_core_atomic);
#ifdef OS_LINUX
    // seems some memory error ...
    // cmd_register(cmd, "core coroutine",             test_core_coroutine);
#endif
    cmd_register(cmd, "core fsm",                   test_core_fsm);
    cmd_register(cmd, "core lock",                  test_core_lock);
    cmd_register(cmd, "core spin",                  test_core_spin);
    cmd_register(cmd, "core thread",                test_core_thread);
    cmd_register(cmd, "logic dirty",                test_logic_dirty);
    cmd_register(cmd, "logic task",                 test_logic_task);
    cmd_register(cmd, "mm slab",                    test_mm_slab);
    cmd_register(cmd, "mm shm",                     test_mm_shm);
    cmd_register(cmd, "net curl",                   test_net_curl);
    cmd_register(cmd, "net echo",                   test_net_echo);
    cmd_register(cmd, "util base64",                test_util_base64);
    cmd_register(cmd, "util cjson text",            test_util_cjson_text);
    cmd_register(cmd, "util cjson file",            test_util_cjson_file);
    cmd_register(cmd, "util cjson create",          test_util_cjson_create);
    cmd_register(cmd, "util dh",                    test_util_dh);
    cmd_register(cmd, "util dh perf",               test_util_dh_perf);
    cmd_register(cmd, "util random",                test_util_random);
    cmd_register(cmd, "util shuffle",               test_util_shuffle);
    cmd_register(cmd, "util unicode",               test_util_unicode);
    cmd_register(cmd, "util wscode",                test_util_wscode);

    // unit test mode
    if (mode_all) {
        int res = cmd_traverse(cmd, NULL, traverse_callback);
        if (res < 0) {
            fprintf(stderr, "\033[%dm--> [RUN ALL TEST CASES FAILURE] <--\033[0m\n\n", COLOR_RED);
            cmd_release(cmd);
            exit(res);
        }
    }

    // interact mode
    if (mode_interact) {
        while (1) {
            char* line = cmd_readline(cmd);
            if (!line) {
                break;
            }
            int ret = cmd_handle(cmd, line);
            traverse_callback(line, ret);
            free(line);
            if (cmd_eof(cmd)) {
                if (cmd_closed(cmd)) {
                    break;
                }
            }
        }
    }

    cmd_release(cmd);
}