Example #1
0
int main(int argc, char **argv)
{
    if(argc < 2) {
        fprintf(stderr, "usage: %s 'script.k'\n", argv[0]);
        return 1;
    }
    memcached_st *mc = memcached_create(NULL);
    memcached_server_list_st servers;
    memcached_return_t rc;
    servers = memcached_server_list_append(NULL, "127.0.0.1", 11211, &rc);
    if(rc != MEMCACHED_SUCCESS) {
        fprintf(stderr, "memcached_server_list_append failed\n");
    }
    rc = memcached_server_Push(mc, servers);
    memcached_server_list_Free(servers);

    logpool_t *logpool = logpool_open_client(NULL, "0.0.0.0", 14801);

    size_t script_len;
    char *script = loadFile(argv[1], &script_len);
    memcached_set(mc, "dump_Init", strlen("dump_Init"), script, script_len, 0, 0);
    logpool_procedure(logpool, "dump", strlen("dump"));
    struct Log *logbuf = alloca(sizeof(struct Log) + 256);
    while(1) {
        if(logpool_client_get(logpool, logbuf, 256) == NULL) {
            break;
        }
        log_dump(stderr, "log=(", logbuf, ")\n", 1);
        usleep(1);
    }
    logpool_close(logpool);
    free(script);
    return 0;
}
Example #2
0
static void match_link_dump_item(link_item_t *link, match_link_dump_t *desc)
{
  if ( ! link_txt_attached(&(link->src.txt), desc->id) )
    return;
  (desc->count)++;

  /* Update link time stamp */
  link->tstamp = desc->tstamp;

  /* Send message to attached link subprocess */
  if ( link->fd_out != -1 ) {
    write(link->fd_out, desc->str, desc->len);
  }

  /* No attached link : display message directly */
  else {
    log_dump(log_hdr(link->tstamp, link->name), desc->str);
  }
}
Example #3
0
void fatal_error(const char* file, unsigned line, const char* fmt, ...)
{
    va_list ap;
    fprintf(stderr, "%s:%d: error: ", file, line);

    va_start(ap, fmt);
    vfprintf(stderr, fmt, ap);
    va_end(ap);

    fprintf(stderr, "\n");

    if (avail_)
    {
        fprintf(stderr, "context:\n");
        log_dump();
    }

    exit(1);
}
Example #4
0
static void server_read_callback(struct bufferevent *bev, void *ctx)
{
    struct range_stream *cs = (struct range_stream *) ctx;
    struct io *io = cs->io;
    debug_print(0, "read_cb bev=%p", bev);
    while (!range_stream_empty(cs)) {
        int log_size;
        struct Log *log = range_stream_get(cs, &log_size);
        if (log == NULL) {
            break;
        }
        char *data = log_get_data((struct Log *) log);
        debug_print(0, "%d %d %s", log->protocol, log->logsize, data);
        switch (log_data_protocol(log)) {
        case LOGPOOL_EVENT_READ:
            debug_print(1, "R %d %d, '%s'", log->klen, log->vlen, data);
            pool_add((struct Procedure*) log, bev, io->pool);
            break;
        case LOGPOOL_EVENT_WRITE:
#if LOGPOOL_DEBUG >= 1
            log_dump(stderr, "W ", (struct Log *) log, "\n", 0);
#endif
            pool_exec((struct Log *) log, log_size, io->pool);
            break;
        case LOGPOOL_EVENT_QUIT:
            debug_print(1, "Q %d, %d\n", log->klen, log->vlen);
            pool_delete_connection(io->pool, bev);
            bufferevent_free(bev);
            goto L_exit;
        case LOGPOOL_EVENT_NULL:
        default:
            /*TODO*/abort();
            break;
        }
    }
    L_exit:;
    return;
}
Example #5
0
int main(int argc, char **argv)
{
    if(argc < 2) {
        fprintf(stderr, "usage: %s 'compiled-llvm-bitcode'\n", argv[0]);
        return 1;
    }

    llcache_t *llmc = llcache_new("0.0.0.0", 11211);
    logpool_t *logpool = logpool_open_client(NULL, "0.0.0.0", 14801);
    llcache_set(llmc, "tid_usage_init", argv[1]);
    logpool_procedure(logpool, "tid_usage", strlen("tid_usage"));
    struct Log *logbuf = alloca(sizeof(struct Log) + 256);
    while(1) {
        if(logpool_client_get(logpool, logbuf, 256) == NULL) {
            break;
        }
        log_dump(stderr, "log=(", logbuf, ")\n", 1);
        usleep(1);
    }
    logpool_close(logpool);
    llcache_delete(llmc);
    return 0;
}
Example #6
0
int main(int argc, char **argv)
{
    logpool_t *logpool;
    logpool = logpool_open_client(NULL, "0.0.0.0", 14801);
    if(argc < 2) {
        fprintf(stderr, "usage: %s key value key value ...\n", argv[0]);
        goto L_error;
    }

    logpool_procedure(logpool, argv[1], strlen(argv[1]));
    struct Log *logbuf = alloca(sizeof(struct Log) + 256);
    while(1) {
        logpool_client_get(logpool, logbuf, 256);
        log_dump(stdout, "log=(", logbuf, ")\n", 1);
        usleep(1);
    }
    logpool_close(logpool);
    return 0;

    L_error:;
    logpool_close(logpool);
    return 1;
}
Example #7
0
u08 cmd_parse(u08 len, const char *cmd)
{
  u08 status;
  
  switch(cmd[0]) {
    // ----- v) version -----
    case 'v':
      uart_send_string("plip2slip " VERSION);
      uart_send_crlf();
      return SER_PARSE_CMD_OK;
    
    // ----- x) exit -----
    case 'x':
      return SER_PARSE_CMD_EXIT;
    
    // ----- s) stats -----
    case 's':
      if(len==1) {
        // show stats
        stats_dump();
        return SER_PARSE_CMD_OK;
      } else {
        switch(cmd[1]) {
          case 'r': // stats reset
            stats_reset();
            return SER_PARSE_CMD_OK;        
          default:
            return SER_PARSE_CMD_UNKNOWN;
        }
      }
    
    // ----- b) bench -----
    case 'b':
      bench_dump();
      return SER_PARSE_CMD_OK;
    
    // ----- p) param -----
    case 'p':
      if(len==1) {
        // show params
        param_dump();
        return SER_PARSE_CMD_OK;
      } else {
        switch(cmd[1]) {
          case 's': // param save
            status = param_save();
            return (status == PARAM_OK) ? SER_PARSE_CMD_OK : SER_PARSE_CMD_FAIL;
          case 'l': // param load
            status = param_load();
            return (status == PARAM_OK) ? SER_PARSE_CMD_OK : SER_PARSE_CMD_FAIL;
          case 'r': // param reset
            param_reset();
            return SER_PARSE_CMD_OK;
          default:
            return SER_PARSE_CMD_UNKNOWN;
        }
      }
      return SER_PARSE_CMD_UNKNOWN;
    
    // ----- m) mode -----
    case 'm':
      if(len==2) {
        u08 value;
        status = parse_nybble(cmd[1],&value);
        if(!status || (value >= PARAM_MODE_TOTAL_NUMBER)) {
          return SER_PARSE_CMD_FAIL;
        }
        param.mode = value;
        return SER_PARSE_CMD_OK;
      }
      return SER_PARSE_CMD_UNKNOWN;
    
    // ----- f) fake_tx -----
    case 'f':
      if(len==2) {
        u08 value;
        status = parse_nybble(cmd[1],&value);
        if(!status) {
          return SER_PARSE_CMD_FAIL;
        }
        param.fake_tx = value ? 1 : 0;
        return SER_PARSE_CMD_OK;
      }
      return SER_PARSE_CMD_UNKNOWN;
    
    // ----- l) log -----
    case 'l':
      if(len==1) {
        // show log
        log_dump();
        return SER_PARSE_CMD_OK;
      } else {
        switch(cmd[1]) {
          case 'r': // reset log
            log_init();
            return SER_PARSE_CMD_OK;
          default:
            return SER_PARSE_CMD_UNKNOWN;
        }
      }
      return SER_PARSE_CMD_UNKNOWN;
    
    // ----- e) error sim -----
    case 'e':
      if(len==2) {
        u08 value;
        status = parse_nybble(cmd[1],&value);
        if(!status) {
          return SER_PARSE_CMD_FAIL;
        }
        for(u08 i=0;i<value;i++) {
          error_add();
        }
        return SER_PARSE_CMD_OK;
      } else {
        error_add();
      }
      return SER_PARSE_CMD_OK;
    
    // unknown command
    default:
      return SER_PARSE_CMD_UNKNOWN;
  }
}
Example #8
0
void cmd_parser(unsigned long data)
{
	char *curr_pos = &user_string[0];
	int ret;

	while(1) {

		while(cmd_in_progress)
			os_TaskDelay(10);
		DBG_P(( DBG_L0 "\r\n> "));
		cmd_parser_read_line();
	   
		if(strlen(user_string) == 0) {
			/* Do Nothing. */
		}
	   
		else if(!memcmp(user_string,"iwlist",6)){
			userif_prepare_scan_cmd(0);
		}     
		else if(!memcmp(user_string,"iwconf",6)){
			curr_pos = &user_string[get_next_word(user_string)];
			if(!memcmp(curr_pos,"essid",5)) {
				curr_pos = &curr_pos[get_next_word(curr_pos)];
				specificSSID.Len  = strlen(curr_pos);
				memcpy((void *)specificSSID.SsId, curr_pos, strlen(curr_pos));
				if(link_present) {
					if(currbss_type != BSS_INDEPENDENT)
						userif_prepare_deauth_cmd();
					else
						userif_prepare_adhoc_stop_cmd();
				} else {
					userif_prepare_scan_cmd(1);
				}
				link_present = 0;				
			} else if (!memcmp(curr_pos,"mode",4)) {
				curr_pos = &curr_pos[get_next_word(curr_pos)];
				if(!memcmp(curr_pos,"ad-hoc",6)) {
					bss_type = BSS_INDEPENDENT;
				} else if(!memcmp(curr_pos,"manage",6)) {
					bss_type = BSS_INFRASTRUCTURE;
				} else {
					bss_type = BSS_ANY;
				}
			} else if (!memcmp(curr_pos,"ap",2)) {
				curr_pos = &curr_pos[get_next_word(curr_pos)];
				get_macaddr(curr_pos,(char *)specificBSSID);
				if (FindBSSIDinList()) {
					userif_prepare_auth_cmd();			
				} else {
					if(link_present) {
						link_present = 0;
						userif_prepare_deauth_cmd();
					} else {
						userif_prepare_scan_cmd(2);
					}
				}
			}
		}
		else if(!memcmp(user_string,"econfi",6)){
			unsigned int ip;
			unsigned int nm;
			unsigned int gw;
			curr_pos = &user_string[get_next_word(user_string)];
			get_ipaddr(curr_pos, (char *)&ip);
			curr_pos = &curr_pos[get_next_word(curr_pos)];
			get_ipaddr(curr_pos, (char *)&nm);
			curr_pos = &curr_pos[get_next_word(curr_pos)];
			get_ipaddr(curr_pos, (char *)&gw);
			sys_tcpip_init(ip, nm);
		}
	   
		else if(!memcmp(user_string, "printip", 7)){
			DBG_P(( DBG_L0 "%d.%d.%d.%d,", ip_addr[0], ip_addr[1], ip_addr[2], 
				ip_addr[3] ));
			DBG_P(( DBG_L0 "%d.%d.%d.%d,", net_mask[0], net_mask[1], 
				net_mask[2], net_mask[3] ));
			DBG_P(( DBG_L0 "%d.%d.%d.%d\r\n", def_gtwy[0], def_gtwy[1], 
				def_gtwy[2], def_gtwy[3] ));
		}
	   
		else if(!memcmp(user_string, "printmac", 8)){
			char mac[6];
			GetMACAddr(NULL, mac);
			DBG_P(( DBG_L0 "%02x:%02x:%02x:%02x:%02x:%02x\r\n", \
					mac[0], mac[1], mac[2], mac[3], mac[4], mac[5]));
		}
	   
		else if(!memcmp(user_string,"ping",4)){
			curr_pos = &user_string[get_next_word(user_string)];
			if(!memcmp(curr_pos,"stop",4)) {
				send_ping = 0;
			} else {
				get_ipaddr(curr_pos, ping_ipaddr);
#ifdef EMBEDDED_TCPIP
				userif_prepare_open_raw_socket();
#else
				userif_prepare_macaddr_get_cmd();
#endif
				send_ping = 1;
			}
		}

		/* Link-local address manager. */
		else if(!memcmp(user_string, "linklocal", 9)) {
			curr_pos = &user_string[get_next_word(user_string)];
			if(!memcmp(curr_pos, "start", 5)) {
				/* Launch the link local manager */
				ret = ll_init();
				if(ret)
					DBG_P(( DBG_L0 "Error launching link local: %d.\r\n", ret));
			} else if(!memcmp(curr_pos, "stop", 4)) {
				/* Kill the link local manager. */
				ret = ll_shutdown();
				if(ret)
					DBG_P(( DBG_L0 "Error killing link local: %d.\r\n", ret));
			}
		}

		/* mDNS responder */
		else if(!memcmp(user_string, "mdns", 4)) {
			curr_pos = &user_string[get_next_word(user_string)];
			if(!memcmp(curr_pos, "start", 5)) {
				/* launch the mDNS responder */
				ret = mdns_responder_init();
				if(ret)
					DBG_P(( DBG_L0 "Error launching mDNS responder: %d.\r\n",ret));
			}
			else if(!memcmp(curr_pos, "stop", 4)) {
				/* stop the mDNS responder */
				ret = mdns_responder_shutdown();
				if(ret)
					DBG_P(( DBG_L0 "Error stopping mDNS responder: %d.\r\n", ret));
			}
		}

	else if(!memcmp(user_string, "mcast", 5 )){
		curr_pos = &user_string[get_next_word(user_string)];
		if(!memcmp(curr_pos, "get", 3 )) {
			userif_prepare_mcast_cmd();
		}
		else if(!memcmp(curr_pos, "set", 3 )) {
			userif_prepare_mcast_add_cmd();
		}
	}

		/* httpd interface */
		else if(!memcmp(user_string, "httpd", 5)) {
			curr_pos = &user_string[get_next_word(user_string)];
			if(!memcmp(curr_pos, "start", 5)) {
				ret = httpd_init();
				if(ret)
					DBG_P(( DBG_L0 "Error launching httpd: %d.\r\n",ret));
			}
			else if(!memcmp(curr_pos, "stop", 4)) {
				ret = httpd_shutdown();
				if(ret)
					DBG_P(( DBG_L0 "Error stopping httpd: %d.\r\n", ret));
			}
			else {
				DBG_P(( DBG_L0 "No such httpd command: %s.\r\n", curr_pos));
			}
		}

		/* log interface */
		else if(!memcmp(user_string, "log", 3)) {
			curr_pos = &user_string[get_next_word(user_string)];
			if(!memcmp(curr_pos, "init", 5)) {
				ret = log_init();
				if(ret)
					DBG_P(( DBG_L0 "Error launching logger: %d.\r\n",ret));
			}
			else if(!memcmp(curr_pos, "shutdown", 8)) {
				ret = log_shutdown();
				if(ret)
					DBG_P(( DBG_L0 "Error stopping logger: %d.\r\n", ret));
			}
			else if(!memcmp(curr_pos, "dump", 4)) {
				ret = log_dump();
				if(ret)
					DBG_P(( DBG_L0 "Error dumping log: %d.\r\n", ret));
			}
			else if(!memcmp(curr_pos, "purge", 5)) {
				ret = log_purge();
				if(ret)
					DBG_P(( DBG_L0 "Error purging log: %d.\r\n", ret));
			}
			else if(!memcmp(curr_pos, "write", 5)) {
				curr_pos = &curr_pos[get_next_word(curr_pos)];
				ret = log(curr_pos);
				if(ret)
					DBG_P(( DBG_L0 "Failed to write log: %d.\r\n", ret));
			}
			else {
				DBG_P(( DBG_L0 "No such log command: %s.\r\n", curr_pos));
			}
		}

	 else if(!memcmp(user_string, "help", 4)) {
		 print_usage();
	 }

	else {
#ifdef UART_DRV
			DBG_P(( DBG_L0 "Unknown command.\r\n")); 
#endif		 
		}	   
	}
}