You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@trafficserver.apache.org by ni...@apache.org on 2013/04/15 21:11:08 UTC

[1/2] git commit: Drop in libloader code.

Updated Branches:
  refs/heads/master e2aff41f8 -> 41f1c2e14


Drop in libloader code.

Necessary build and docs to follow.


Project: http://git-wip-us.apache.org/repos/asf/trafficserver/repo
Commit: http://git-wip-us.apache.org/repos/asf/trafficserver/commit/5654cf4c
Tree: http://git-wip-us.apache.org/repos/asf/trafficserver/tree/5654cf4c
Diff: http://git-wip-us.apache.org/repos/asf/trafficserver/diff/5654cf4c

Branch: refs/heads/master
Commit: 5654cf4c4b22e0c81d56f1b8d0afeafaed8a8133
Parents: eabab3e
Author: niq <ni...@apache.org>
Authored: Sat Apr 6 00:32:59 2013 +0100
Committer: niq <ni...@apache.org>
Committed: Sat Apr 6 00:32:59 2013 +0100

----------------------------------------------------------------------
 plugins/libloader/libloader.c |   85 ++++++++++++++++++++++++++++++++++++
 1 files changed, 85 insertions(+), 0 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/trafficserver/blob/5654cf4c/plugins/libloader/libloader.c
----------------------------------------------------------------------
diff --git a/plugins/libloader/libloader.c b/plugins/libloader/libloader.c
new file mode 100644
index 0000000..ef84c2f
--- /dev/null
+++ b/plugins/libloader/libloader.c
@@ -0,0 +1,85 @@
+/*****************************************************************************
+ * Copyright (C) 2011-13 Qualys, Inc
+ * Copyright (C) 2013 The Apache Software Foundation
+ *
+ * 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.
+ * QUALYS 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.
+ ****************************************************************************/
+
+/* libloader: load libraries, making all symbols exported
+ * universally visible.  Equivalent to LoadFile in HTTPD.
+ *
+ * Written for ironbee plugin, whose module architecture
+ * is not compatible with trafficserver's plugins.
+ * May be useful for other plugins with non-trivial
+ * library dependencies.
+ */
+
+#include <dlfcn.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <ts/ts.h>
+
+typedef struct {
+    void *handle;
+    void *next;
+} link_handle;
+
+static link_handle *libs = NULL;
+
+static void unloadlibs(void)
+{
+    link_handle *p = libs;
+    while (p != NULL) {
+        link_handle *next = p->next;
+        dlclose(p->handle);
+        TSfree(p);
+        p = next;
+    }
+    libs = NULL;
+}
+
+void TSPluginInit(int argc, const char *argv[])
+{
+    int i;
+    TSPluginRegistrationInfo info;
+
+    info.plugin_name = (char *)"libloader";
+    info.vendor_name = (char *)"Apache Software Foundation";
+    info.support_email = (char *)"users@trafficserver.apache.org";
+
+    if (TSPluginRegister(TS_SDK_VERSION_3_0, &info) != TS_SUCCESS) {
+        TSError("[libloader] Plugin registration failed.\n");
+        return;
+    }
+
+    atexit(unloadlibs);
+
+    for (i = 1; i < argc; ++i) {
+        const char *lib = argv[i];
+        void *handle = dlopen(lib, RTLD_GLOBAL|RTLD_NOW);
+        if (handle) {
+            link_handle *l = TSmalloc(sizeof(link_handle));
+            l->handle = handle;
+            l->next = libs;
+            libs = l;
+            TSDebug("libloader", " loaded %s\n", lib);
+        }
+        else {
+            TSError("[libloader] failed to load %s: %s\n", lib, dlerror());
+        }
+    }
+    return;
+}


Re: [2/2] git commit: Merge https://git-wip-us.apache.org/repos/asf/trafficserver

Posted by Leif Hedstrom <zw...@apache.org>.
On 4/15/13 1:11 PM, niq@apache.org wrote:
> Merge https://git-wip-us.apache.org/repos/asf/trafficserver
>
>
> Project: http://git-wip-us.apache.org/repos/asf/trafficserver/repo
> Commit: http://git-wip-us.apache.org/repos/asf/trafficserver/commit/41f1c2e1
> Tree: http://git-wip-us.apache.org/repos/asf/trafficserver/tree/41f1c2e1
> Diff: http://git-wip-us.apache.org/repos/asf/trafficserver/diff/41f1c2e1


Hmmm, what just happened with this commit? It looks like it merged a 
previous commit:

commit 41f1c2e143501f060fb8b9b43d40d6ca194c7147
Merge: 5654cf4 e2aff41
Author:     niq <ni...@apache.org>
AuthorDate: Mon Apr 15 16:32:25 2013 +0100
Commit:     niq <ni...@apache.org>
CommitDate: Mon Apr 15 16:32:25 2013 +0100

     Merge https://git-wip-us.apache.org/repos/asf/trafficserver

commit e2aff41f8d68144a0e90b1412c6006b784769af4
Author:     weijin <ta...@taobao.com>
AuthorDate: Fri Apr 12 15:23:46 2013 -0600
Commit:     Leif Hedstrom <zw...@apache.org>
CommitDate: Fri Apr 12 15:23:46 2013 -0600

     TS-621 Allow caching of empty docs (currently only if a header
     Content-Length: 0 is in the response). New config option is named
     proxy.config.http.cache.allow_empty_doc, and is disabled by default.

     We are aware this doesn't fully fix the problem, but is "good enough"
     for now.

     Reviews and minor cosmetic cleanup changes: James and Leif.




Why would e2aff4 be merged again? I think it looks ok, it's just weird.

-- Leif


Re: [2/2] git commit: Merge https://git-wip-us.apache.org/repos/asf/trafficserver

Posted by Leif Hedstrom <zw...@apache.org>.
On 4/15/13 1:11 PM, niq@apache.org wrote:
> Merge https://git-wip-us.apache.org/repos/asf/trafficserver
>
>
> Project: http://git-wip-us.apache.org/repos/asf/trafficserver/repo
> Commit: http://git-wip-us.apache.org/repos/asf/trafficserver/commit/41f1c2e1
> Tree: http://git-wip-us.apache.org/repos/asf/trafficserver/tree/41f1c2e1
> Diff: http://git-wip-us.apache.org/repos/asf/trafficserver/diff/41f1c2e1


Hmmm, what just happened with this commit? It looks like it merged a 
previous commit:

commit 41f1c2e143501f060fb8b9b43d40d6ca194c7147
Merge: 5654cf4 e2aff41
Author:     niq <ni...@apache.org>
AuthorDate: Mon Apr 15 16:32:25 2013 +0100
Commit:     niq <ni...@apache.org>
CommitDate: Mon Apr 15 16:32:25 2013 +0100

     Merge https://git-wip-us.apache.org/repos/asf/trafficserver

commit e2aff41f8d68144a0e90b1412c6006b784769af4
Author:     weijin <ta...@taobao.com>
AuthorDate: Fri Apr 12 15:23:46 2013 -0600
Commit:     Leif Hedstrom <zw...@apache.org>
CommitDate: Fri Apr 12 15:23:46 2013 -0600

     TS-621 Allow caching of empty docs (currently only if a header
     Content-Length: 0 is in the response). New config option is named
     proxy.config.http.cache.allow_empty_doc, and is disabled by default.

     We are aware this doesn't fully fix the problem, but is "good enough"
     for now.

     Reviews and minor cosmetic cleanup changes: James and Leif.




Why would e2aff4 be merged again? I think it looks ok, it's just weird.

-- Leif


[2/2] git commit: Merge https://git-wip-us.apache.org/repos/asf/trafficserver

Posted by ni...@apache.org.
Merge https://git-wip-us.apache.org/repos/asf/trafficserver


Project: http://git-wip-us.apache.org/repos/asf/trafficserver/repo
Commit: http://git-wip-us.apache.org/repos/asf/trafficserver/commit/41f1c2e1
Tree: http://git-wip-us.apache.org/repos/asf/trafficserver/tree/41f1c2e1
Diff: http://git-wip-us.apache.org/repos/asf/trafficserver/diff/41f1c2e1

Branch: refs/heads/master
Commit: 41f1c2e143501f060fb8b9b43d40d6ca194c7147
Parents: 5654cf4 e2aff41
Author: niq <ni...@apache.org>
Authored: Mon Apr 15 16:32:25 2013 +0100
Committer: niq <ni...@apache.org>
Committed: Mon Apr 15 16:32:25 2013 +0100

----------------------------------------------------------------------
 CHANGES                                            |   11 +
 Vagrantfile                                        |    2 +-
 contrib/manifests/debian.pp                        |    2 +-
 .../perl/AdminClient/lib/Apache/TS/AdminClient.pm  |    1 -
 example/app-template/app-template.cc               |    6 +-
 iocore/cache/Cache.cc                              |   12 +
 iocore/cache/CacheWrite.cc                         |   20 ++-
 iocore/cache/P_CacheInternal.h                     |    3 +
 iocore/cache/P_CacheVol.h                          |    2 +-
 mgmt/Main.cc                                       |    3 -
 mgmt/RecordsConfig.cc                              |    6 +-
 mgmt/api/CfgContextUtils.cc                        |   70 ++----
 mgmt/api/CfgContextUtils.h                         |    2 +-
 mgmt/api/CoreAPI.cc                                |    7 +-
 mgmt/api/include/mgmtapi.h                         |    2 +-
 mgmt/stats/StatProcessor.cc                        |    3 +-
 mgmt/stats/StatType.cc                             |   84 +++++--
 mgmt/stats/StatType.h                              |    6 +-
 proxy/Main.cc                                      |    6 +-
 proxy/Makefile.am                                  |    3 -
 proxy/Plugin.cc                                    |   64 +----
 proxy/Plugin.h                                     |    2 +-
 proxy/PluginDB.cc                                  |  205 ---------------
 proxy/PluginDB.h                                   |   65 -----
 proxy/config/Makefile.am                           |    1 -
 proxy/config/mgr.cnf.default                       |    9 -
 proxy/config/records.config.default.in             |    3 +
 27 files changed, 154 insertions(+), 446 deletions(-)
----------------------------------------------------------------------