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 2013/08/06 21:47:24 UTC
git commit: TS-2102 SPDY plugin tries to setup protocol handler too
early.
Updated Branches:
refs/heads/master a7708dfe1 -> c1c963efa
TS-2102 SPDY plugin tries to setup protocol handler too early.
Project: http://git-wip-us.apache.org/repos/asf/trafficserver/repo
Commit: http://git-wip-us.apache.org/repos/asf/trafficserver/commit/c1c963ef
Tree: http://git-wip-us.apache.org/repos/asf/trafficserver/tree/c1c963ef
Diff: http://git-wip-us.apache.org/repos/asf/trafficserver/diff/c1c963ef
Branch: refs/heads/master
Commit: c1c963efad8b7f7773c19c6720845d6c34daddcf
Parents: a7708df
Author: Leif Hedstrom <zw...@apache.org>
Authored: Tue Aug 6 13:47:11 2013 -0600
Committer: Leif Hedstrom <zw...@apache.org>
Committed: Tue Aug 6 13:47:11 2013 -0600
----------------------------------------------------------------------
CHANGES | 2 ++
plugins/experimental/spdy/spdy.cc | 24 ++++++++++++++++++------
2 files changed, 20 insertions(+), 6 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/trafficserver/blob/c1c963ef/CHANGES
----------------------------------------------------------------------
diff --git a/CHANGES b/CHANGES
index 9cdb0f6..c358bb5 100644
--- a/CHANGES
+++ b/CHANGES
@@ -1,6 +1,8 @@
-*- coding: utf-8 -*-
Changes with Apache Traffic Server 3.3.5
+ *) [TS-2102] SPDY plugin tries to setup protocol handler too early.
+
*) [TS-1953] remove version checks from plugins that don't use it and
add an example showing off the version API and partial compilation.
http://git-wip-us.apache.org/repos/asf/trafficserver/blob/c1c963ef/plugins/experimental/spdy/spdy.cc
----------------------------------------------------------------------
diff --git a/plugins/experimental/spdy/spdy.cc b/plugins/experimental/spdy/spdy.cc
index f7fbed8..1a83e2a 100644
--- a/plugins/experimental/spdy/spdy.cc
+++ b/plugins/experimental/spdy/spdy.cc
@@ -339,6 +339,23 @@ spdy_accept_io(TSCont contp, TSEvent ev, void * edata)
return TS_EVENT_NONE;
}
+static int
+spdy_setup_protocol(TSCont /* contp ATS_UNUSED */, TSEvent ev, void * /* edata ATS_UNUSED */)
+{
+ switch (ev) {
+ case TS_EVENT_LIFECYCLE_PORTS_INITIALIZED:
+ TSReleaseAssert(TSNetAcceptNamedProtocol(TSContCreate(spdy_accept_io, TSMutexCreate()),
+ TS_NPN_PROTOCOL_SPDY_2) == TS_SUCCESS);
+ debug_plugin("registered named protocol endpoint for %s", TS_NPN_PROTOCOL_SPDY_2);
+ break;
+ default:
+ TSError("[spdy] Protocol registration failed");
+ break;
+ }
+
+ return TS_EVENT_NONE;
+}
+
extern "C" void
TSPluginInit(int argc, const char * argv[])
{
@@ -372,12 +389,7 @@ TSPluginInit(int argc, const char * argv[])
}
init:
- TSReleaseAssert(
- TSNetAcceptNamedProtocol(TSContCreate(spdy_accept_io, TSMutexCreate()),
- TS_NPN_PROTOCOL_SPDY_2) == TS_SUCCESS);
-
- debug_plugin("registered named protocol endpoint for %s",
- TS_NPN_PROTOCOL_SPDY_2);
+ TSLifecycleHookAdd(TS_LIFECYCLE_PORTS_INITIALIZED_HOOK, TSContCreate(spdy_setup_protocol, NULL));
}
/* vim: set sw=4 tw=79 ts=4 et ai : */