Beispiel #1
0
BOOL get_options(int argc, char *argv[])
{
    int i;
    char *bptr;

    for(i = 1; i < argc; i++)
    {
        if ((*argv[i] == '-') && (*(argv[i] + 1) == '-'))
        {
            if(TRUE == lslp_pattern_match(argv[i] + 2, "type=*", FALSE))
            {
                bptr = argv[i] + 2;
                while (*bptr != '=')
                {
                    bptr++;
                }
                bptr++;
                /* handle case where type is specified twice on the cmd line */
                if (type != NULL)
                {
                    free(type);
                }
                type = strdup(bptr);
            }
            else if (
                TRUE == lslp_pattern_match(argv[i] + 2,
                "predicate=*", FALSE))
            {
                bptr = argv[i] + 2;
                while (*bptr != '=')
                {
                    bptr++;
                }
                bptr++;
                if (predicate != NULL)
                {
                    free(predicate);
                }
                predicate = strdup(bptr);
            }
            else if (TRUE == lslp_pattern_match(argv[i] + 2, "scopes*", FALSE))
            {
                bptr = argv[i] + 2;
                while (*bptr != '=')
                {
                    bptr++;
                }
                bptr++;
                if (scopes != NULL)
                {
                    free(scopes);
                }
                scopes = strdup(bptr);
            }
            else if (
                TRUE == lslp_pattern_match(argv[i] + 2,
                "address*",
                FALSE))
            {
                bptr = argv[i] + 2;
                while (*bptr != '=')
                {
                    bptr++;
                }
                bptr++;
                if (addr != NULL)
                {
                    free(addr);
                }
                addr = strdup(bptr);
            }
            else if (TRUE == lslp_pattern_match(argv[i] + 2, "port*", FALSE))
            {
                bptr = argv[i] + 2;
                while (*bptr != '=')
                {
                    bptr++;
                }
                bptr++;
                port = (int16)strtoul(bptr, NULL, 10);
            }
            else if (
                TRUE == lslp_pattern_match(argv[i] + 2,
                "interface*",
                FALSE))
            {
                bptr = argv[i] + 2;
                while (*bptr != '=')
                {
                    bptr++;
                }
                bptr++;
                if (_interface != NULL)
                {
                    free(_interface);
                }
                _interface = strdup(bptr);
            }
            else if (
                TRUE == lslp_pattern_match(argv[i] + 2,
                "use_da=true*",
                FALSE))
            {
                dir_agent = TRUE;
            }
            else if (TRUE == lslp_pattern_match(argv[i] + 2, "test*", FALSE))
            {
                test = TRUE;
            }
            else if (
                TRUE == lslp_pattern_match(argv[i] + 2,
                "converge=*",
                FALSE))
            {
                bptr = argv[i] + 2;
                while (*bptr != '=')
                {
                    bptr++;
                }
                bptr++;
                converge = (int16)strtoul(bptr, NULL, 10);
            }
            else if (TRUE == lslp_pattern_match(argv[i] + 2, "fs=*", FALSE))
            {
                bptr = argv[i] + 2;
                while (*bptr != '=')
                {
                    bptr++;
                }
                bptr++;
                fs = *bptr;
                parsable=TRUE;
            }
            else if (TRUE == lslp_pattern_match(argv[i] + 2, "rs=*", FALSE))
            {
                bptr = argv[i] + 2;
                while (*bptr != '=')
                {
                    bptr++;
                }
                bptr++;
                rs = *bptr;
                parsable=TRUE;
            }
        }
    }

    if( type == NULL )
    {
        return FALSE;
    }
    return TRUE;
}
Beispiel #2
0
BOOL get_options(int argc, char *argv[])
{
  int i;
  char *bptr;
  
  for(i = 1; i < argc; i++){
    if((*argv[i] == '-') && (*(argv[i] + 1) == '-')) {
      if(TRUE == lslp_pattern_match(argv[i] + 2, "type=*", FALSE)) {
	bptr = argv[i] + 2;
	while(*bptr != '=') bptr++;
	bptr++;
	/* handle case where type is specified twice on the cmd line */
	if(type != NULL)
	  free(type);
	type = strdup(bptr);
      } else if(TRUE == lslp_pattern_match(argv[i] + 2, "url=*", FALSE)) {
	bptr = argv[i] + 2;
	while(*bptr != '=') bptr++;
	bptr++;
	if(url != NULL)
	  free(url);
	url = strdup(bptr);
      } else if(TRUE == lslp_pattern_match(argv[i] + 2, "attributes=*", FALSE)) {
	bptr = argv[i] + 2;
	while(*bptr != '=') bptr++;
	bptr++;
	if(attrs != NULL)
	  free(attrs);
	attrs = strdup(bptr);
      } else if(TRUE == lslp_pattern_match(argv[i] + 2, "address=*", FALSE)) {
	bptr = argv[i] + 2;
	while(*bptr != '=') bptr++;
	bptr++;
	if(addr != NULL)
	  free(addr);
	addr = strdup(bptr);
      } else if(TRUE == lslp_pattern_match(argv[i] + 2, "scopes=*", FALSE)) {
	bptr = argv[i] + 2;
	while(*bptr != '=') bptr++;
	bptr++;
	if(scopes != NULL)
	  free(scopes);
	scopes = strdup(bptr);
      } else if(TRUE == lslp_pattern_match(argv[i] + 2, "lifetime*", FALSE)) {
	bptr = argv[i] + 2;
	while(*bptr != '=') bptr++;
	bptr++;
	life = (uint16)strtoul(bptr, NULL, 10);
      } else if(TRUE == lslp_pattern_match(argv[i] + 2, "port=*", FALSE)) {
	bptr = argv[i] + 2;
	while(*bptr != '=') bptr++;
	bptr++;
	port = (uint16)strtoul(bptr, NULL, 10);
      } else if(TRUE == lslp_pattern_match(argv[i] + 2, "interface=*", FALSE)) {
	bptr = argv[i] + 2;
	while(*bptr != '=') bptr++;
	bptr++;
	if(iface != NULL)
	  free(iface);
	iface = strdup(bptr);
      } else if(TRUE == lslp_pattern_match(argv[i] + 2, "daemon=true*", FALSE)) {
	should_listen = TRUE;
      } else if(TRUE == lslp_pattern_match(argv[i] + 2, "test*", FALSE)) {
	test = TRUE;
      } else if(TRUE == lslp_pattern_match(argv[i] + 2, "use_da=true*", FALSE)) {
	dir_agent = TRUE;
      }
    }
  }
  
  if( type == NULL || url == NULL || attrs == NULL )
    return FALSE;
  return TRUE;
}