From 1884db4297278d86fd6d0aeb34e1784a542556f1 Mon Sep 17 00:00:00 2001 From: me_desk Date: Sat, 28 Jul 2012 11:40:54 +0000 Subject: registrar: disconnect on timeout; clear ca_dir.pid in /tmp git-svn-id: svn://localhost/project_picapica/trunk@154 fb96df88-216d-11de-830c-f3023f12d8ac --- pica-registrar/PICA_registrar.cpp | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'pica-registrar/PICA_registrar.cpp') diff --git a/pica-registrar/PICA_registrar.cpp b/pica-registrar/PICA_registrar.cpp index 4da4673..f39480d 100644 --- a/pica-registrar/PICA_registrar.cpp +++ b/pica-registrar/PICA_registrar.cpp @@ -27,6 +27,8 @@ using namespace std; #define BAN_THRESHOLD_SECS 60 +#define CHILD_TIMEOUT 10 + char read_buf[READ_BUF_SIZE]; char write_buf[WRITE_BUF_SIZE]; @@ -175,6 +177,7 @@ void baninfo_update(struct sockaddr_in *a) banmap[a->sin_addr.s_addr].last_reg = time_now; } + int main(int argc, char *argv[]) { int s, client_socket, ret, pos, disconnect_flag, bytes_read, cert_size; @@ -220,6 +223,7 @@ while (1) { current_id++; baninfo_update(&sc); + close(client_socket); continue; } @@ -229,7 +233,7 @@ while (1) continue; } //now we are in the child process - + alarm(CHILD_TIMEOUT); disconnect_flag = read_CSR(client_socket, &bytes_read); @@ -320,6 +324,8 @@ while (1) freeres_1: + chdir("/"); + system(((string)"rm -rf " + ca_dir).c_str()); remove(cert_filename.c_str()); freeres_2: -- cgit v1.2.1