You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@trafficserver.apache.org by zw...@apache.org on 2015/01/23 20:12:27 UTC
[3/6] trafficserver git commit: TS-3318 Remove
mgmt/Web2/WebHttpSession.{cc, h}
TS-3318 Remove mgmt/Web2/WebHttpSession.{cc,h}
This also helps fixing Coverity CID #1261573
Project: http://git-wip-us.apache.org/repos/asf/trafficserver/repo
Commit: http://git-wip-us.apache.org/repos/asf/trafficserver/commit/cb7fc8f9
Tree: http://git-wip-us.apache.org/repos/asf/trafficserver/tree/cb7fc8f9
Diff: http://git-wip-us.apache.org/repos/asf/trafficserver/diff/cb7fc8f9
Branch: refs/heads/master
Commit: cb7fc8f9efd67c7286616bcc94bf607035e28693
Parents: f7f3055
Author: Leif Hedstrom <zw...@apache.org>
Authored: Fri Jan 23 11:41:44 2015 -0700
Committer: Leif Hedstrom <zw...@apache.org>
Committed: Fri Jan 23 12:05:43 2015 -0700
----------------------------------------------------------------------
mgmt/web2/Makefile.am | 2 -
mgmt/web2/WebHttpSession.cc | 218 ---------------------------------------
mgmt/web2/WebHttpSession.h | 46 ---------
3 files changed, 266 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/trafficserver/blob/cb7fc8f9/mgmt/web2/Makefile.am
----------------------------------------------------------------------
diff --git a/mgmt/web2/Makefile.am b/mgmt/web2/Makefile.am
index a376620..6703fe9 100644
--- a/mgmt/web2/Makefile.am
+++ b/mgmt/web2/Makefile.am
@@ -41,8 +41,6 @@ libweb_a_SOURCES = \
WebHttpContext.h \
WebHttpMessage.cc \
WebHttpMessage.h \
- WebHttpSession.cc \
- WebHttpSession.h \
WebIntrMain.cc \
WebIntrMain.h \
WebOverview.cc \
http://git-wip-us.apache.org/repos/asf/trafficserver/blob/cb7fc8f9/mgmt/web2/WebHttpSession.cc
----------------------------------------------------------------------
diff --git a/mgmt/web2/WebHttpSession.cc b/mgmt/web2/WebHttpSession.cc
deleted file mode 100644
index ed45f81..0000000
--- a/mgmt/web2/WebHttpSession.cc
+++ /dev/null
@@ -1,218 +0,0 @@
-/** @file
-
- A brief file description
-
- @section license License
-
- Licensed to the Apache Software Foundation (ASF) under one
- or more contributor license agreements. See the NOTICE file
- distributed with this work for additional information
- regarding copyright ownership. The ASF licenses this file
- to you under the Apache License, Version 2.0 (the
- "License"); you may not use this file except in compliance
- with the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
- */
-
-/****************************************************************************
- *
- * WebHttpSession.cc - Manage session data
- *
- *
- ****************************************************************************/
-
-#include "ink_platform.h"
-#include "ink_hash_table.h"
-#include "ink_hash_table.h"
-
-#include "mgmtapi.h"
-#include "MgmtUtils.h"
-#include "WebCompatibility.h"
-#include "WebGlobals.h"
-#include "WebHttpSession.h"
-
-//#include "LocalManager.h"
-
-#define SESSION_EXPIRES 600 // 10 minutes
-#define CURRENT_SESSION_EXPIRES 100 // 10 minutes
-#define SESSION_KEY_LEN 8
-
-static InkHashTable *g_session_ht = 0;
-static ink_mutex g_session_mutex;
-
-struct session_ele
-{
- time_t created;
- void *data;
- WebHttpSessionDeleter deleter_func;
-};
-
-//-------------------------------------------------------------------------
-// deleter_main
-//-------------------------------------------------------------------------
-
-static void *
-deleter_main(void *)
-{
- time_t now;
- InkHashTableIteratorState htis;
- InkHashTableEntry *hte;
- char *key;
- session_ele *session;
- int session_count;
- while (1) {
- time(&now);
- ink_mutex_acquire(&wGlobals.submitLock);
- // mutex_try_acquire to avoid potential deadlocking; not so
- // critical that we don't delete these objects right now.
- session_count = 0;
- if (ink_mutex_try_acquire(&g_session_mutex)) {
- for (hte = ink_hash_table_iterator_first(g_session_ht, &htis);
- hte != NULL; hte = ink_hash_table_iterator_next(g_session_ht, &htis)) {
- key = (char *) ink_hash_table_entry_key(g_session_ht, hte);
- session = (session_ele *) ink_hash_table_entry_value(g_session_ht, hte);
- if (now - session->created > SESSION_EXPIRES) {
- ink_hash_table_delete(g_session_ht, key);
- session->deleter_func(session->data);
- ats_free(session);
- } else {
- session_count++;
- }
- }
- ink_mutex_release(&g_session_mutex);
- }
- ink_mutex_release(&wGlobals.submitLock);
- // random arbitrary heuristic
- mgmt_sleep_sec(SESSION_EXPIRES / 10);
- }
- return NULL;
-}
-
-//-------------------------------------------------------------------------
-// InkMgmtApiCtxDeleter
-//-------------------------------------------------------------------------
-
-void
-InkMgmtApiCtxDeleter(void *data)
-{
- TSCfgContextDestroy((TSCfgContext) data);
-}
-
-//-------------------------------------------------------------------------
-// WebHttpSessionInit
-//-------------------------------------------------------------------------
-
-void
-WebHttpSessionInit()
-{
- time_t now;
- time(&now);
- WebSeedRand((long) now);
- g_session_ht = ink_hash_table_create(InkHashTableKeyType_String);
- ink_mutex_init(&g_session_mutex, "g_session_mutex");
- ink_thread_create(deleter_main, NULL);
-}
-
-//-------------------------------------------------------------------------
-// WebHttpSessionStore
-//-------------------------------------------------------------------------
-
-int
-WebHttpSessionStore(char *key, void *data, WebHttpSessionDeleter deleter_func)
-{
- int err = WEB_HTTP_ERR_OKAY;
- session_ele *session;
- void *dummy;
- time_t now;
-
- if (!key || !data || !deleter_func) {
- return WEB_HTTP_ERR_FAIL;
- }
- ink_mutex_acquire(&g_session_mutex);
- if (ink_hash_table_lookup(g_session_ht, key, &dummy)) {
- err = WEB_HTTP_ERR_FAIL;
- goto Ldone;
- }
- time(&now);
- session = (session_ele *)ats_malloc(sizeof(session_ele));
- session->created = now;
- session->data = data;
- session->deleter_func = deleter_func;
- ink_hash_table_insert(g_session_ht, key, (void *) session);
-
-Ldone:
- ink_mutex_release(&g_session_mutex);
- return err;
-}
-
-//-------------------------------------------------------------------------
-// WebHttpSessionRetrieve
-//-------------------------------------------------------------------------
-
-int
-WebHttpSessionRetrieve(char *key, void **data)
-{
- int err;
- session_ele *session;
- if (!key) {
- return WEB_HTTP_ERR_FAIL;
- }
- ink_mutex_acquire(&g_session_mutex);
- if (!ink_hash_table_lookup(g_session_ht, key, (void **) &session)) {
- err = WEB_HTTP_ERR_FAIL;
- } else {
- *data = session->data;
- err = WEB_HTTP_ERR_OKAY;
- }
- ink_mutex_release(&g_session_mutex);
- return err;
-}
-
-//-------------------------------------------------------------------------
-// WebHttpSessionDelete
-//-------------------------------------------------------------------------
-
-int
-WebHttpSessionDelete(char *key)
-{
- int err = WEB_HTTP_ERR_OKAY;
- session_ele *session;
- if (!key) {
- return WEB_HTTP_ERR_FAIL;
- }
- ink_mutex_acquire(&g_session_mutex);
- if (!ink_hash_table_lookup(g_session_ht, key, (void **) &session)) {
- err = WEB_HTTP_ERR_FAIL;
- goto Ldone;
- }
- ink_hash_table_delete(g_session_ht, key);
- session->deleter_func(session->data);
- ats_free(session);
-Ldone:
- ink_mutex_release(&g_session_mutex);
- return err;
-}
-
-char *
-WebHttpMakeSessionKey_Xmalloc()
-{
- char *session_key_str = (char *)ats_malloc(SESSION_KEY_LEN + 2);
- long session_key = WebRand();
- // note: snprintf takes the buffer length, not the string
- // length? Add 2 to ats_malloc above to be safe. ^_^
- snprintf(session_key_str, SESSION_KEY_LEN + 1, "%lx", session_key);
- return session_key_str;
-}
-
-
-
-
-
-
http://git-wip-us.apache.org/repos/asf/trafficserver/blob/cb7fc8f9/mgmt/web2/WebHttpSession.h
----------------------------------------------------------------------
diff --git a/mgmt/web2/WebHttpSession.h b/mgmt/web2/WebHttpSession.h
deleted file mode 100644
index e1ec9ad..0000000
--- a/mgmt/web2/WebHttpSession.h
+++ /dev/null
@@ -1,46 +0,0 @@
-/** @file
-
- A brief file description
-
- @section license License
-
- Licensed to the Apache Software Foundation (ASF) under one
- or more contributor license agreements. See the NOTICE file
- distributed with this work for additional information
- regarding copyright ownership. The ASF licenses this file
- to you under the Apache License, Version 2.0 (the
- "License"); you may not use this file except in compliance
- with the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
- */
-
-/****************************************************************************
- *
- * WebHttpSession.h - Manage session data
- *
- *
- ****************************************************************************/
-
-#ifndef _WEB_HTTP_SESSION_
-#define _WEB_HTTP_SESSION_
-
-#include "P_RecCore.h"
-
-typedef void (*WebHttpSessionDeleter) (void *data);
-void InkMgmtApiCtxDeleter(void *data);
-
-void WebHttpSessionInit();
-int WebHttpSessionStore(char *key, void *data, WebHttpSessionDeleter deleter_func);
-int WebHttpSessionRetrieve(char *key, void **data);
-int WebHttpSessionDelete(char *key);
-
-char *WebHttpMakeSessionKey_Xmalloc();
-
-#endif // _WEB_HTTP_SESSION_