summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDavid Sommerseth <dazo@users.sourceforge.net>2008-08-21 19:36:47 +0200
committerDavid Sommerseth <dazo@users.sourceforge.net>2008-08-21 19:36:47 +0200
commitbd8e1ed013af8abf77c2cf75dcb2d017eec784db (patch)
tree6ffd761285514d1d9caf34ec238712a44a092a87
parent94c76823e975279e4477891f0516681296590fbd (diff)
downloadeurephia-bd8e1ed013af8abf77c2cf75dcb2d017eec784db.tar.gz
eurephia-bd8e1ed013af8abf77c2cf75dcb2d017eec784db.tar.xz
eurephia-bd8e1ed013af8abf77c2cf75dcb2d017eec784db.zip
Added process pid as key to the session seed, to avoid reopening of open sessions if openvpn stops unexpectedly.
-rw-r--r--eurephiadb_session.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/eurephiadb_session.c b/eurephiadb_session.c
index 0e82e48..980c968 100644
--- a/eurephiadb_session.c
+++ b/eurephiadb_session.c
@@ -21,6 +21,8 @@
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
+#include <unistd.h>
+#include <sys/types.h>
#include <sys/time.h>
#include <time.h>
@@ -149,11 +151,11 @@ eurephiaSESSION *eDBopen_session(eurephiaCTX *ctx, const char *digest,
// Build up a string containing all elements for the session seed
totlen = strlen_nullsafe(digest) + strlen_nullsafe(cname) + strlen_nullsafe(username)
+ strlen_nullsafe(vpnipaddr) + strlen_nullsafe(vpnipmask) + strlen_nullsafe(remipaddr)
- + strlen_nullsafe(remport);
+ + strlen_nullsafe(remport) + 5; // +5 == len(pid)
seeddata = (unsigned char *) malloc((totlen * 2) + 4);
memset(seeddata, 0, (totlen * 2) + 4);
snprintf((char *)seeddata, totlen,
- "%s%s%s%s%s%s%s", digest, cname, username, vpnipaddr, vpnipmask, remipaddr, remport);
+ "%s%s%s%s%s%s%s%i", digest, cname, username, vpnipaddr, vpnipmask, remipaddr, remport,getpid());
// Generate a SHA1 version of session seed