Beispiel #1
0
Datei: tld.c Projekt: Rafiot/faup
int faup_tld_array_populate(void)
{

	FILE *fp;
	char *tld_file = faup_datadir_get_file("mozilla.tlds", false);
	bool begin_icann_domains = 0;

	if (_tlds) {
		fprintf(stderr, "The tld array has already been populated!\n");
		free(tld_file);
		return -1;
	}
	utarray_new(_tlds, &ut_str_icd);

	fp = fopen(tld_file, "r");
	free(tld_file);
	if (fp) {
		char line[524]; // We have the control over our tld file

		while(fgets(line, sizeof(line), fp) != NULL) {
			size_t line_len = strlen(line);
			char *allocated_line = NULL;

			if (line_len > 0) {
				line[line_len - 1] = '\0';
				allocated_line = strdup((const char *)line);

				switch(line[0]) {
					case '/':
						if (!strncmp("// ===BEGIN ICANN DOMAINS===", allocated_line, 28)) {
							begin_icann_domains = 1;
						}
						break;
					case '\n':
					case '\r':
					case ' ':
					case '\0':
						break;
					default:
						if (line_len > 0) {
							if (begin_icann_domains) {
								utarray_push_back(_tlds, &allocated_line);
							}
						} // if (line_len > 0) {			
				} // switch(line[0]) {
				free(allocated_line);
			} // if (line_len > 0) {
		}
		fclose(fp);
	}

	return 0;
}
Beispiel #2
0
int faup_handle_shell_modules(int argc, char **argv)
{

  if (argc < 5) {
    printf("Usage: %s $ modules action\n", argv[0]);
    printf("\nWhere action can be:\n");
    printf("list all      : List all modules\n");
    printf("list enabled  : List enabled modules\n");
    printf("list available: List available modules\n\n");

    printf("enable module_name : Enable the module 'module_name'\n");
    printf("disable module_name: Disable the module 'module_name'\n");
    printf("\n");
    return -1;
  }

  if (!strcmp(argv[3], "list") || !strcmp(argv[3], "l")) {
    if (!strcmp(argv[4], "all")) {
      printf("Modules enabled:\n");
      faup_modules_foreach_filelist(NULL, NULL, shell_modules_list_cb, NULL);
      printf("\n");
      printf("Modules available:\n");
      char *global_available = faup_datadir_get_global_file("modules_available");
      faup_modules_foreach_filelist(NULL, global_available, shell_modules_list_cb, NULL);
      printf("\n");
      free(global_available);
    }
    if (!strcmp(argv[4], "enabled")) {
      printf("\n");
      faup_modules_foreach_filelist(NULL, NULL, shell_modules_list_cb, NULL);
      printf("\n");
    }
    if (!strcmp(argv[4], "available")) {
      char *global_available = faup_datadir_get_global_file("modules_available");
      printf("\n");
      faup_modules_foreach_filelist(NULL, global_available, shell_modules_list_cb, NULL);
      printf("\n");
      free(global_available);
    }
  }

  if (!strcmp(argv[3], "enable") || !strcmp(argv[3], "e")) {
      int retval;
      char *enabled_filename;
      char *symlink_file;
      char *origin_filename;
      char *available_filename;

      retval = asprintf(&enabled_filename, "modules_enabled%s%s", FAUP_OS_DIRSEP, argv[4]);
      symlink_file = faup_datadir_file_to_write(enabled_filename, true);
      free(enabled_filename);
      retval = asprintf(&origin_filename, "modules_available%s%s", FAUP_OS_DIRSEP, argv[4]);
      available_filename = faup_datadir_get_global_file(origin_filename);
      free(origin_filename);


      retval = symlink(available_filename, symlink_file);
      if (!retval) {
        printf("Module '%s' enabled with success!\n", argv[4]);
      } else {
        printf("Module '%s' cannot be enabled: %s\n", argv[4], strerror(errno));
      }
      free(available_filename);
      free(symlink_file);
  }

  if (!strcmp(argv[3], "disable") || !strcmp(argv[3], "d")) {
      int retval;
      char *enabled_filename;
      char *symlink_file;

      retval = asprintf(&enabled_filename, "modules_enabled%s%s", FAUP_OS_DIRSEP, argv[4]);
      symlink_file = faup_datadir_get_file(enabled_filename, false);
      free(enabled_filename);

      retval = unlink(symlink_file);
      if (!retval) {
        printf("Module '%s' disabled with success!\n", argv[4]);
      } else {
        printf("Module '%s' cannot be deactivated: %s\n", argv[4], strerror(errno));
      }
      free(symlink_file);
  }

  return 0;
}
Beispiel #3
0
Datei: tld.c Projekt: Rafiot/faup
void faup_tld_datadir_print(void) 
{
	printf("FAUP_DATA_DIR=%s\n", FAUP_DATA_DIR);
	printf("TLD file being used:%s\n", faup_datadir_get_file("mozilla.tlds", false));
}