Selaa lähdekoodia

suppression double close dans init_blockchain

master
MEUNIER Thibaud 5 vuotta sitten
vanhempi
commit
bc3b05e92b
9 muutettua tiedostoa jossa 38 lisäystä ja 22 poistoa
  1. +1
    -0
      data/simpledb/blockchain.txt
  2. BIN
      data/simpledb/blocks/639340_00000000000000000009e3d7be64b2b867231436a3e689a0a4fabdff77398960
  3. BIN
      data/simpledb/blocks/639341_00000000000000000009f0147b38b7a37c5a8947fb18486e651274a97e4fe3d0
  4. BIN
      data/simpledb/blocks/639342_0000000000000000000f953352fedd34f666244750ea7e59c5fc35dd1b4c4ada
  5. BIN
      data/simpledb/blocks/639343_0000000000000000000f3346aa83aea5d35498357be2728f86090729e4a526a4
  6. +1
    -0
      include/daemonize.h
  7. +32
    -19
      src/daemonize.c
  8. +0
    -3
      src/spy.c
  9. +4
    -0
      src/test_daemonize.c

+ 1
- 0
data/simpledb/blockchain.txt Näytä tiedosto

@ -0,0 +1 @@
000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f 0

BIN
data/simpledb/blocks/639340_00000000000000000009e3d7be64b2b867231436a3e689a0a4fabdff77398960 Näytä tiedosto


BIN
data/simpledb/blocks/639341_00000000000000000009f0147b38b7a37c5a8947fb18486e651274a97e4fe3d0 Näytä tiedosto


BIN
data/simpledb/blocks/639342_0000000000000000000f953352fedd34f666244750ea7e59c5fc35dd1b4c4ada Näytä tiedosto


BIN
data/simpledb/blocks/639343_0000000000000000000f3346aa83aea5d35498357be2728f86090729e4a526a4 Näytä tiedosto


+ 1
- 0
include/daemonize.h Näytä tiedosto

@ -2,5 +2,6 @@
#define __MY_DAEMONIZE_H__
void daemonize();
void log_signal_message(char*, char*);
#endif

+ 32
- 19
src/daemonize.c Näytä tiedosto

@ -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));
}
atexit(close_lock_file);
}

+ 0
- 3
src/spy.c Näytä tiedosto

@ -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;
}
}

+ 4
- 0
src/test_daemonize.c Näytä tiedosto

@ -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

Ladataan…
Peruuta
Tallenna