void ext_init(char *mode, struct db_main *db) { if (db!= NULL && db->format != NULL) { ext_cipher_limit = maxlen = db->format->params.plaintext_length; return; } else { ext_cipher_limit = options.length; } if (!(ext_source = cfg_get_list(SECTION_EXT, mode))) { #ifdef HAVE_MPI if (mpi_id == 0) #endif fprintf(stderr, "Unknown external mode: %s\n", mode); error(); } if (c_compile(ext_getchar, ext_rewind, &ext_globals)) { if (!ext_line) ext_line = ext_source->tail; #ifdef HAVE_MPI if (mpi_id == 0) #endif fprintf(stderr, "Compiler error in %s at line %d: %s\n", ext_line->cfg_name, ext_line->number, c_errors[c_errno]); error(); } ext_word[0] = 0; c_execute(c_lookup("init")); f_generate = c_lookup("generate"); f_filter = c_lookup("filter"); if ((ext_flags & EXT_REQ_GENERATE) && !f_generate) { #ifdef HAVE_MPI if (mpi_id == 0) #endif fprintf(stderr, "No generate() for external mode: %s\n", mode); error(); } if ((ext_flags & EXT_REQ_FILTER) && !f_filter) { #ifdef HAVE_MPI if (mpi_id == 0) #endif fprintf(stderr, "No filter() for external mode: %s\n", mode); error(); } if ((ext_flags & (EXT_USES_GENERATE | EXT_USES_FILTER)) == EXT_USES_FILTER && f_generate) #ifdef HAVE_MPI if (mpi_id == 0) #endif fprintf(stderr, "Warning: external mode defines generate(), " "but is only used for filter()\n"); ext_mode = mode; }
/* * NAME: kfun->old_compile_object() * DESCRIPTION: compile an object */ int kf_old_compile_object(frame *f) { char file[STRINGSZ]; object *obj; if (path_string(file, f->sp->u.string->text, f->sp->u.string->len) == (char *) NULL) { return 1; } obj = o_find(file, OACC_MODIFY); if (obj != (object *) NULL) { if (!(obj->flags & O_MASTER)) { error("Cannot recompile cloned object"); } if (O_UPGRADING(obj)) { error("Object is already being upgraded"); } if (O_INHERITED(obj)) { error("Cannot recompile inherited object"); } } obj = c_compile(f, file, obj, (string **) NULL, 0, (OBJR(f->oindex)->flags & O_DRIVER) && strcmp(d_get_strconst(f->p_ctrl, f->func->inherit, f->func->index)->text, "inherit_program") == 0); str_del(f->sp->u.string); PUT_OBJVAL(f->sp, obj); return 0; }
int ext_has_function(char *mode, char *function) { if (!(ext_source = cfg_get_list(SECTION_EXT, mode))) { fprintf(stderr, "Unknown external mode: %s\n", mode); error(); } if (c_compile(ext_getchar, ext_rewind, &ext_globals)) { if (!ext_line) ext_line = ext_source->tail; fprintf(stderr, "Compiler error in %s at line %d: %s\n", ext_line->cfg_name, ext_line->number, c_errors[c_errno]); error(); } return (c_lookup(function) != NULL); }
void ext_init(char *mode) { if (!(ext_source = cfg_get_list(SECTION_EXT, mode))) { fprintf(stderr, "Unknown external mode: %s\n", mode); error(); } if (c_compile(ext_getchar, ext_rewind, &ext_globals)) { if (!ext_line) ext_line = ext_source->tail; fprintf(stderr, "Compiler error in %s at line %d: %s\n", cfg_name, ext_line->number, c_errors[c_errno]); error(); } ext_word[0] = 0; c_execute(c_lookup("init")); f_generate = c_lookup("generate"); f_filter = c_lookup("filter"); ext_mode = mode; }
void ext_init(char *mode, struct db_main *db) { if (db != NULL && db->format != NULL) { /* This is second time we are called, just update max length */ ext_cipher_limit = maxlen = db->format->params.plaintext_length - mask_add_len; if (mask_num_qw > 1) { ext_cipher_limit /= mask_num_qw; maxlen /= mask_num_qw; } return; } else ext_cipher_limit = options.length; ext_time = (int) time(NULL); ext_maxlen = options.force_maxlength; if (options.force_minlength > 0) ext_minlen = options.force_minlength; else ext_minlen = 0; if (!(ext_source = cfg_get_list(SECTION_EXT, mode))) { if (john_main_process) fprintf(stderr, "Unknown external mode: %s\n", mode); error(); } if (c_compile(ext_getchar, ext_rewind, &ext_globals)) { if (!ext_line) ext_line = ext_source->tail; if (john_main_process) fprintf(stderr, "Compiler error in %s at line %d: %s\n", cfg_name, ext_line->number, c_errors[c_errno]); error(); } ext_word[0] = 0; c_execute(c_lookup("init")); f_generate = c_lookup("generate"); f_filter = c_lookup("filter"); if ((ext_flags & EXT_REQ_GENERATE) && !f_generate) { if (john_main_process) fprintf(stderr, "No generate() for external mode: %s\n", mode); error(); } if ((ext_flags & EXT_REQ_GENERATE) && !c_lookup("restore")) { if (ext_flags & EXT_REQ_RESTORE) { if (john_main_process) fprintf(stderr, "No restore() for external mode: %s\n", mode); error(); } else if (john_main_process) fprintf(stderr, "Warning: external mode '%s' can't be" " resumed if aborted\n", mode); } if ((ext_flags & EXT_REQ_FILTER) && !f_filter) { if (john_main_process) fprintf(stderr, "No filter() for external mode: %s\n", mode); error(); } if (john_main_process && (ext_flags & (EXT_USES_GENERATE | EXT_USES_FILTER)) == EXT_USES_FILTER && f_generate) if (john_main_process) fprintf(stderr, "Warning: external mode defines generate(), " "but is only used for filter()\n"); ext_mode = mode; }
void ext_init(char *mode, struct db_main *db) { if (!strncmp(mode, "gijohn", 5)) gijohnmodule = 1; if (db) { maxlen = db->format->params.plaintext_length; return; } if (!gijohnmodule) { if (!(ext_source = cfg_get_list(SECTION_EXT, mode))) { #ifdef HAVE_MPI if (mpi_id == 0) #endif fprintf(stderr, "Unknown external mode: %s\n", mode); error(); } if (c_compile(ext_getchar, ext_rewind, &ext_globals)) { if (!ext_line) ext_line = ext_source->tail; #ifdef HAVE_MPI if (mpi_id == 0) #endif fprintf(stderr, "Compiler error in %s at line %d: %s\n", ext_line->cfg_name, ext_line->number, c_errors[c_errno]); error(); } } ext_word[0] = 0; c_execute(c_lookup("init")); if (gijohnmodule) { sig_done(); getthenewpiece(); init_external(xmlxml.keymap.charset, strlen(xmlxml.keymap.charset), xmlxml.keymap.firstword, xmlxml.keymap.lastword); sig_init(); } f_generate = c_lookup("generate"); f_filter = c_lookup("filter"); if (gijohnmodule) { ext_mode = mode; return; } if ((ext_flags & EXT_REQ_GENERATE) && !f_generate) { #ifdef HAVE_MPI if (mpi_id == 0) #endif fprintf(stderr, "No generate() for external mode: %s\n", mode); error(); } if ((ext_flags & EXT_REQ_FILTER) && !f_filter) { #ifdef HAVE_MPI if (mpi_id == 0) #endif fprintf(stderr, "No filter() for external mode: %s\n", mode); error(); } if ((ext_flags & (EXT_USES_GENERATE | EXT_USES_FILTER)) == EXT_USES_FILTER && f_generate) #ifdef HAVE_MPI if (mpi_id == 0) #endif fprintf(stderr, "Warning: external mode defines generate(), " "but is only used for filter()\n"); ext_mode = mode; }