Ejemplo n.º 1
0
int main(int argc, char *const *argv)
{
   char *fname = NULL;
   char *expr = NULL;
   int ch;
   bool sed=false;
   char data[1000];
   FILE *fd;

   setlocale(LC_ALL, "");
   bindtextdomain("bacula", LOCALEDIR);
   textdomain("bacula");

   while ((ch = getopt(argc, argv, "sd:f:e:")) != -1) {
      switch (ch) {
      case 'd':                       /* set debug level */
         if (*optarg == 't') {
            dbg_timestamp = true;
         } else {
            debug_level = atoi(optarg);
            if (debug_level <= 0) {
               debug_level = 1;
            }
         }
         break;

      case 'f':                       /* data */
         fname = optarg;
         break;

      case 'e':
         expr = optarg;
         break;

      case 's':
         sed=true;
         break;

      case '?':
      default:
         usage();

      }
   }
   argc -= optind;
   argv += optind;

   if (!fname) {
      printf("A data file must be specified.\n");
      usage();
   }

   if (!expr) {
      printf("An expression must be specified.\n");
      usage();
   }

   OSDependentInit();

   alist *list;
   char *p;
   
   list = get_bregexps(expr);

   if (!list) {
      printf("Can't use %s as 'sed' expression\n", expr);
      exit (1);
   }

   fd = fopen(fname, "r");
   if (!fd) {
      printf(_("Could not open data file: %s\n"), fname);
      exit(1);
   }

   while (fgets(data, sizeof(data)-1, fd)) {
      strip_trailing_newline(data);
      apply_bregexps(data, list, &p);
      if (sed) {
         printf("%s\n", p);
      } else {
         printf("%s => %s\n", data, p);
      }
   }
   fclose(fd);
   free_bregexps(list);
   delete list;
   exit(0);
}
Ejemplo n.º 2
0
/*
 * Free stuff common to all JCRs.  N.B. Be careful to include only
 * generic stuff in the common part of the jcr.
 */
static void free_common_jcr(JCR *jcr)
{
    /*
     * Uses jcr lock/unlock
     */
    remove_jcr_from_tsd(jcr);
    jcr->set_killable(false);

    jcr->destroy_mutex();

    if (jcr->msg_queue) {
        delete jcr->msg_queue;
        jcr->msg_queue = NULL;
        pthread_mutex_destroy(&jcr->msg_queue_mutex);
    }

    if (jcr->client_name) {
        free_pool_memory(jcr->client_name);
        jcr->client_name = NULL;
    }

    if (jcr->attr) {
        free_pool_memory(jcr->attr);
        jcr->attr = NULL;
    }

    if (jcr->sd_auth_key) {
        free(jcr->sd_auth_key);
        jcr->sd_auth_key = NULL;
    }

    if (jcr->VolumeName) {
        free_pool_memory(jcr->VolumeName);
        jcr->VolumeName = NULL;
    }

    if (jcr->dir_bsock) {
        jcr->dir_bsock->close();
        delete jcr->dir_bsock;
        jcr->dir_bsock = NULL;
    }

    if (jcr->errmsg) {
        free_pool_memory(jcr->errmsg);
        jcr->errmsg = NULL;
    }

    if (jcr->where) {
        free(jcr->where);
        jcr->where = NULL;
    }

    if (jcr->RegexWhere) {
        free(jcr->RegexWhere);
        jcr->RegexWhere = NULL;
    }

    if (jcr->where_bregexp) {
        free_bregexps(jcr->where_bregexp);
        delete jcr->where_bregexp;
        jcr->where_bregexp = NULL;
    }

    if (jcr->cached_path) {
        free_pool_memory(jcr->cached_path);
        jcr->cached_path = NULL;
        jcr->cached_pnl = 0;
    }

    if (jcr->id_list) {
        free_guid_list(jcr->id_list);
        jcr->id_list = NULL;
    }

    if (jcr->comment) {
        free_pool_memory(jcr->comment);
        jcr->comment = NULL;
    }

    free(jcr);
}
Ejemplo n.º 3
0
/*
 * Free stuff common to all JCRs.  N.B. Be careful to include only
 *  generic stuff in the common part of the jcr.
 */
static void free_common_jcr(JCR *jcr)
{
   jcr->destroy_mutex();

   if (jcr->msg_queue) {
      delete jcr->msg_queue;
      jcr->msg_queue = NULL;
   }
   close_msg(jcr);                    /* close messages for this job */

   /* do this after closing messages */
   if (jcr->client_name) {
      free_pool_memory(jcr->client_name);
      jcr->client_name = NULL;
   }

   if (jcr->attr) {
      free_pool_memory(jcr->attr);
      jcr->attr = NULL;
   }

   if (jcr->sd_auth_key) {
      free(jcr->sd_auth_key);
      jcr->sd_auth_key = NULL;
   }
   if (jcr->VolumeName) {
      free_pool_memory(jcr->VolumeName);
      jcr->VolumeName = NULL;
   }

   if (jcr->dir_bsock) {
      bnet_close(jcr->dir_bsock);
      jcr->dir_bsock = NULL;
   }
   if (jcr->errmsg) {
      free_pool_memory(jcr->errmsg);
      jcr->errmsg = NULL;
   }
   if (jcr->where) {
      free(jcr->where);
      jcr->where = NULL;
   }
   if (jcr->RegexWhere) {
      free(jcr->RegexWhere);
      jcr->RegexWhere = NULL;
   }
   if (jcr->where_bregexp) {
      free_bregexps(jcr->where_bregexp);
      delete jcr->where_bregexp;
      jcr->where_bregexp = NULL;
   }
   if (jcr->cached_path) {
      free_pool_memory(jcr->cached_path);
      jcr->cached_path = NULL;
      jcr->cached_pnl = 0;
   }
   if (jcr->id_list) {
      free_guid_list(jcr->id_list);
      jcr->id_list = NULL;
   }
   remove_jcr_from_tsd(jcr);
   free(jcr);
}