reverse the "single pattern" in ccnx wrapper
disable ccn reconnect before the openssl bug get's fixed in ccnx code
it's parc's problem to fix the openssl bug
diff --git a/ccnx/sync-app-socket.cc b/ccnx/sync-app-socket.cc
index 22d51b9..3bc6954 100644
--- a/ccnx/sync-app-socket.cc
+++ b/ccnx/sync-app-socket.cc
@@ -29,7 +29,7 @@
 {
 
 SyncAppSocket::SyncAppSocket (const string &syncPrefix, NewDataCallback dataCallback, RemoveCallback rmCallback )
-  : m_ccnxHandle (CcnxWrapper::Create ())
+  : m_ccnxHandle (new CcnxWrapper())
   , m_newDataCallback(dataCallback)
   , m_syncLogic (syncPrefix,
                  bind(&SyncAppSocket::passCallback, this, _1),
@@ -39,14 +39,13 @@
 
 SyncAppSocket::~SyncAppSocket()
 {
-  CcnxWrapper::Destroy ();
 }
 
 std::string
 SyncAppSocket::GetLocalPrefix()
 {
   // this handle is supposed to be short lived
-  CcnxWrapperPtr handle = CcnxWrapper::Create();
+  CcnxWrapperPtr handle( new CcnxWrapper());
   return handle->getLocalPrefix();
 }
 
diff --git a/ccnx/sync-ccnx-wrapper.cc b/ccnx/sync-ccnx-wrapper.cc
index df1cbab..b742548 100644
--- a/ccnx/sync-ccnx-wrapper.cc
+++ b/ccnx/sync-ccnx-wrapper.cc
@@ -45,8 +45,6 @@
 
 namespace Sync {
 
-boost::shared_ptr<CcnxWrapper> CcnxWrapper::s_wrapper;
-
 #ifdef _DEBUG_WRAPPER_      
 CcnxWrapper::CcnxWrapper(char c)
 #else
@@ -200,6 +198,9 @@
         }
         catch (CcnxOperationException &e)
         {
+          // do not try reconnect for now
+          throw e;
+          /*
           m_connected = false;
           // probably ccnd has been stopped
           // try reconnect with sleep
@@ -226,6 +227,7 @@
               }
             }
           }
+          */
         }
         catch (const std::exception &exc)
           {
diff --git a/include/sync-ccnx-wrapper.h b/include/sync-ccnx-wrapper.h
index 843ab54..6ffba7b 100644
--- a/include/sync-ccnx-wrapper.h
+++ b/include/sync-ccnx-wrapper.h
@@ -59,33 +59,8 @@
   typedef boost::function<void (std::string, const char *buf, size_t len)> RawDataCallback;
   typedef boost::function<void (std::string)> InterestCallback;
 
-private:
-  static boost::shared_ptr<CcnxWrapper> s_wrapper;
-
 public:
-  static
-  boost::shared_ptr<CcnxWrapper>
-  Create ()
-  {
-    if (s_wrapper.get () == 0)
-      s_wrapper = boost::shared_ptr<CcnxWrapper> (new CcnxWrapper ());
-    
-    return s_wrapper;
-  }
 
-  static
-  void
-  Destroy ()
-  {
-    s_wrapper.reset ();
-  }
-  
-private:
-  /**
-   * @brief initialize the wrapper; a lot of things needs to be done. 1) init
-   * keystore 2) init keylocator 3) start a thread to hold a loop of ccn_run
-   *
-   */
 #ifdef _DEBUG_WRAPPER_      
   CcnxWrapper(char c='.');
   char m_c;
@@ -93,7 +68,6 @@
   CcnxWrapper();
 #endif
 
-public:  
   ~CcnxWrapper();
 
   /**
diff --git a/model/sync-logic.cc b/model/sync-logic.cc
index f298768..acb4d90 100644
--- a/model/sync-logic.cc
+++ b/model/sync-logic.cc
@@ -66,7 +66,7 @@
   , m_onUpdate (onUpdate)
   , m_perBranch (false)
   , m_onRemove (onRemove)
-  , m_ccnxHandle(CcnxWrapper::Create ())
+  , m_ccnxHandle(new CcnxWrapper ())
   , m_recoveryRetransmissionInterval (m_defaultRecoveryRetransmitInterval)
 #ifndef NS3_MODULE
   , m_randomGenerator (static_cast<unsigned int> (std::time (0)))
@@ -96,7 +96,7 @@
   , m_syncPrefix (syncPrefix)
   , m_onUpdateBranch (onUpdateBranch)
   , m_perBranch(true)
-  , m_ccnxHandle(CcnxWrapper::Create ())
+  , m_ccnxHandle(new CcnxWrapper())
   , m_recoveryRetransmissionInterval (m_defaultRecoveryRetransmitInterval)
 #ifndef NS3_MODULE
   , m_randomGenerator (static_cast<unsigned int> (std::time (0)))
@@ -122,10 +122,6 @@
 SyncLogic::~SyncLogic ()
 {
   m_ccnxHandle->clearInterestFilter (m_syncPrefix);
-  m_ccnxHandle.reset ();
-  // m_scheduler.cancel (REEXPRESSING_INTEREST);
-  // m_scheduler.cancel (DELAYED_INTEREST_PROCESSING);
-  // sleep (m_syncInterestReexpress+1);
 }
 
 #ifdef NS3_MODULE