clean up the remap_file_pages sanitize routine
[trinity.git] / regenerate.c
blob10dfa1702564bae492a5ac31ae704539139db21b
1 #include <unistd.h>
2 #include "files.h"
3 #include "log.h"
4 #include "maps.h"
5 #include "net.h"
6 #include "params.h"
7 #include "random.h"
8 #include "shm.h"
9 #include "trinity.h"
11 static void do_sso_sockets(void)
13 struct sockopt so = { 0, 0, 0, 0 };
14 unsigned int i;
15 int fd;
17 for (i = 0; i < nr_sockets; i++) {
18 fd = shm->sockets[i].fd;
19 sso_socket(&shm->sockets[i].triplet, &so, fd);
23 void regenerate(void)
25 if (no_files == TRUE) /* We don't regenerate sockets */
26 return;
28 /* we're about to exit. */
29 if (shm->spawn_no_more)
30 return;
32 shm->regenerating = TRUE;
34 sleep(1); /* give children time to finish with fds. */
36 shm->regenerate = 0;
38 output(0, "Regenerating random pages, fd's etc.\n");
40 regenerate_fds();
42 /* Do random setsockopts on all network sockets. */
43 do_sso_sockets();
45 destroy_global_mappings();
46 setup_global_mappings();
48 generate_random_page(page_rand);
50 shm->regenerating = FALSE;