mirror of
https://github.com/apache/httpd.git
synced 2025-08-03 16:33:59 +00:00
Reduce the time window where duplicates may be generated by mod_uniqueid
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1892915 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
@ -0,0 +1,3 @@
|
||||
*) mod_unique_id: Reduce the time window where duplicates may be generated
|
||||
PR 65159
|
||||
[Christophe Jaillet]
|
@ -186,7 +186,7 @@ static const char *gen_unique_id(const request_rec *r)
|
||||
{
|
||||
char *str;
|
||||
/*
|
||||
* Buffer padded with two final bytes, used to copy the unique_id_red
|
||||
* Buffer padded with two final bytes, used to copy the unique_id_rec
|
||||
* structure without the internal paddings that it could have.
|
||||
*/
|
||||
unique_id_rec new_unique_id;
|
||||
@ -199,9 +199,13 @@ static const char *gen_unique_id(const request_rec *r)
|
||||
int i,j,k;
|
||||
|
||||
memcpy(&new_unique_id.root, &cur_unique_id.root, ROOT_SIZE);
|
||||
new_unique_id.counter = cur_unique_id.counter;
|
||||
new_unique_id.stamp = htonl((unsigned int)apr_time_sec(r->request_time));
|
||||
new_unique_id.thread_index = htonl((unsigned int)r->connection->id);
|
||||
new_unique_id.counter = cur_unique_id.counter;
|
||||
|
||||
/* Increment the identifier for the next call */
|
||||
counter = ntohs(new_unique_id.counter) + 1;
|
||||
cur_unique_id.counter = htons(counter);
|
||||
|
||||
/* we'll use a temporal buffer to avoid uuencoding the possible internal
|
||||
* paddings of the original structure */
|
||||
@ -233,11 +237,6 @@ static const char *gen_unique_id(const request_rec *r)
|
||||
}
|
||||
str[k++] = '\0';
|
||||
|
||||
/* and increment the identifier for the next call */
|
||||
|
||||
counter = ntohs(new_unique_id.counter) + 1;
|
||||
cur_unique_id.counter = htons(counter);
|
||||
|
||||
return str;
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user