On this page:

http://httpd.apache.org/docs/2.2/mod/mod_unique_id.html

it says, "The UNIQUE_ID environment variable is constructed by encoding the 112-bit (32-bit IP address, 32 bit pid, 32 bit time stamp, 16 bit counter) quadruple using the alphabet [EMAIL PROTECTED] in a manner similar to MIME base64 encoding, producing 19 characters."

However, in the log files of my new server, the Unique ID is always 24 characters. Am I missing something?

I enabled mod_unique_id and put it in my LogFormat like this "%{UNIQUE_ID}e". I have Apache 2.2.3 on FreeBSD 6.0. The length is not causing me any problems, I just want to know if something was changed.


I think I figured it out.

In 2.2.3 mod_unique_id.c, the unique_id structure is defined as:

typedef struct {
    unsigned int stamp;
    unsigned int in_addr;
    unsigned int pid;
    unsigned short counter;
    unsigned int thread_index;
} unique_id_rec;

In 1.3.36 mod_unique_id.c, the unique_id structure is defined as:

typedef struct {
    unsigned int stamp;
    unsigned int in_addr;
    unsigned int pid;
#ifdef MULTITHREAD
    unsigned int tid;
#endif
    unsigned short counter;
} unique_id_rec;

My old Apache version did not have MULTITHREAD defined in the build options (found by running httpd -V). In Apache 2.0+, multi-threading is enabled by default. Thus, the old structure is 112 bits (divide by 6 to get psuedo-UUencoded base64 value), or 19 characters. The new structure (or the old one with multi-threading) is 144 bits, which translates to 24 characters. Therefore, in all 2.0+ versions of Apache on typical 32-bit systems, the UniqueID will be 24 characters. However, it will still vary based on the size of integral types on the host system.

I want to eventually store the UniqueID in a MySQL Archive table. It helps to know the fixed size for the the field in the table.

Maybe this can be made more clear in the documentation?

Sincerely,
Shailesh







---------------------------------------------------------------------
The official User-To-User support forum of the Apache HTTP Server Project.
See <URL:http://httpd.apache.org/userslist.html> for more info.
To unsubscribe, e-mail: [EMAIL PROTECTED]
  "   from the digest: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to