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 : */