diff options
| author | David Sommerseth <dazo@users.sourceforge.net> | 2008-08-21 19:36:47 +0200 |
|---|---|---|
| committer | David Sommerseth <dazo@users.sourceforge.net> | 2008-08-21 19:36:47 +0200 |
| commit | bd8e1ed013af8abf77c2cf75dcb2d017eec784db (patch) | |
| tree | 6ffd761285514d1d9caf34ec238712a44a092a87 | |
| parent | 94c76823e975279e4477891f0516681296590fbd (diff) | |
| download | eurephia-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.c | 6 |
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 |
