summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorme_desk <me_desk@fb96df88-216d-11de-830c-f3023f12d8ac>2012-07-28 11:40:54 +0000
committerme_desk <me_desk@fb96df88-216d-11de-830c-f3023f12d8ac>2012-07-28 11:40:54 +0000
commit1884db4297278d86fd6d0aeb34e1784a542556f1 (patch)
treefe99b9dc67dfd67af14b827805dc5d137ff32c84
parent6f28d7631eb9be214934e38190452953df24235d (diff)
downloadpica-pica-1884db4297278d86fd6d0aeb34e1784a542556f1.tar.gz
pica-pica-1884db4297278d86fd6d0aeb34e1784a542556f1.zip
registrar: disconnect on timeout; clear ca_dir.pid in /tmp
git-svn-id: svn://localhost/project_picapica/trunk@154 fb96df88-216d-11de-830c-f3023f12d8ac
-rw-r--r--pica-registrar/PICA_registrar.cpp8
1 files changed, 7 insertions, 1 deletions
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: