0ef4ef2f84
A session is started when HttpRequest.getSession() is called. The session will then be added to the session manager. The session manager then controls timeouts. The session id is create by using the a crypto-random sequence of 16 bytes. These are extracted by using /dev/urandom on posix and CryptGenRandom on windows. BUG= Review URL: https://codereview.chromium.org//11175030 git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@13870 260f80e4-7a28-3924-810f-c04153c831b5
19 lines
560 B
C++
19 lines
560 B
C++
// Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
|
|
// for details. All rights reserved. Use of this source code is governed by a
|
|
// BSD-style license that can be found in the LICENSE file.
|
|
|
|
#include <errno.h>
|
|
#include <fcntl.h>
|
|
|
|
#include "bin/fdutils.h"
|
|
#include "bin/crypto.h"
|
|
|
|
|
|
bool Crypto::GetRandomBytes(intptr_t count, uint8_t* buffer) {
|
|
intptr_t fd = TEMP_FAILURE_RETRY(open("/dev/urandom", O_RDONLY));
|
|
if (fd < 0) return false;
|
|
intptr_t bytes_read = read(fd, buffer, count);
|
|
close(fd);
|
|
return bytes_read == count;
|
|
}
|