コード例 #1
0
ファイル: connection.c プロジェクト: ianhalpern/zimr
static connection_t* connection_init() {
    connection_t* connection = (connection_t*) malloc( sizeof( connection_t ) );
    memset( connection, 0, sizeof( connection_t ) );
    connection->status = CONN_STATUS_RECEIVED;
    connection->request.params = params_create();
    return connection;
}
コード例 #2
0
ファイル: file2osr.c プロジェクト: hackshields/antivirus
/*--------------------------------------------------------------------------------------------------------------------*/
int main (int argc, char **argv)
{
    params_t *par = 0;
    osr_err_code err = OSR_OK;
    osr_expert *expert = 0;
    int parse_result = 0;

    par = params_create();
    parse_result = parse_command_line (argc, argv, par);
    if (parse_result)
    {
        params_destroy(par);
        if (LEARN_USAGE_ERR_CODE == parse_result)
        {
            print_usage(get_program_name(argv[0]));
            return 0;
        }
        printf ("Error: can't parse command line.\n");
        return 1;
    }

    if (par->print_usage)
        printf ("libosr version %s\n", osr_version_text() );
    if (par->print_ver)
        printf ("libosr version %s\n", osr_version_text() );
	
    if (par->separate_html)
    {
        err =  osr_separate_html (par->separate_html, par->html_separate_step);
        params_destroy(par);
        if (OSR_OK == err)
            return 0;
        else
            return 1;
    }

    if ( OSR_OK == err )
    {
        expert = osr_expert_create();
        if (0 == expert)
        {
            if (!par->no_print_err)
                printf ("Error: OSR initializing error, %s.\n", osr_get_error_text(err));
            err = OSR_INVALID_DATA;
        }
        if (par->ignore_filter)
        {
            osr_filter unlim;
            osr_get_default_filter(&unlim);
            unlim.min_symbols_in_word=1,
            unlim.max_symbols_in_word=1000,
            unlim.min_words_in_line=1,
            unlim.min_lines_in_text=1,
            unlim.min_text_percentage=1;

            osr_set_filter(expert, &unlim);
        }
    }

    if ( OSR_OK == err )
    {
        unsigned int last_frame_index = 0;
        err = osr_process_file(expert, par->file_name, par->frame_index, &last_frame_index);
        if ( OSR_OK != err )
            if (!par->no_print_err)
            {
                if ( OSR_WRONG_FRAME_INDEX == err )
                    printf ("Error: OSR can't get frame %d of animated image."
                            " It must be [0;%d]. File %s.",
                            par->frame_index, last_frame_index, par->file_name);
                else
                    printf ("Error: OSR can't process image (file %s), %s.\n",
                            par->file_name, osr_get_error_text(err));
            }
    }

    if ( OSR_OK == err )
    {
        if (par->print_verdict)
        {
            char verdict = 0;
            err = osr_get_verdict(expert, &verdict);
            if (OSR_OK == err)
                printf ("VERDICT: %s\n", verdict ? "text" : "not text");
            else
                if (!par->no_print_err)
                    printf ("Error: OSR can't get verdict (file %s), %s.\n",
                            par->file_name, osr_get_error_text(err));
        }
    }

    if ( OSR_OK == err )
    {
        if (par->print_info)
        {
            size_t symbols_count = 0, words_count = 0, lines_count = 0, words_pixels_percentage = 0;
            if (OSR_OK == err)
                err = osr_get_symbols_count(expert, &symbols_count);
            if (OSR_OK == err)
                err = osr_get_words_count (expert, &words_count);
            if (OSR_OK == err)
                err = osr_get_lines_count (expert, &lines_count);
            if (OSR_OK == err)
                err = osr_get_words_pixels_percentage (expert, &words_pixels_percentage);
            if (OSR_OK == err)
            {
                printf ("TEXT INFO:\n");
                if (par->frame_index > 0)
                    printf (
                        "frame index            = %d\n", par->frame_index);
                printf ("good symbols count     = %d\n"
                        "good words count       = %d\n"
                        "good lines count       = %d\n"
                        "good pixels percentage = %d%%\n",
                        symbols_count, words_count, lines_count, words_pixels_percentage);
            }
            else
                if (!par->no_print_err)
                    printf ("Error: OSR can't get text properties (file %s), %s.\n",
                            par->file_name, osr_get_error_text(err));
        }
    }

    if ( OSR_OK == err )
    {
        if (par->print_signature)
        {
            char gsg7[33];
            err = osr_get_GSG7_signature(expert, gsg7);
            if (OSR_OK == err)
            {
                if ( 0 != gsg7[0] )
                    printf ("GSG7 %.*s\n", 32, gsg7);
            }
            else
                if (!par->no_print_err)
                    printf ("Error: OSR can't get GSG7 (file %s), %s.\n",
                            par->file_name, osr_get_error_text(err));
        }
    }

    if ( OSR_OK == err )
    {
        if (par->dump_image || par->dump_lines || par->dump_symbols || par->dump_words)
        {
            char dump_name [500];
            get_dump_name (dump_name, 500, par->file_name);
            err = osr_get_dump (expert, dump_name, par->dump_image, par->dump_symbols, par->dump_lines, par->dump_words);
            
            if (OSR_OK != err)
                if (!par->no_print_err)
                    printf ("Error: OSR can't get dump of file %s, %s.\n",
                            par->file_name, osr_get_error_text(err));
        }
    }
    if (par->html_report)
    {
        char dump_name [500];
        get_dump_name (dump_name, 500, par->file_name);

        err = osr_get_html_report(expert, par->file_name, dump_name, par->html_report, err, par->frame_index);
        if (OSR_OK != err)
            if (!par->no_print_err)
                printf ("Error: OSR can't get html-report (image file %s), %s.\n",
                        par->file_name, osr_get_error_text(err));
    }

    if (OSR_OK == err )
        if (par->win_group)
        {
            char gsg7[33];
            err = osr_get_GSG7_signature(expert, gsg7);
            if (OSR_OK == err)
            {
                if (0 == gsg7[0])
                    strncpy (gsg7, "_not_text", 32);
                printf ("@ if not exist %s mkdir %s\n"
                        "@ move \"%s\" %s\n",
                            gsg7, gsg7, par->file_name, gsg7);
            }
            else
                if (!par->no_print_err)
                    printf ("Error: OSR can't get GSG7 (file %s), %s.\n",
                            par->file_name, osr_get_error_text(err));
        }
    
    if (par)
        params_destroy(par);
    if (expert)
        osr_expert_destroy(expert);

    if (OSR_OK == err)
        return 0;
    return 1;
}