mirror of
https://github.com/samba-team/samba.git
synced 2025-10-17 15:33:16 +03:00
Add userdata argument to reseed callback function.
This commit is contained in:
@@ -37,15 +37,17 @@ static unsigned int bytes_since_reseed = 0;
|
||||
|
||||
static int urand_fd = -1;
|
||||
|
||||
static void (*reseed_callback)(int *newseed);
|
||||
static void (*reseed_callback)(void *userdata, int *newseed);
|
||||
static void *reseed_callback_userdata = NULL;
|
||||
|
||||
/**
|
||||
Copy any user given reseed data.
|
||||
**/
|
||||
|
||||
_PUBLIC_ void set_rand_reseed_callback(void (*fn)(int *))
|
||||
_PUBLIC_ void set_rand_reseed_callback(void (*fn)(void *, int *), void *userdata)
|
||||
{
|
||||
reseed_callback = fn;
|
||||
reseed_callback_userdata = userdata;
|
||||
set_need_random_reseed();
|
||||
}
|
||||
|
||||
@@ -61,7 +63,7 @@ _PUBLIC_ void set_need_random_reseed(void)
|
||||
static void get_rand_reseed_data(int *reseed_data)
|
||||
{
|
||||
if (reseed_callback) {
|
||||
reseed_callback(reseed_data);
|
||||
reseed_callback(reseed_callback_userdata, reseed_data);
|
||||
} else {
|
||||
*reseed_data = 0;
|
||||
}
|
||||
|
@@ -22,14 +22,14 @@
|
||||
#include "includes.h"
|
||||
#include "torture/torture.h"
|
||||
|
||||
static void dummy_reseed(int *d)
|
||||
static void dummy_reseed(void *userdata, int *d)
|
||||
{
|
||||
*d = 42;
|
||||
}
|
||||
|
||||
static bool test_reseed_callback(struct torture_context *tctx)
|
||||
{
|
||||
set_rand_reseed_callback(dummy_reseed);
|
||||
set_rand_reseed_callback(dummy_reseed, NULL);
|
||||
return true;
|
||||
}
|
||||
|
||||
|
@@ -218,7 +218,7 @@ _PUBLIC_ struct in_addr sys_inet_makeaddr(int net, int host);
|
||||
/**
|
||||
Copy any user given reseed data.
|
||||
**/
|
||||
_PUBLIC_ void set_rand_reseed_callback(void (*fn)(int *));
|
||||
_PUBLIC_ void set_rand_reseed_callback(void (*fn)(void *, int *), void *);
|
||||
|
||||
/**
|
||||
* Tell the random number generator it needs to reseed.
|
||||
|
Reference in New Issue
Block a user