diff options
| author | David Sommerseth <dazo@users.sourceforge.net> | 2008-08-24 20:02:27 +0200 |
|---|---|---|
| committer | David Sommerseth <dazo@users.sourceforge.net> | 2008-08-24 20:02:27 +0200 |
| commit | 038dfc636d7b22f4e262ccf58bf792a48655b0bb (patch) | |
| tree | 7cf7ce12f63af1804a19d56ed7ce895a8d4bdca2 | |
| parent | f2c6c653acf2440deef72bc848f7e22b248af11f (diff) | |
| parent | 5cefddbd902ff73787dd6cff2beb13d32369978e (diff) | |
| download | eurephia-038dfc636d7b22f4e262ccf58bf792a48655b0bb.tar.gz eurephia-038dfc636d7b22f4e262ccf58bf792a48655b0bb.tar.xz eurephia-038dfc636d7b22f4e262ccf58bf792a48655b0bb.zip | |
Merge branch 'alpha'
| -rw-r--r-- | eurephia.c | 27 | ||||
| -rw-r--r-- | eurephia_values.c | 22 | ||||
| -rw-r--r-- | eurephiadb_session.c | 12 | ||||
| -rw-r--r-- | eurephiadb_session.h | 4 |
4 files changed, 31 insertions, 34 deletions
@@ -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_ */ |
