allow publishing existing content object
diff --git a/include/ccnx-tunnel.h b/include/ccnx-tunnel.h
index 61ed964..e4b8b50 100644
--- a/include/ccnx-tunnel.h
+++ b/include/ccnx-tunnel.h
@@ -39,6 +39,9 @@
   virtual int
   publishData(const string &name, const unsigned char *buf, size_t len, int freshness) _OVERRIDE;
 
+  int
+  publishContentObject(const string &name, const Bytes &contentObject, int freshness);
+
   virtual int
   sendInterest (const Interest &interest, Closure *closure);
 
diff --git a/src/ccnx-tunnel.cpp b/src/ccnx-tunnel.cpp
index b36b030..281079f 100644
--- a/src/ccnx-tunnel.cpp
+++ b/src/ccnx-tunnel.cpp
@@ -49,9 +49,14 @@
   Bytes content = createContentObject(name, buf, len, freshness);
   storeContentObject(name, content);
   
-  string tunneledName = m_localPrefix + name;
-  Bytes tunneledCo = createContentObject(tunneledName, head(content), content.size(), freshness);
+  return publishContentObject(name, content, freshness);
+}
 
+int
+CcnxTunnel::publishContentObject(const string &name, const Bytes &contentObject, int freshness)
+{
+  string tunneledName = m_localPrefix + name;
+  Bytes tunneledCo = createContentObject(tunneledName, head(contentObject), contentObject.size(), freshness);
   return putToCcnd(tunneledCo);
 }