The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

NAME

FILES - File structure of the server/client.

Last update: 2004-09-15

SERVER

OVERVIEW

The typical server setup looks like this:

        tpl/                    HTML templates
        tpl/styles/             styles for HTML output
        tpl/mail/               email template files
        tpl/help/               HTML versions of the /doc POD files
        doc/                    documentation in pod format
        build/                  scripts related to building the
                                distribution and HTML help
        worker/                 the worker files
        target/                 job targets
        target/dictionaries     dictionary files
        target/data             Job/Chunk description files (dynamically
                                created by the server)
        config/                 configuration files
        lib/                    source code (the program itself)
        logs/                   log files are stored here
        scripts/                scripts to convert input files to
                                target hashes or target files
        msg/                    message strings in various languages
        def/                    Various definition files, f. i. for
                                the valid requests, objects etc
        

Note that several of the directorie names can be changed through the config file settings. This includes f.i. the log and script directories.

Templates

The template directory contains HTML template files, which will be read in and filled with information for each request.

See also styles.

Styles

Under tpl/styles are the various GUI styles that can be selected to change to look of the web interface. Files inside these directories override the files in tpl/, e.g. they will be prefered over the normal version in tpl/ if present in the current style directory.

Help

The HTML versions of the .pod files were created at build-time and are located under tpl/help/.

To re-generate them, you can use the scripts provided in the build/ directory.

Worker

The default directory for the worker files is worker. This can be changed in the configuration file server.cfg, although a differently named directory doe currently not work properly - it must start with worker/!

For each platform/architecture exists one directory in the worker directory:

        worker/linux/
        worker/mswin32/
        etc

The worker files are then located in these directories.

Other directories under each architecture directory can contain files for sub-architectures. For instance:

        worker/linux/i386/

Could contain files that should be server to clients reporting in as linux-i386. These override the normal files, so if a file does not exist in worker/architecture/sub-arch/ then it will be served from worker/architecture as a fallback.

Dictionaries

Each dictionary charset is tied to a dictionary file. These dictionary files are located in target/dictionaries/.

Data files

The default directory for the server main data files is data. This is the offline storage of the server's memory - e.g. the current state of anything.

This can be changed in the configuration file server.cfg.

The following file names are used per default. This can be overwritten in the server.cfg file as well:

        cases.lst
        charsets.lst
        clients.lst
        groups.lst
        jobs.lst
        jobtypes.lst
        proxies.lst
        results.lst
        testcases.lst
        users.lst               List of user accounts (for administation)

CLIENT

The typical client setup looks like this:

        client                  The client in itself
        lib/                    The libraries the client uses
        msg/                    The messages the client outputs in different
                                languages
        def/                    Definition files used by the client
        config/client.cfg       Client config file

In addition, the following directories must exist with write permission for the user and group the client is running under, because the client will be storing some things in them.

        worker/                 Worker files
        target/                 Target files are stored here
        cache/                  Certain files are cached here (f.i. by wget)
        log/                    The log files in case of errors.

It is safe to delete anything when the client is not running in these directories (you might want to keep the logfiles, though), because everything that is missing will be downloaded by the client automatically.

Worker files

Just as with the server, the workers are stored inside the worker/ directory. Each architecture get's its own subdirectory, so your client will typically store the workers inside of only one subdirectory. Some of the known archictures are:

        linux
        mswin32
        os2
        armv4l
        darwin
        solaris

If a directory for the current archictecture the client is running on does not exist, it will be created.

Sub-architecture directories will not be used by the client, the client will store files from them in the architecture directory directly as to override the files there.

Charset definitions

Charset definitions are usually stored in a file called worker/charsets.def.

Dictionaries

Each dictionary charset is tied to a dictionary file. These dictionary files are downloaded and stored by the client in target/dictionaries/.

Log files

The client creates a logfile named client_ID.log, where ID is replaced with the ID the client is currently running under (see commandline option --id in CLient.pod). When the initialization of the client failes, especially when it got no ID, then it will try to write an error log to the file client.log.

Target files files

Each job might have zero or more target files. These are files that contain additional info about that particular job. They are typical stored in the target/ directory and are named like:

        job_123.tgt

Where 123 is the ID of the job.

Job description files

Additional data about a job (like the prefix and dictionary to use etc) were stored in a file named like:

        target/123.set

where 123 is the ID of the job. These files were automatically creatred by the server and downloaded also automatically by the client.

Chunk/Job Description Files (CDF or JDF)

Additional data about a particular chunk (like the prefix for each password, a dictionary to use, or some extra data etc) are stored in a file named like:

Chunk description file:

        target/data/2/2-2.txt

Job description file:

        target/data/2/2.set

These files are created by the server, automatically downloaded by the client and, in case of a CDF, are deleted after the chunk has been processed.

Here is an example file:

        ## This file was automatically generated. Do not edit.
        ## Chunk description file for job 3, chunk 2.
        charset_id=222
        image_file="target/images/image_3_2.img"
        image_type=0
        extract_set_id=2
        start=3
        end=11
        password_prefix=666f6f626172
        target=4142434445

For a full specification of the contents of these files, see doc/Config.pod in the Dicop::Workeframe package which you can find at our web site.

AUTHOR

(c) Bundesamt fuer Sicherheit in der Informationstechnik 1998-2004

DiCoP is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation.

See the file LICENSE or http://www.bsi.bund.de/ for more information.