summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDavid Sommerseth <dazo@users.sourceforge.net>2008-08-24 20:02:27 +0200
committerDavid Sommerseth <dazo@users.sourceforge.net>2008-08-24 20:02:27 +0200
commit038dfc636d7b22f4e262ccf58bf792a48655b0bb (patch)
tree7cf7ce12f63af1804a19d56ed7ce895a8d4bdca2
parentf2c6c653acf2440deef72bc848f7e22b248af11f (diff)
parent5cefddbd902ff73787dd6cff2beb13d32369978e (diff)
downloadeurephia-038dfc636d7b22f4e262ccf58bf792a48655b0bb.tar.gz
eurephia-038dfc636d7b22f4e262ccf58bf792a48655b0bb.tar.xz
eurephia-038dfc636d7b22f4e262ccf58bf792a48655b0bb.zip
Merge branch 'alpha'
-rw-r--r--eurephia.c27
-rw-r--r--eurephia_values.c22
-rw-r--r--eurephiadb_session.c12
-rw-r--r--eurephiadb_session.h4
4 files changed, 31 insertions, 34 deletions
diff --git a/eurephia.c b/eurephia.c
index 0102465..97d2e6b 100644
--- a/eurephia.c
+++ b/eurephia.c
@@ -203,7 +203,7 @@ int eurephia_tlsverify(eurephiaCTX *ctx, const char **env, const char *depth)
char *tls_digest, *tls_id;
certinfo *ci = NULL;
- eurephia_log(ctx, LOG_DEBUG, 21, "Function call: eurephia_tlsverify(...)");
+ eurephia_log(ctx, LOG_DEBUG, 21, "** Function call: eurephia_tlsverify(...)");
// Check if IP address is blacklisted
ipaddr = (char *) get_env(ctx, env, "untrusted_ip");
@@ -234,7 +234,7 @@ int eurephia_tlsverify(eurephiaCTX *ctx, const char **env, const char *depth)
// Reset attempt counter for certificate if it is okey
eDBregister_attempt(ctx, attempt_CERTIFICATE, ATTEMPT_RESET, tls_digest);
}
- eurephia_log(ctx, LOG_DEBUG, 21, "Function result: eurephia_tlsverify(...) == %i", result > 0);
+ eurephia_log(ctx, LOG_DEBUG, 21, "** Function result: eurephia_tlsverify(...) == %i", result > 0);
return (result > 0);
}
@@ -247,7 +247,7 @@ int eurephia_userauth(eurephiaCTX *ctx, const char **env)
char *tls_digest, *tls_id, *username, *passwd;
certinfo *ci = NULL;
- eurephia_log(ctx, LOG_DEBUG, 21, "Function call: eurephia_userauth(...)");
+ eurephia_log(ctx, LOG_DEBUG, 21, "** Function call: eurephia_userauth(...)");
// Check if IP address is blacklisted
@@ -303,7 +303,7 @@ int eurephia_userauth(eurephiaCTX *ctx, const char **env)
eDBregister_attempt(ctx, attempt_CERTIFICATE, ATTEMPT_RESET, tls_digest);
eDBregister_attempt(ctx, attempt_USERNAME, ATTEMPT_RESET, username);
}
-
+ eurephia_log(ctx, LOG_DEBUG, 21, "** Function result: eurephia_userauth(...) = %i", (result>0));
return (result > 0);
}
@@ -314,7 +314,7 @@ int eurephia_connect(eurephiaCTX *ctx, const char **env) {
int certid = 0, uid = 0, ret = 0;
certinfo *ci = NULL;
- eurephia_log(ctx, LOG_DEBUG, 21, "Function call: eurephia_connect(...)");
+ eurephia_log(ctx, LOG_DEBUG, 21, "** Function call: eurephia_connect(...)");
// Fetch needed info
digest = get_env(ctx, env, "tls_digest_0");
@@ -337,7 +337,7 @@ int eurephia_connect(eurephiaCTX *ctx, const char **env) {
ci = parse_tlsid(tlsid);
if( ci == NULL ) {
eurephia_log(ctx, LOG_FATAL, 1, "Could not parse the TLS ID string");
- eDBfree_session(session);
+ eDBfree_session(ctx, session);
return 0;
}
certid = eDBauth_TLS(ctx, ci->org, ci->common_name, ci->email, digest, "0");
@@ -346,8 +346,9 @@ int eurephia_connect(eurephiaCTX *ctx, const char **env) {
// Register the session login
ret = eDBregister_login(ctx, session, certid, uid, proto, remipaddr, remport, vpnipaddr, vpnipmask);
- eDBfree_session(session);
+ eDBfree_session(ctx, session);
+ eurephia_log(ctx, LOG_DEBUG, 21, "** Function result: eurephia_connect(...) = %i", ret);
return ret;
}
@@ -358,7 +359,7 @@ int eurephia_disconnect(eurephiaCTX *ctx, const char **env) {
const char *bytes_sent, *bytes_rec;
int ret = 0;
- eurephia_log(ctx, LOG_DEBUG, 21, "Function call: eurephia_disconnect(...)");
+ eurephia_log(ctx, LOG_DEBUG, 21, "** Function call: eurephia_disconnect(...)");
// Fetch needed info
digest = get_env(ctx, env, "tls_digest_0");
@@ -379,8 +380,9 @@ int eurephia_disconnect(eurephiaCTX *ctx, const char **env) {
// 2. eDBregister_logout(ctx, session, env[bytes_sent], env[bytes_received])
ret = eDBregister_logout(ctx, session, bytes_sent, bytes_rec);
- eDBfree_session(session);
+ eDBfree_session(ctx, session);
+ eurephia_log(ctx, LOG_DEBUG, 21, "** Function result: eurephia_disconnect(...) = %i", ret);
return ret;
}
@@ -390,7 +392,7 @@ int eurephia_learn_address(eurephiaCTX *ctx, const char *mode, const char *macad
const char *digest, *cname, *uname, *vpnipaddr, *vpnipmask, *remipaddr, *remport;
int ret = 0, fw_enabled = 0;
- eurephia_log(ctx, LOG_DEBUG, 21, "Function call: eurephia_learn_address(ctx, '%s', '%s', ...)",
+ eurephia_log(ctx, LOG_DEBUG, 21, "** Function call: eurephia_learn_address(ctx, '%s', '%s', ...)",
mode, macaddr);
fw_enabled = (atoi_nullsafe(eGet_value(ctx->dbc->config, "firewall_enabled")) == 1);
@@ -420,7 +422,7 @@ int eurephia_learn_address(eurephiaCTX *ctx, const char *mode, const char *macad
// 2. Update firewall with eurephia_firewall(ctx, FWRULE_ADD, profileid)
}
- eDBfree_session(session);
+ eDBfree_session(ctx, session);
} else if( strncmp(mode, "delete", 6) == 0 ) {
// FIXME: FIREWALL UPDATE - remove rule for the current MAC address
@@ -432,6 +434,9 @@ int eurephia_learn_address(eurephiaCTX *ctx, const char *mode, const char *macad
ret = eDBdestroy_session(ctx, macaddr);
}
+ eurephia_log(ctx, LOG_DEBUG, 21, "** Function result: eurephia_learn_address(ctx, '%s', '%s', ...) = %i",
+ mode, macaddr, ret);
+
return ret;
}
diff --git a/eurephia_values.c b/eurephia_values.c
index e41f9a2..95bf7d4 100644
--- a/eurephia_values.c
+++ b/eurephia_values.c
@@ -99,23 +99,21 @@ void eAdd_value(eurephiaCTX *ctx, eurephiaVALUES *vls, const char *key, const ch
}
-void eFree_values_func(eurephiaCTX *ctx, eurephiaVALUES *vls) {
- eurephiaVALUES *ptr = NULL, *tmp = NULL;
+void do_free_vals(eurephiaVALUES *vls) {
+ if( vls->next != NULL ) {
+ do_free_vals(vls->next);
+ }
+ free_nullsafe(vls->key);
+ free_nullsafe(vls->val);
+ free_nullsafe(vls);
+}
+void eFree_values_func(eurephiaCTX *ctx, eurephiaVALUES *vls) {
eurephia_log(ctx, LOG_DEBUG, 12, "Function call: eFree_values(ctx, vls(%i))",
(vls != NULL ? vls->evid : -1));
if( (vls == NULL) ) {
return;
}
-
- ptr = vls;
- while( ptr != NULL ) {
- free_nullsafe(ptr->key);
- free_nullsafe(ptr->val);
- tmp = ptr->next;
- free_nullsafe(ptr);
- ptr = tmp;
- }
+ do_free_vals(vls);
}
-
diff --git a/eurephiadb_session.c b/eurephiadb_session.c
index 42c2cba..72fccdb 100644
--- a/eurephiadb_session.c
+++ b/eurephiadb_session.c
@@ -249,21 +249,15 @@ eurephiaSESSION *eDBopen_session(eurephiaCTX *ctx, const char *digest,
}
// Free up the memory used by a session structure
-void eDBfree_session_func(eurephiaSESSION *session) {
+void eDBfree_session_func(eurephiaCTX *ctx, eurephiaSESSION *session) {
eurephiaVALUES *svptr, *tmp;
if( session == NULL ) {
return;
}
+ eurephia_log(ctx, LOG_DEBUG, 20, "Function call: eDBfree_session(ctx, '%s')", session->sessionkey);
+ eFree_values(ctx, session->sessvals);
free_nullsafe(session->sessionkey);
- svptr = session->sessvals;
- while( svptr != NULL ) {
- free_nullsafe(svptr->key);
- free_nullsafe(svptr->val);
- tmp = svptr->next;
- free_nullsafe(svptr);
- svptr = tmp;
- }
free_nullsafe(session);
}
diff --git a/eurephiadb_session.h b/eurephiadb_session.h
index 6ae32ab..292741d 100644
--- a/eurephiadb_session.h
+++ b/eurephiadb_session.h
@@ -36,7 +36,7 @@ eurephiaSESSION *eDBopen_session(eurephiaCTX *ctx, const char *digest,
const char *vpnipaddr, const char *vpnipmask,
const char *remipaddr, const char *remport);
-#define eDBfree_session(s) { eDBfree_session_func(s); s = NULL;}
-void eDBfree_session_func(eurephiaSESSION *sk);
+#define eDBfree_session(c, s) { eDBfree_session_func(c, s); s = NULL;}
+void eDBfree_session_func(eurephiaCTX *ctx, eurephiaSESSION *sk);
#endif /* !EUREPHIADB_SESSION_H_ */