Exemplo n.º 1
0
int main(int argc, char **argv)
{
  char *s;
#if 0 /* Shouldn't need this.. */
  signal(SIGHUP, SIG_IGN);
#endif

  /* initialize locale support */
  setlocale(LC_ALL, "");
  bindtextdomain(PACKAGE, LOCALEDIR);
  textdomain(PACKAGE);

  init_env();

  do_args(argc, argv);

  memset(inbuf, 0, sizeof(inbuf));

  if (argc > 2) {
    strncpy(logfname, argv[2], sizeof(logfname));
    if (argc > 3)
      strncpy(homedir, argv[3], sizeof(homedir));
    else if ((s = getenv("HOME")) != NULL)
      strncpy(homedir, s, sizeof(homedir));
    else
      homedir[0] = 0;
  }
  else
    logfname[0] = 0;

  return execscript(argv[1]) != OK;
}
Exemplo n.º 2
0
void native_startup(int argc, char **argv) {
#if USE_RT_MON
	{
		/* create a 2d histogram for dope repaint actions */
		double l[2] = {0, 0};         /* start at <0, 0> ...    */
		double h[2] = {400, 400};     /* ... up to <400, 400>   */
		int b[2] = {200, 200};        /* 200 bins for each dim */

		/*
		 * Create histogram with 2 layers and use TSC times.
		 *   layer 1 are accumulated times
		 *   layer 2 counts time number of events added together in layer 1
		 *   -> (layer 1 / layer 2) == average time
		 *
		 * Units: x- and y-axis are in pixel, z-axis is time in µsecs
		 */
		hist2dxy = rt_mon_hist2d_create(l, h, b, 2,
		                                "dope/rel_xy_2d",
		                                "w [px]", "h [px]", "t/px [ns/px]",
		                                RT_MON_TSC_TIME);
	}
#endif

	/*
	 * Just avoid to start DOpE if another instance is already
	 * present.
	 */
	do_args(argc, argv);
}
Exemplo n.º 3
0
/**
 * ipsec pool --batch - read commands from a file
 */
static void batch(char *argv0, char *name)
{
	char command[512];

	FILE *file = strncmp(name, "-", 1) == 0 ? stdin : fopen(name, "r");
	if (file == NULL)
	{
		fprintf(stderr, "opening '%s' failed: %s\n", name, strerror(errno));
		exit(EXIT_FAILURE);
	}

	db->transaction(db, FALSE);
	while (fgets(command, sizeof(command), file))
	{
		char *argv[ARGV_SIZE], *start;
		int i, argc = 0;
		size_t cmd_len = strlen(command);

		/* ignore empty lines */
		if (cmd_len == 1 && *(command + cmd_len - 1) == '\n')
		{
			continue;
		}

		/* parse command into argv */
		start = command;
		argv_add(argv, argc++, argv0);
		for (i = 0; i < cmd_len; ++i)
		{
			if (command[i] == ' ' || command[i] == '\n')
			{
				if (command + i == start)
				{
					/* ignore leading whitespace */
					++start;
					continue;
				}
				command[i] = '\0';
				argv_add(argv, argc++, start);
				start = command + i + 1;
			}
		}
		if (strlen(start) > 0)
		{
			argv_add(argv, argc++, start);
		}
		argv_add(argv, argc, NULL);

		do_args(argc, argv);
	}
	db->commit(db);

	if (file != stdin)
	{
		fclose(file);
	}
}
Exemplo n.º 4
0
int
main(int argc, char * const *argv)
{
	const char *T_arg = NULL;
	const char *S_arg = NULL;
	const char *n_arg = NULL;
	int opt, sock;

	while ((opt = getopt(argc, argv, "n:S:T:t:")) != -1) {
		switch (opt) {
		case 'n':
			n_arg = optarg;
			break;
		case 'S':
			S_arg = optarg;
			break;
		case 'T':
			T_arg = optarg;
			break;
		case 't':
			timeout = strtod(optarg, NULL);
			break;
		default:
			usage();
		}
	}

	argc -= optind;
	argv += optind;

	if (n_arg != NULL) {
		if (T_arg != NULL || S_arg != NULL) {
			usage();
		}
		sock = n_arg_sock(n_arg);
	} else if (T_arg == NULL) {
		sock = n_arg_sock("");
	} else {
		assert(T_arg != NULL);
		sock = cli_sock(T_arg, S_arg);
	}
	if (sock < 0)
		exit(2);

	if (argc > 0)
		do_args(sock, argc, argv);
	else {
		if (isatty(0)) {
			interactive(sock);
		} else {
			pass(sock);
		}
	}
	exit(0);
}
Exemplo n.º 5
0
int main(int argc, char *argv[])
{
	char *uri;

	atexit(library_deinit);

	/* initialize library */
	if (!library_init(NULL, "pool"))
	{
		exit(SS_RC_LIBSTRONGSWAN_INTEGRITY);
	}
	if (lib->integrity &&
		!lib->integrity->check_file(lib->integrity, "pool", argv[0]))
	{
		fprintf(stderr, "integrity check of pool failed\n");
		exit(SS_RC_DAEMON_INTEGRITY);
	}
	if (!lib->plugins->load(lib->plugins,
			lib->settings->get_str(lib->settings, "pool.load", PLUGINS)))
	{
		exit(SS_RC_INITIALIZATION_FAILED);
	}
	/* TODO: make database URI or setting key configurable via command line */
	uri = lib->settings->get_str(lib->settings,
			"pool.database",
			lib->settings->get_str(lib->settings,
				"charon.plugins.attr-sql.database",
				lib->settings->get_str(lib->settings,
					"libhydra.plugins.attr-sql.database", NULL)));
	if (!uri)
	{
		fprintf(stderr, "database URI pool.database not set.\n");
		exit(SS_RC_INITIALIZATION_FAILED);
	}
	db = lib->db->create(lib->db, uri);
	if (!db)
	{
		fprintf(stderr, "opening database failed.\n");
		exit(SS_RC_INITIALIZATION_FAILED);
	}
	atexit(cleanup);

	do_args(argc, argv);

	exit(EXIT_SUCCESS);
}
Exemplo n.º 6
0
QoreValue QoreValueList::maxValue(const ResolvedCallReferenceNode* fr, ExceptionSink* xsink) const {
   if (!priv->length)
      return QoreValue();
   QoreValue rv = priv->entry[0];

   for (size_t i = 1; i < priv->length; ++i) {
      QoreValue v = priv->entry[i];

      safe_qorelist_t args(do_args(v, rv), xsink);
      ValueHolder result(fr->execValue(*args, xsink), xsink);
      if (*xsink)
	 return QoreValue();
      if (result->getAsBigInt() > 0)
	 rv = v;
   }
   return rv.refSelf();
}
Exemplo n.º 7
0
int main(int argc, char* argv[]){
  char** ap;
  initialize_syntax();
  ap = argv+1;
  stdout_stream = make_file_output_stream(stdout,"");
  stdin_stream = make_file_input_stream(stdin,NULL);
  output_stream = stdout_stream;
  if ( argc >= 3 && stricmp(*ap,"-prim") == 0 ) {
    CIStream ps;
    ap++;
    ps = open_input_file( *ap, FALSE );
    if ( ps != NULL ) {
      read_patterns(ps, "", FALSE);
      cis_close(ps);
    }
    ap++;
  }
  else initialize_argv_domain();
  do_args(ap);
  return (int)exit_status;
}
Exemplo n.º 8
0
int main( int argc, char **argv )
{
    PALETTE pal;
    int i;


    /* init allegro and init palette */
    install_allegro(SYSTEM_NONE, &errno, atexit);
    set_color_depth(8);
    set_color_conversion(COLORCONV_REDUCE_TO_256);
    for( i = 0; i < 256; i++ )
    {
        /* divided by 4 because the colour value ranges from 0-63 */
        pal[i].r = pal[i].g = pal[i].b = i/4;
    }


    srand(time(NULL));

    do_args(argc, argv);

    if( filename == NULL )
    {
        /* +1 for '\0' char */
        filename = malloc(strlen(DEFT_FILENAME)+1);
        if( filename == NULL )
        {
            fprintf(stderr, "error: can't malloc space for map name.\n");
            exit(EXIT_FAILURE);
        }
        strcpy(filename, DEFT_FILENAME);
    }

    lwmapgen(size, grid_size, func_id);

    save_bitmap(filename, map.map, pal);


    return EXIT_SUCCESS;
}
Exemplo n.º 9
0
int main(int argc, char *argv[])
{
	/* enable attest debugging hook */
	dbg = pacman_dbg;
	openlog("pacman", 0, LOG_DEBUG);

	atexit(cleanup);

	/* initialize library */
	if (!library_init(NULL, "pacman"))
	{
		exit(SS_RC_LIBSTRONGSWAN_INTEGRITY);
	}
	if (!lib->plugins->load(lib->plugins,
			lib->settings->get_str(lib->settings, "pacman.load", "sqlite")))
	{
		exit(SS_RC_INITIALIZATION_FAILED);
	}
	do_args(argc, argv);

	exit(EXIT_SUCCESS);
}
Exemplo n.º 10
0
/******************************************************************************
 * main                                                                       *
 *                                                                            *
 * Main function                                                              *
 ******************************************************************************/
int main(int argc, char *argv[])
{
  int error = 0, i=1;
  l4_threadid_t dummy_l4id = L4_NIL_ID, loader_id;
//  l4events_event_t event;
//  l4events_nr_t eventnr;

  CORBA_Environment _env = dice_default_environment;

  /* init */
  do_args(argc, argv);
  my_l4id = l4thread_l4_id( l4thread_myself() );

  LOG("Hello, I'm running as "l4util_idfmt, l4util_idstr(my_l4id));

  /* ask for 'con' (timeout = 5000 ms) */
  if (names_waitfor_name(CON_NAMES_STR, &con_l4id, 50000) == 0) 
    {
      LOG("PANIC: %s not registered at names", CON_NAMES_STR);
      enter_kdebug("panic");
    }

  if (names_waitfor_name("LOADER", &loader_id, 50000) == 0)
    {
      LOG("PANIC: LOADER not registered at names");
      enter_kdebug("panic");
    }
  
  if (con_if_openqry_call(&con_l4id, MY_SBUF_SIZE, 0, 0,
		     L4THREAD_DEFAULT_PRIO,
		     &vc_l4id, 
	  	     CON_VFB, &_env))
    enter_kdebug("Ouch, open vc failed");
  
  if (con_vc_smode_call(&vc_l4id, CON_OUT, &dummy_l4id, &_env))
    enter_kdebug("Ouch, setup vc failed");

  if (con_vc_graph_gmode_call(&vc_l4id, &gmode, &xres, &yres,
			 &bits_per_pixel, &bytes_per_pixel,
			 &bytes_per_line, &accel_flags, 
			 &fn_x, &fn_y, &_env))
    enter_kdebug("Ouch, graph_gmode failed");

  if (bytes_per_pixel != 2)
    {
      printf("Graphics mode not 2 bytes/pixel, exiting\n");
      con_vc_close_call(&vc_l4id, &_env);
      exit(0);
    }

  if (create_logo())
    enter_kdebug("Ouch, logo creation failed");

  while (!error && (i>0)) 
    {
      if ((error = clear_screen()))
	enter_kdebug("Ouch, clear_screen failed");
      if ((error = logo()))
	enter_kdebug("Ouch, logo failed");
      l4_sleep(500);
      i--;
    }

  if (con_vc_close_call(&vc_l4id, &_env))
    enter_kdebug("Ouch, close vc failed?!");
  
  LOG("Finally closed vc");

  LOG("Going to bed ...");

  names_register("CON_DEMO1");
/*
  my_id = l4_myself();
  event.len=sizeof(l4_umword_t);
  *(l4_umword_t*)event.str=my_id.id.task;
  
  l4events_send(1, &event, &eventnr, L4EVENTS_SEND_ACK);
  l4events_get_ack(eventnr, L4_IPC_NEVER);
*/  
  return 0;
}
Exemplo n.º 11
0
void
procstat_env(struct procstat *procstat, struct kinfo_proc *kipp)
{
    do_args(procstat, kipp, 1);
}
Exemplo n.º 12
0
int
main(int argc, char * const *argv)
{
	const char *T_arg = NULL;
	const char *S_arg = NULL;
	const char *n_arg = NULL;
	int opt, sock;

	/*
	 * By default linux::getopt(3) mangles the argv order, such that
	 *	varnishadm -n bla param.set foo -bar
	 * gets interpreted as
	 *	varnishadm -n bla -bar param.set foo
	 * The '+' stops that from happening
	 * See #1496
	 */
	while ((opt = getopt(argc, argv, "+n:S:T:t:")) != -1) {
		switch (opt) {
		case 'n':
			n_arg = optarg;
			break;
		case 'S':
			S_arg = optarg;
			break;
		case 'T':
			T_arg = optarg;
			break;
		case 't':
			timeout = VNUM(optarg);
			if (isnan(timeout))
				usage();
			break;
		default:
			usage();
		}
	}

	argc -= optind;
	argv += optind;

	if (n_arg != NULL) {
		if (T_arg != NULL || S_arg != NULL) {
			usage();
		}
		sock = n_arg_sock(n_arg);
	} else if (T_arg == NULL) {
		sock = n_arg_sock("");
	} else {
		assert(T_arg != NULL);
		sock = cli_sock(T_arg, S_arg);
	}
	if (sock < 0)
		exit(2);

	if (argc > 0)
		do_args(sock, argc, argv);
	else {
		if (isatty(0)) {
			interactive(sock);
		} else {
			pass(sock);
		}
	}
	exit(0);
}
Exemplo n.º 13
0
int qore_value_list_private::mergesort(const ResolvedCallReferenceNode* fr, bool ascending, ExceptionSink* xsink) {
   //printd(5, "List::mergesort() ENTER this: %p, pgm: %p, f: %p length: %d\n", this, pgm, f, length);

   if (length <= 1)
      return 0;

   // separate list into two equal-sized lists
   ReferenceHolder<QoreValueList> left(new QoreValueList, xsink);
   ReferenceHolder<QoreValueList> right(new QoreValueList, xsink);
   qore_value_list_private* l = left->priv;
   qore_value_list_private* r = right->priv;
   size_t mid = length / 2;
   {
      size_t i = 0;
      for (; i < mid; i++)
	 l->push(entry[i]);
      for (; i < length; i++)
	 r->push(entry[i]);
   }

   // set length to 0 - the temporary lists own the entry references now
   length = 0;

   // mergesort the two lists
   if (l->mergesort(fr, ascending, xsink) || r->mergesort(fr, ascending, xsink))
      return -1;

   // merge the resulting lists
   // use offsets and StackList::getAndClear() to avoid moving a lot of memory around
   size_t li = 0, ri = 0;
   while ((li < l->length) && (ri < r->length)) {
      QoreValue& lv = l->entry[li];
      QoreValue& rv = r->entry[ri];
      int rc;
      if (fr) {
	 safe_qorelist_t args(do_args(lv, rv), xsink);
	 ValueHolder result(fr->execValue(*args, xsink), xsink);
	 if (*xsink)
	    return -1;
	 rc = (int)result->getAsBigInt();
      }
      else {
	 ValueHolder result(OP_LOG_CMP->eval(lv, rv, true, 2, xsink), xsink);
	 if (*xsink)
	    return -1;
	 rc = (int)result->getAsBigInt();
      }
      if ((ascending && rc <= 0)
	  || (!ascending && rc > 0))
	 push(l->getAndClear(li++));
      else
	 push(r->getAndClear(ri++));
   }

   // only one list will have entries left...
   while (li < l->length)
      push(l->getAndClear(li++));
   while (ri < r->length)
      push(r->getAndClear(ri++));

   //printd(5, "List::mergesort() EXIT this: %p, length: %d\n", this, length);

   return 0;
}
Exemplo n.º 14
0
int qore_value_list_private::qsort(const ResolvedCallReferenceNode* fr, size_t left, size_t right, bool ascending, ExceptionSink* xsink) {
   size_t l_hold = left;
   size_t r_hold = right;
   QoreValue pivot = entry[left];

   while (left < right) {
      while (true) {
	 int rc;
	 if (fr) {
	    safe_qorelist_t args(do_args(entry[right], pivot), xsink);
	    ValueHolder rv(fr->execValue(*args, xsink), xsink);
	    if (*xsink)
	       return -1;
	    rc = (int)rv->getAsBigInt();
	 }
	 else {
	    ValueHolder rv(OP_LOG_CMP->eval(entry[right], pivot, true, 2, xsink), xsink);
	    if (*xsink)
	       return -1;
	    rc = (int)rv->getAsBigInt();
	 }
	 if ((left < right)
	     && ((rc >= 0 && ascending)
		 || (rc < 0 && !ascending)))
	    --right;
	 else
	    break;
      }

      if (left != right) {
	 entry[left] = entry[right];
	 ++left;
      }

      while (true) {
	 int rc;
	 if (fr) {
	    safe_qorelist_t args(do_args(entry[left], pivot), xsink);
	    ValueHolder rv(fr->execValue(*args, xsink), xsink);
	    if (*xsink)
	       return -1;
	    rc = (int)rv->getAsBigInt();
	 }
	 else {
	    ValueHolder rv(OP_LOG_CMP->eval(entry[left], pivot, true, 2, xsink), xsink);
	    if (*xsink)
	       return -1;
	    rc = (int)rv->getAsBigInt();
	 }
	 if ((left < right)
	     && ((rc <= 0 && ascending)
		 || (rc > 0 && !ascending)))
	    ++left;
	 else
	    break;
      }

      if (left != right) {
	 entry[right] = entry[left];
	 --right;
      }
   }
   entry[left] = pivot;
   size_t t_left = left;
   left = l_hold;
   right = r_hold;
   int rc = 0;
   if (left < t_left)
      rc = qsort(fr, left, t_left - 1, ascending, xsink);
   if (!rc && right > t_left)
      rc = qsort(fr, t_left + 1, right, ascending, xsink);
   return rc;
}
Exemplo n.º 15
0
Arquivo: main.c Projeto: bl0b/tinyap
int main(int argc, char**argv) {
	return do_args(argc,argv);
}
Exemplo n.º 16
0
/******************************************************************************
 * main                                                                       *
 *                                                                            *
 * Main function                                                              *
 ******************************************************************************/
int main(int argc, char *argv[])
{
  int error = 0;
  l4_threadid_t dummy_l4id = L4_NIL_ID;

  CORBA_Environment _env = dice_default_environment;

  /* init */
  do_args(argc, argv);
  my_l4id = l4thread_l4_id( l4thread_myself() );

  LOG("Hello, I'm running as "l4util_idfmt, l4util_idstr(my_l4id));

  /* ask for 'con' (timeout = 5000 ms) */
  if (names_waitfor_name(CON_NAMES_STR, &con_l4id, 50000) == 0) 
    {
      LOG("PANIC: %s not registered at names", CON_NAMES_STR);
      enter_kdebug("panic");
    }

  if (con_if_openqry_call(&con_l4id, MY_SBUF_SIZE, 0, 0,
		     L4THREAD_DEFAULT_PRIO,
		     &vc_l4id, 
	  	     CON_VFB, &_env))
    enter_kdebug("Ouch, open vc failed");
  
  if (con_vc_smode_call(&vc_l4id, CON_OUT, &dummy_l4id, &_env))
    enter_kdebug("Ouch, setup vc failed");

  if (con_vc_graph_gmode_call(&vc_l4id, &gmode, &xres, &yres,
			 &bits_per_pixel, &bytes_per_pixel,
			 &bytes_per_line, &accel_flags, 
			 &fn_x, &fn_y, &_env))
    enter_kdebug("Ouch, graph_gmode failed");

  if (bytes_per_pixel != 2)
    {
      printf("Graphics mode not 2 bytes/pixel, exiting\n");
      con_vc_close_call(&vc_l4id, &_env);
      exit(0);
    }

  if (create_logo())
    enter_kdebug("Ouch, logo creation failed");

  while (!error) 
    {
      if ((error = clear_screen()))
	enter_kdebug("Ouch, clear_screen failed");
      if ((error = logo()))
	enter_kdebug("Ouch, logo failed");
      l4_sleep(2000);
    }

  if (con_vc_close_call(&vc_l4id, &_env))
    enter_kdebug("Ouch, close vc failed?!");
  
  LOG("Finally closed vc");

  LOG("Going to bed ...");
  l4_sleep(-1);

  return 0;
}
Exemplo n.º 17
0
int
main(int argc, char *const *argv)
{
	struct sockaddr_in bindaddr;
	socklen_t addrlen;
	const char *isDA;
	const char *proxyReg;
	int connfd;
	int lfd;
	const int on = 1;

	detachfromtty();

	openlog("slpd", LOG_PID, LOG_DAEMON);

	do_args(argc, argv);

	/* If slpd has been configured to run as a DA, start it and exit */
	isDA = SLPGetProperty("net.slp.isDA");
	proxyReg = SLPGetProperty("net.slp.serializedRegURL");
	if ((isDA && (strcasecmp(isDA, "true") == 0)) || proxyReg) {
		run_slpd();
		return (1);
	}

	if ((lfd = socket(AF_INET, SOCK_STREAM, 0)) < 0) {
		syslog(LOG_ERR, "socket failed: %s", strerror(errno));
		cleanup_and_exit(1);
	}

	(void) setsockopt(lfd, SOL_SOCKET, SO_REUSEADDR, &on, sizeof (on));

	(void) memset((void *)&bindaddr, 0, sizeof (bindaddr));
	bindaddr.sin_family = AF_INET;
	bindaddr.sin_addr.s_addr = htonl(INADDR_LOOPBACK);
	bindaddr.sin_port = htons(427);

	if (bind(lfd, (const struct sockaddr *)&bindaddr, sizeof (bindaddr))
	    < 0) {
		syslog(LOG_ERR, "bind failed: %s", strerror(errno));
		cleanup_and_exit(1);
	}

	if (listen(lfd, 1) < 0) {
		syslog(LOG_ERR, "listen failed: %s", strerror(errno));
		cleanup_and_exit(1);
	}

	addrlen = sizeof (bindaddr);
	if ((connfd = accept(lfd, (struct sockaddr *)&bindaddr, &addrlen))
	    < 0) {
		syslog(LOG_ERR, "accept failed: %s", strerror(errno));
		cleanup_and_exit(1);
	}

	(void) close(lfd);

	(void) dup2(connfd, 0);
	(void) close(connfd);
	(void) dup2(0, 1);
	(void) dup2(0, 2);

	run_slpd();

	return (1);
}