diff --git a/data/simpledb/blockchain.txt b/data/simpledb/blockchain.txt new file mode 100644 index 0000000..769a4cb --- /dev/null +++ b/data/simpledb/blockchain.txt @@ -0,0 +1 @@ +000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f 0 diff --git a/data/simpledb/blocks/639340_00000000000000000009e3d7be64b2b867231436a3e689a0a4fabdff77398960 b/data/simpledb/blocks/639340_00000000000000000009e3d7be64b2b867231436a3e689a0a4fabdff77398960 new file mode 100644 index 0000000..2c5d1e0 Binary files /dev/null and b/data/simpledb/blocks/639340_00000000000000000009e3d7be64b2b867231436a3e689a0a4fabdff77398960 differ diff --git a/data/simpledb/blocks/639341_00000000000000000009f0147b38b7a37c5a8947fb18486e651274a97e4fe3d0 b/data/simpledb/blocks/639341_00000000000000000009f0147b38b7a37c5a8947fb18486e651274a97e4fe3d0 new file mode 100644 index 0000000..d71ddd0 Binary files /dev/null and b/data/simpledb/blocks/639341_00000000000000000009f0147b38b7a37c5a8947fb18486e651274a97e4fe3d0 differ diff --git a/data/simpledb/blocks/639342_0000000000000000000f953352fedd34f666244750ea7e59c5fc35dd1b4c4ada b/data/simpledb/blocks/639342_0000000000000000000f953352fedd34f666244750ea7e59c5fc35dd1b4c4ada new file mode 100644 index 0000000..a571cd6 Binary files /dev/null and b/data/simpledb/blocks/639342_0000000000000000000f953352fedd34f666244750ea7e59c5fc35dd1b4c4ada differ diff --git a/data/simpledb/blocks/639343_0000000000000000000f3346aa83aea5d35498357be2728f86090729e4a526a4 b/data/simpledb/blocks/639343_0000000000000000000f3346aa83aea5d35498357be2728f86090729e4a526a4 new file mode 100644 index 0000000..3e587a5 Binary files /dev/null and b/data/simpledb/blocks/639343_0000000000000000000f3346aa83aea5d35498357be2728f86090729e4a526a4 differ diff --git a/include/daemonize.h b/include/daemonize.h index 62adbbd..b229bce 100644 --- a/include/daemonize.h +++ b/include/daemonize.h @@ -2,5 +2,6 @@ #define __MY_DAEMONIZE_H__ void daemonize(); +void log_signal_message(char*, char*); #endif diff --git a/src/daemonize.c b/src/daemonize.c index 73e717a..8c9e03f 100644 --- a/src/daemonize.c +++ b/src/daemonize.c @@ -10,7 +10,7 @@ #define RUNNING_DIR "/tmp" #define LOCK_FILE "/tmp/daemond.lock" -#define LOG_FILE "daemond.log" +#define LOG_FILE "/tmp/daemond.log" /* * daemon.c @@ -33,35 +33,48 @@ * MA 02110-1301, USA. */ +void log_signal_message(char *filename,char *message){ + FILE *logfile; + logfile = fopen(filename,"a"); + if(!logfile) return; + fprintf(logfile,"%s",message); + fclose(logfile); +} + +int lfp; +void close_lock_file() +{ + close(lfp); + remove(LOCK_FILE); +} + void daemonize(){ - int i,lfp; + int pid; + int i; char str[10]; - if(getppid() == 1) - return; + pid = getppid(); + if(pid == 1) return; - i = fork(); + pid = fork(); + if(pid < 0) exit(1); + if(pid > 0) exit(0); - if(i < 0) - exit(1); - if(i > 0) - exit(0); setsid(); - for(i = getdtablesize(); i >= 0; --i) - close(i); + for(i = getdtablesize(); i >= 0; --i) close(i); - i = open("/dev/null",O_RDWR); - dup(i); - dup(i); + lfp = open("/dev/null",O_RDWR); + dup(lfp); + dup(lfp); umask(022); lfp = open(LOCK_FILE,O_RDWR|O_CREAT,0640); - if(lfp < 0) - exit(1); - if(lockf(lfp,F_TLOCK,0) < 0) - exit(1); + if(lfp < 0) exit(1); + if(lockf(lfp,F_TLOCK,0) < 0) exit(1); sprintf(str,"%d\n",getpid()); write(lfp,str,strlen(str)); -} \ No newline at end of file + + atexit(close_lock_file); +} diff --git a/src/spy.c b/src/spy.c index b8d3791..4c646ba 100644 --- a/src/spy.c +++ b/src/spy.c @@ -692,9 +692,6 @@ int init_blockchain_file() request_headers_or_blocks_hash_init = true; cb_handshake_done_bestknownheight = block_height; - - fclose(blockchain_fd); - blockchain_fd = NULL; } } diff --git a/src/test_daemonize.c b/src/test_daemonize.c index 843b33e..8c72aa2 100644 --- a/src/test_daemonize.c +++ b/src/test_daemonize.c @@ -14,6 +14,10 @@ * Les outils */ static void signal_handler(int sig){ + char msg[200]; + sprintf(msg,"process %d signal %d trapped\n", getpid(), sig); + log_signal_message("/tmp/daemonize.log", msg); + switch(sig){ case SIGUSR1: // signal USR1