http://git-wip-us.apache.org/repos/asf/qpid-site/blob/f180d00b/content/dashboard.html
----------------------------------------------------------------------
diff --git a/content/dashboard.html b/content/dashboard.html
index 7117a35..98e76a9 100644
--- a/content/dashboard.html
+++ b/content/dashboard.html
@@ -172,16 +172,22 @@ 
https://github.com/apache/qpid-proton/blob/go1{/dir}/{file}#L{line}"/>
 <tr>
   <td><a href="/components/jms/index.html">JMS</a></td>
   <td><a 
href="https://issues.apache.org/jira/issues/?jql=project%20%3D%20QPIDJMS%20AND%20resolution%20%3D%20Unresolved%20ORDER%20BY%20priority%20DESC";>Open
 issues</a> &#x2014; <a 
href="https://issues.apache.org/jira/secure/CreateIssueDetails!init.jspa?pid=12314524&amp;issuetype=1&amp;summary=[Enter%20a%20brief%20description]&amp;priority=3";>New
 bug</a> &#x2014; <a 
href="https://issues.apache.org/jira/secure/CreateIssueDetails!init.jspa?pid=12314524&amp;issuetype=4&amp;summary=[Enter%20a%20brief%20description]&amp;priority=3";>New
 improvement</a></td>
-  <td><a 
href="https://builds.apache.org/view/M-R/view/Qpid/job/Qpid-JMS-Test-JDK7/";>Java
 7</a>, <a 
href="https://builds.apache.org/view/M-R/view/Qpid/job/Qpid-JMS-Test-JDK8/";>Java
 8</a></td>
+  <td><a 
href="https://builds.apache.org/view/M-R/view/Qpid/job/Qpid-JMS-Test-JDK8/";>Java
 8</a></td>
   <td><a href="https://git-wip-us.apache.org/repos/asf/qpid-jms.git";>Git</a>, 
<a href="https://github.com/apache/qpid-jms";>GitHub mirror</a></td>
 </tr>
 <tr>
   <td><a href="/proton/index.html">Proton</a></td>
   <td><a 
href="https://issues.apache.org/jira/issues/?jql=project%20%3D%20PROTON%20AND%20resolution%20%3D%20Unresolved%20ORDER%20BY%20priority%20DESC";>Open
 issues</a> &#x2014; <a 
href="https://issues.apache.org/jira/secure/CreateIssueDetails!init.jspa?pid=12313720&amp;issuetype=1&amp;summary=[Enter%20a%20brief%20description]&amp;priority=3";>New
 bug</a> &#x2014; <a 
href="https://issues.apache.org/jira/secure/CreateIssueDetails!init.jspa?pid=12313720&amp;issuetype=4&amp;summary=[Enter%20a%20brief%20description]&amp;priority=3";>New
 improvement</a></td>
-  <td><a 
href="https://builds.apache.org/view/M-R/view/Qpid/job/Qpid-proton-c/";>C</a>, 
<a 
href="https://builds.apache.org/view/M-R/view/Qpid/job/Qpid-proton-j/";>Java</a></td>
+  <td><a 
href="https://builds.apache.org/view/M-R/view/Qpid/job/Qpid-proton-c/";>Linux</a></td>
   <td><a 
href="https://git-wip-us.apache.org/repos/asf/qpid-proton.git";>Git</a>, <a 
href="https://github.com/apache/qpid-proton";>GitHub mirror</a></td>
 </tr>
 <tr>
+  <td><a href="/proton/index.html">Proton-J</a></td>
+  <td><a 
href="https://issues.apache.org/jira/browse/?jql=project%20%3D%20PROTON%20AND%20resolution%20%3D%20Unresolved%20AND%20component%20%3D%20proton-j%20ORDER%20BY%20priority%20DESC";>Open
 issues</a> &#x2014; <a 
href="https://issues.apache.org/jira/secure/CreateIssueDetails!init.jspa?pid=12313720&amp;issuetype=1&amp;summary=[Enter%20a%20brief%20description]&amp;priority=3";>New
 bug</a> &#x2014; <a 
href="https://issues.apache.org/jira/secure/CreateIssueDetails!init.jspa?pid=12313720&amp;issuetype=4&amp;summary=[Enter%20a%20brief%20description]&amp;priority=3";>New
 improvement</a></td>
+  <td><a 
href="https://builds.apache.org/view/M-R/view/Qpid/job/Qpid-proton-j/";>Java 
7</a></td>
+  <td><a 
href="https://git-wip-us.apache.org/repos/asf/qpid-proton-j.git";>Git</a>, <a 
href="https://github.com/apache/qpid-proton-j";>GitHub mirror</a></td>
+</tr>
+<tr>
   <td><a 
href="https://git-wip-us.apache.org/repos/asf?p=qpid-site.git;a=blob_plain;f=README.md;hb=HEAD";>Website</a></td>
   <td><a 
href="https://issues.apache.org/jira/issues/?jql=project%20%3D%20QPID%20AND%20resolution%20%3D%20Unresolved%20AND%20component%20%3D%20Website%20ORDER%20BY%20priority%20DESC";>Open
 issues</a> &#x2014; <a 
href="https://issues.apache.org/jira/secure/CreateIssueDetails!init.jspa?pid=12310520&amp;issuetype=1&amp;components=12312307&amp;summary=[Enter%20a%20brief%20description]&amp;priority=3";>New
 bug</a> &#x2014; <a 
href="https://issues.apache.org/jira/secure/CreateIssueDetails!init.jspa?pid=12310520&amp;issuetype=4&amp;components=12312307&amp;summary=[Enter%20a%20brief%20description]&amp;priority=3";>New
 improvement</a></td>
   <td>-</td>

http://git-wip-us.apache.org/repos/asf/qpid-site/blob/f180d00b/content/documentation.html
----------------------------------------------------------------------
diff --git a/content/documentation.html b/content/documentation.html
index 3c3e1b4..2d277ef 100644
--- a/content/documentation.html
+++ b/content/documentation.html
@@ -133,10 +133,10 @@ You can find older versions with our
 
 <ul>
 <li><a href="/proton/index.html">Overview</a></li>
-<li><a href="/releases/qpid-proton-0.16.0/proton/c/api/files.html">C API 
reference</a></li>
-<li><a href="/releases/qpid-proton-0.16.0/proton/cpp/api/annotated.html">C++ 
API reference</a></li>
-<li><a href="/releases/qpid-proton-0.16.0/proton/java/api/index.html">Java API 
reference</a></li>
-<li><a href="/releases/qpid-proton-0.16.0/proton/python/api/index.html">Python 
API reference</a></li>
+<li><a href="/releases/qpid-proton-0.17.0/proton/c/api/files.html">C API 
reference</a></li>
+<li><a href="/releases/qpid-proton-0.17.0/proton/cpp/api/annotated.html">C++ 
API reference</a></li>
+<li><a href="/releases/qpid-proton-0.17.0/proton/python/api/index.html">Python 
API reference</a></li>
+<li><a href="/releases/qpid-proton-j-0.17.0/api/index.html">Java API 
reference</a></li>
 </ul>
 
 </section>

http://git-wip-us.apache.org/repos/asf/qpid-site/blob/f180d00b/content/download.html
----------------------------------------------------------------------
diff --git a/content/download.html b/content/download.html
index a952bd8..997afd3 100644
--- a/content/download.html
+++ b/content/download.html
@@ -138,8 +138,13 @@ process. The downloads on this page are from our
 <tbody>
 <tr>
   <td><a href="/proton/index.html">Qpid Proton</a></td>
-  <td><a 
href="http://www.apache.org/dyn/closer.lua/qpid/proton/0.16.0/qpid-proton-0.16.0.tar.gz";>qpid-proton-0.16.0.tar.gz</a></td>
-  <td><a 
href="http://www.apache.org/dist/qpid/proton/0.16.0/qpid-proton-0.16.0.tar.gz.asc";>ASC</a>,
 <a 
href="http://www.apache.org/dist/qpid/proton/0.16.0/qpid-proton-0.16.0.tar.gz.md5";>MD5</a>,
 <a 
href="http://www.apache.org/dist/qpid/proton/0.16.0/qpid-proton-0.16.0.tar.gz.sha1";>SHA1</a></td>
+  <td><a 
href="http://www.apache.org/dyn/closer.lua/qpid/proton/0.17.0/qpid-proton-0.17.0.tar.gz";>qpid-proton-0.17.0.tar.gz</a></td>
+  <td><a 
href="http://www.apache.org/dist/qpid/proton/0.17.0/qpid-proton-0.17.0.tar.gz.asc";>ASC</a>,
 <a 
href="http://www.apache.org/dist/qpid/proton/0.17.0/qpid-proton-0.17.0.tar.gz.md5";>MD5</a>,
 <a 
href="http://www.apache.org/dist/qpid/proton/0.17.0/qpid-proton-0.17.0.tar.gz.sha1";>SHA1</a></td>
+</tr>
+<tr>
+  <td><a href="/proton/index.html">Qpid Proton-J</a></td>
+  <td><a 
href="http://www.apache.org/dyn/closer.lua/qpid/proton-j/0.17.0/apache-qpid-proton-j-0.17.0-bin.tar.gz";>apache-qpid-proton-j-0.17.0-bin.tar.gz</a>*</td>
+  <td><a 
href="http://www.apache.org/dist/qpid/proton-j/0.17.0/apache-qpid-proton-j-0.17.0-bin.tar.gz.asc";>ASC</a>,
 <a 
href="http://www.apache.org/dist/qpid/proton-j/0.17.0/apache-qpid-proton-j-0.17.0-bin.tar.gz.md5";>MD5</a>,
 <a 
href="http://www.apache.org/dist/qpid/proton-j/0.17.0/apache-qpid-proton-j-0.17.0-bin.tar.gz.sha1";>SHA1</a></td>
 </tr>
 <tr>
   <td><a href="/components/jms/index.html">Qpid JMS</a> (AMQP 1.0)</td>
@@ -193,8 +198,13 @@ process. The downloads on this page are from our
 </tbody>
 </table>
 
-<p>*These Java artefacts are released as compiled bytecode.  We also
+<p>*These Java artefacts are presented as compiled bytecode.  We also
 offer the source as part of our
+<a 
href="http://www.apache.org/dyn/closer.lua/qpid/proton-j/0.17.0/apache-qpid-proton-j-0.17.0-src.tar.gz";>Qpid
 Proton-J source release</a>
+[<a 
href="http://www.apache.org/dist/qpid/proton-j/0.17.0/apache-qpid-proton-j-0.17.0-src.tar.gz.asc";>ASC</a>,
+<a 
href="http://www.apache.org/dist/qpid/proton-j/0.17.0/apache-qpid-proton-j-0.17.0-src.tar.gz.md5";>MD5</a>,
+<a 
href="http://www.apache.org/dist/qpid/proton-j/0.17.0/apache-qpid-proton-j-0.17.0-src.tar.gz.sha1";>SHA1</a>]
+and
 <a 
href="http://www.apache.org/dyn/closer.lua/qpid/jms/0.20.0/apache-qpid-jms-0.20.0-src.tar.gz";>Qpid
 JMS source release</a>
 [<a 
href="http://www.apache.org/dist/qpid/jms/0.20.0/apache-qpid-jms-0.20.0-src.tar.gz.asc";>ASC</a>,
 <a 
href="http://www.apache.org/dist/qpid/jms/0.20.0/apache-qpid-jms-0.20.0-src.tar.gz.md5";>MD5</a>,

http://git-wip-us.apache.org/repos/asf/qpid-site/blob/f180d00b/content/maven.html
----------------------------------------------------------------------
diff --git a/content/maven.html b/content/maven.html
index 6e60375..6cce2a5 100644
--- a/content/maven.html
+++ b/content/maven.html
@@ -149,7 +149,7 @@ 
https://github.com/apache/qpid-proton/blob/go1{/dir}/{file}#L{line}"/>
 <span class="nt">&lt;dependency&gt;</span>
   <span class="nt">&lt;groupId&gt;</span>org.apache.qpid<span 
class="nt">&lt;/groupId&gt;</span>
   <span class="nt">&lt;artifactId&gt;</span>proton-j<span 
class="nt">&lt;/artifactId&gt;</span>
-  <span class="nt">&lt;version&gt;</span>0.16.0<span 
class="nt">&lt;/version&gt;</span>
+  <span class="nt">&lt;version&gt;</span>0.17.0<span 
class="nt">&lt;/version&gt;</span>
 <span class="nt">&lt;/dependency&gt;</span>
 </pre></div>
 

http://git-wip-us.apache.org/repos/asf/qpid-site/blob/f180d00b/content/proton/contributing.html
----------------------------------------------------------------------
diff --git a/content/proton/contributing.html b/content/proton/contributing.html
index f063ea3..14cd8ca 100644
--- a/content/proton/contributing.html
+++ b/content/proton/contributing.html
@@ -118,7 +118,6 @@ 
https://github.com/apache/qpid-proton/blob/go1{/dir}/{file}#L{line}"/>
 
 <ul>
 <li><a href="submitting-patches.html">Submitting Patches</a></li>
-<li><a href="proton-j-proton-c.html">Proton-J/Proton-C</a></li>
 </ul>
 
 

http://git-wip-us.apache.org/repos/asf/qpid-site/blob/f180d00b/content/proton/index.html
----------------------------------------------------------------------
diff --git a/content/proton/index.html b/content/proton/index.html
index f692392..98110dc 100644
--- a/content/proton/index.html
+++ b/content/proton/index.html
@@ -147,17 +147,17 @@ platform, environment, or language. More about
 <div class="two-column">
 
 <ul>
-<li><a href="/releases/qpid-proton-0.16.0/proton/c/api/files.html">C API 
reference</a></li>
-<li><a href="/releases/qpid-proton-0.16.0/proton/cpp/api/index.html">C++ 
introduction</a></li>
-<li><a href="/releases/qpid-proton-0.16.0/proton/cpp/api/tutorial.html">C++ 
tutorial</a></li>
-<li><a href="/releases/qpid-proton-0.16.0/proton/cpp/examples/index.html">C++ 
examples</a></li>
-<li><a href="/releases/qpid-proton-0.16.0/proton/cpp/api/annotated.html">C++ 
API reference</a></li>
-<li><a href="/releases/qpid-proton-0.16.0/proton/java/api/index.html">Java API 
reference</a></li>
-<li><a 
href="/releases/qpid-proton-0.16.0/proton/python/book/overview.html">Python 
overview</a></li>
-<li><a 
href="/releases/qpid-proton-0.16.0/proton/python/book/tutorial.html">Python 
tutorial</a></li>
-<li><a 
href="/releases/qpid-proton-0.16.0/proton/python/examples/index.html">Python 
examples</a></li>
-<li><a href="/releases/qpid-proton-0.16.0/proton/python/api/index.html">Python 
API reference</a></li>
-<li><a 
href="https://git-wip-us.apache.org/repos/asf?p=qpid-proton.git;a=blob_plain;f=INSTALL.md;hb=0.16.0";>Installing
 Qpid Proton</a></li>
+<li><a href="/releases/qpid-proton-0.17.0/proton/c/api/files.html">C API 
reference</a></li>
+<li><a href="/releases/qpid-proton-0.17.0/proton/cpp/api/index.html">C++ 
introduction</a></li>
+<li><a href="/releases/qpid-proton-0.17.0/proton/cpp/api/tutorial.html">C++ 
tutorial</a></li>
+<li><a href="/releases/qpid-proton-0.17.0/proton/cpp/examples/index.html">C++ 
examples</a></li>
+<li><a href="/releases/qpid-proton-0.17.0/proton/cpp/api/annotated.html">C++ 
API reference</a></li>
+<li><a href="/releases/qpid-proton-j-0.17.0/api/index.html">Java API 
reference</a></li>
+<li><a 
href="/releases/qpid-proton-0.17.0/proton/python/book/overview.html">Python 
overview</a></li>
+<li><a 
href="/releases/qpid-proton-0.17.0/proton/python/book/tutorial.html">Python 
tutorial</a></li>
+<li><a 
href="/releases/qpid-proton-0.17.0/proton/python/examples/index.html">Python 
examples</a></li>
+<li><a href="/releases/qpid-proton-0.17.0/proton/python/api/index.html">Python 
API reference</a></li>
+<li><a 
href="https://git-wip-us.apache.org/repos/asf?p=qpid-proton.git;a=blob_plain;f=INSTALL.md;hb=0.17.0";>Installing
 Qpid Proton</a></li>
 </ul>
 
 </div>
@@ -169,7 +169,8 @@ platform, environment, or language. More about
 <h2 id="releases">Releases</h2>
 
 <ul>
-<li><a href="/releases/qpid-proton-0.16.0">Qpid Proton 0.16.0</a></li>
+<li><a href="/releases/qpid-proton-0.17.0">Qpid Proton 0.17.0</a></li>
+<li><a href="/releases/qpid-proton-j-0.17.0">Qpid Proton-J 0.17.0</a></li>
 <li><a href="/releases/index.html#past-releases">Past releases</a></li>
 <li><a href="/releases/qpid-proton-master/index.html">Work in progress</a> 
</li>
 </ul>
@@ -186,14 +187,22 @@ platform, environment, or language. More about
 <h2 id="source-code">Source code</h2>
 
 <ul>
+<li>Proton
+<ul>
 <li><a href="https://github.com/apache/qpid-proton";>Browse via GitHub</a></li>
 <li><a href="https://git-wip-us.apache.org/repos/asf/qpid-proton.git";>Git 
clone URL</a></li>
+</ul></li>
+<li>Proton-J
+<ul>
+<li><a href="https://github.com/apache/qpid-proton-j";>Browse via 
GitHub</a></li>
+<li><a href="https://git-wip-us.apache.org/repos/asf/qpid-proton-j.git";>Git 
clone URL</a></li>
+</ul></li>
 </ul>
 
 <h2 id="resources">Resources</h2>
 
 <ul>
-<li><a href="contributing.html">Contributing to Proton</a></li>
+<li><a href="submitting-patches.html">Contributing to Proton</a></li>
 <li><a href="messenger.html">Proton Messenger</a></li>
 <li><a href="https://cwiki.apache.org/confluence/display/qpid/proton";>Proton 
wiki pages</a></li>
 </ul>

http://git-wip-us.apache.org/repos/asf/qpid-site/blob/f180d00b/content/proton/messenger.html
----------------------------------------------------------------------
diff --git a/content/proton/messenger.html b/content/proton/messenger.html
index 9a2dda1..c34c3be 100644
--- a/content/proton/messenger.html
+++ b/content/proton/messenger.html
@@ -129,14 +129,13 @@ find previous versions with our
 <div class="two-column">
 
 <ul>
-<li><a href="/releases/qpid-proton-0.16.0/proton/c/api/messenger_8h.html">C 
API reference</a></li>
-<li><a href="/releases/qpid-proton-0.16.0/messenger/c/examples/index.html">C 
examples</a></li>
-<li><a 
href="/releases/qpid-proton-0.16.0/proton/java/api/org/apache/qpid/proton/messenger/Messenger.html">Java
 API reference</a></li>
-<li><a 
href="/releases/qpid-proton-0.16.0/messenger/perl/examples/index.html">Perl 
examples</a></li>
-<li><a 
href="/releases/qpid-proton-0.16.0/messenger/php/examples/index.html">PHP 
examples</a></li>
-<li><a 
href="/releases/qpid-proton-0.16.0/proton/python/api/proton.Messenger-class.html">Python
 API reference</a></li>
-<li><a 
href="/releases/qpid-proton-0.16.0/messenger/python/examples/index.html">Python 
examples</a></li>
-<li><a 
href="/releases/qpid-proton-0.16.0/messenger/ruby/examples/index.html">Ruby 
examples</a></li>
+<li><a href="/releases/qpid-proton-0.17.0/proton/c/api/messenger_8h.html">C 
API reference</a></li>
+<li><a href="/releases/qpid-proton-0.17.0/messenger/c/examples/index.html">C 
examples</a></li>
+<li><a 
href="/releases/qpid-proton-0.17.0/messenger/perl/examples/index.html">Perl 
examples</a></li>
+<li><a 
href="/releases/qpid-proton-0.17.0/messenger/php/examples/index.html">PHP 
examples</a></li>
+<li><a 
href="/releases/qpid-proton-0.17.0/proton/python/api/proton.Messenger-class.html">Python
 API reference</a></li>
+<li><a 
href="/releases/qpid-proton-0.17.0/messenger/python/examples/index.html">Python 
examples</a></li>
+<li><a 
href="/releases/qpid-proton-0.17.0/messenger/ruby/examples/index.html">Ruby 
examples</a></li>
 </ul>
 
 </div>

http://git-wip-us.apache.org/repos/asf/qpid-site/blob/f180d00b/content/releases/index.html
----------------------------------------------------------------------
diff --git a/content/releases/index.html b/content/releases/index.html
index 4315492..e103bdd 100644
--- a/content/releases/index.html
+++ b/content/releases/index.html
@@ -124,10 +124,11 @@ the
 <h2 id="current-releases">Current releases</h2>
 
 <ul>
+<li><a href="qpid-proton-0.17.0/index.html">Qpid Proton 0.17.0</a>, January 
2017</li>
+<li><a href="qpid-proton-j-0.17.0/index.html">Qpid Proton-J 0.17.0</a>, 
January 2017</li>
 <li><a href="qpid-jms-0.20.0/index.html">Qpid JMS 0.20.0</a>, January 2017</li>
 <li><a href="qpid-java-6.1.1/index.html">Qpid for Java 6.1.1</a>, December 
2016</li>
 <li><a href="qpid-cpp-1.36.0/index.html">Qpid C++ 1.36.0</a>, December 
2016</li>
-<li><a href="qpid-proton-0.16.0/index.html">Qpid Proton 0.16.0</a>, December 
2016</li>
 <li><a href="qpid-dispatch-0.7.0/index.html">Qpid Dispatch 0.7.0</a>, November 
2016</li>
 <li><a href="qpid-python-1.35.0/index.html">Qpid Python 1.35.0</a>, August 
2016</li>
 </ul>
@@ -137,6 +138,7 @@ the
 <div class="two-column">
 
 <ul>
+<li><a href="qpid-proton-0.16.0/index.html">Qpid Proton 0.16.0</a>, December 
2016</li>
 <li><a href="qpid-java-6.0.6/index.html">Qpid for Java 6.0.6</a>, December 
2016</li>
 <li><a href="qpid-java-6.1.0/index.html">Qpid for Java 6.1.0</a>, November 
2016</li>
 <li><a href="qpid-java-6.0.5/index.html">Qpid for Java 6.0.5</a>, November 
2016</li>

http://git-wip-us.apache.org/repos/asf/qpid-site/blob/f180d00b/content/releases/qpid-proton-0.10/index.html
----------------------------------------------------------------------
diff --git a/content/releases/qpid-proton-0.10/index.html 
b/content/releases/qpid-proton-0.10/index.html
index a83d5f1..5b8405b 100644
--- a/content/releases/qpid-proton-0.10/index.html
+++ b/content/releases/qpid-proton-0.10/index.html
@@ -116,7 +116,7 @@ 
https://github.com/apache/qpid-proton/blob/go1{/dir}/{file}#L{line}"/>
         <div id="-middle-content">
           <script type="text/javascript">
   _deferredFunctions.push(function() {
-      if ("0.10" === "0.16.0") {
+      if ("0.10" === "0.17.0") {
           _modifyCurrentReleaseLinks();
       }
   });

http://git-wip-us.apache.org/repos/asf/qpid-site/blob/f180d00b/content/releases/qpid-proton-0.11.0/index.html
----------------------------------------------------------------------
diff --git a/content/releases/qpid-proton-0.11.0/index.html 
b/content/releases/qpid-proton-0.11.0/index.html
index b49c2ef..582614c 100644
--- a/content/releases/qpid-proton-0.11.0/index.html
+++ b/content/releases/qpid-proton-0.11.0/index.html
@@ -172,7 +172,7 @@ the files you download.</p>
 
 <script type="text/javascript">
   _deferredFunctions.push(function() {
-      if ("0.11.0" === "0.16.0") {
+      if ("0.11.0" === "0.17.0") {
           _modifyCurrentReleaseLinks();
       }
   });

http://git-wip-us.apache.org/repos/asf/qpid-site/blob/f180d00b/content/releases/qpid-proton-0.11.1/index.html
----------------------------------------------------------------------
diff --git a/content/releases/qpid-proton-0.11.1/index.html 
b/content/releases/qpid-proton-0.11.1/index.html
index f50950a..d7f7c4e 100644
--- a/content/releases/qpid-proton-0.11.1/index.html
+++ b/content/releases/qpid-proton-0.11.1/index.html
@@ -172,7 +172,7 @@ the files you download.</p>
 
 <script type="text/javascript">
   _deferredFunctions.push(function() {
-      if ("0.11.1" === "0.16.0") {
+      if ("0.11.1" === "0.17.0") {
           _modifyCurrentReleaseLinks();
       }
   });

http://git-wip-us.apache.org/repos/asf/qpid-site/blob/f180d00b/content/releases/qpid-proton-0.12.0/index.html
----------------------------------------------------------------------
diff --git a/content/releases/qpid-proton-0.12.0/index.html 
b/content/releases/qpid-proton-0.12.0/index.html
index 5644158..8c92aea 100644
--- a/content/releases/qpid-proton-0.12.0/index.html
+++ b/content/releases/qpid-proton-0.12.0/index.html
@@ -175,7 +175,7 @@ the files you download.</p>
 
 <script type="text/javascript">
   _deferredFunctions.push(function() {
-      if ("0.12.0" === "0.16.0") {
+      if ("0.12.0" === "0.17.0") {
           _modifyCurrentReleaseLinks();
       }
   });

http://git-wip-us.apache.org/repos/asf/qpid-site/blob/f180d00b/content/releases/qpid-proton-0.12.1/index.html
----------------------------------------------------------------------
diff --git a/content/releases/qpid-proton-0.12.1/index.html 
b/content/releases/qpid-proton-0.12.1/index.html
index 2cdbd74..47c32ff 100644
--- a/content/releases/qpid-proton-0.12.1/index.html
+++ b/content/releases/qpid-proton-0.12.1/index.html
@@ -176,7 +176,7 @@ the files you download.</p>
 
 <script type="text/javascript">
   _deferredFunctions.push(function() {
-      if ("0.12.1" === "0.16.0") {
+      if ("0.12.1" === "0.17.0") {
           _modifyCurrentReleaseLinks();
       }
   });

http://git-wip-us.apache.org/repos/asf/qpid-site/blob/f180d00b/content/releases/qpid-proton-0.12.2/index.html
----------------------------------------------------------------------
diff --git a/content/releases/qpid-proton-0.12.2/index.html 
b/content/releases/qpid-proton-0.12.2/index.html
index 2b8b6e5..5204300 100644
--- a/content/releases/qpid-proton-0.12.2/index.html
+++ b/content/releases/qpid-proton-0.12.2/index.html
@@ -176,7 +176,7 @@ the files you download.</p>
 
 <script type="text/javascript">
   _deferredFunctions.push(function() {
-      if ("0.12.2" === "0.16.0") {
+      if ("0.12.2" === "0.17.0") {
           _modifyCurrentReleaseLinks();
       }
   });

http://git-wip-us.apache.org/repos/asf/qpid-site/blob/f180d00b/content/releases/qpid-proton-0.13.0/index.html
----------------------------------------------------------------------
diff --git a/content/releases/qpid-proton-0.13.0/index.html 
b/content/releases/qpid-proton-0.13.0/index.html
index 56af669..4665b71 100644
--- a/content/releases/qpid-proton-0.13.0/index.html
+++ b/content/releases/qpid-proton-0.13.0/index.html
@@ -176,7 +176,7 @@ the files you download.</p>
 
 <script type="text/javascript">
   _deferredFunctions.push(function() {
-      if ("0.13.0" === "0.16.0") {
+      if ("0.13.0" === "0.17.0") {
           _modifyCurrentReleaseLinks();
       }
   });

http://git-wip-us.apache.org/repos/asf/qpid-site/blob/f180d00b/content/releases/qpid-proton-0.13.1/index.html
----------------------------------------------------------------------
diff --git a/content/releases/qpid-proton-0.13.1/index.html 
b/content/releases/qpid-proton-0.13.1/index.html
index 6e6ece6..9340418 100644
--- a/content/releases/qpid-proton-0.13.1/index.html
+++ b/content/releases/qpid-proton-0.13.1/index.html
@@ -176,7 +176,7 @@ the files you download.</p>
 
 <script type="text/javascript">
   _deferredFunctions.push(function() {
-      if ("0.13.1" === "0.16.0") {
+      if ("0.13.1" === "0.17.0") {
           _modifyCurrentReleaseLinks();
       }
   });

http://git-wip-us.apache.org/repos/asf/qpid-site/blob/f180d00b/content/releases/qpid-proton-0.14.0/index.html
----------------------------------------------------------------------
diff --git a/content/releases/qpid-proton-0.14.0/index.html 
b/content/releases/qpid-proton-0.14.0/index.html
index 4940e1f..b8e5279 100644
--- a/content/releases/qpid-proton-0.14.0/index.html
+++ b/content/releases/qpid-proton-0.14.0/index.html
@@ -176,7 +176,7 @@ the files you download.</p>
 
 <script type="text/javascript">
   _deferredFunctions.push(function() {
-      if ("0.14.0" === "0.16.0") {
+      if ("0.14.0" === "0.17.0") {
           _modifyCurrentReleaseLinks();
       }
   });

http://git-wip-us.apache.org/repos/asf/qpid-site/blob/f180d00b/content/releases/qpid-proton-0.15.0/index.html
----------------------------------------------------------------------
diff --git a/content/releases/qpid-proton-0.15.0/index.html 
b/content/releases/qpid-proton-0.15.0/index.html
index 132d635..1af07b6 100644
--- a/content/releases/qpid-proton-0.15.0/index.html
+++ b/content/releases/qpid-proton-0.15.0/index.html
@@ -176,7 +176,7 @@ the files you download.</p>
 
 <script type="text/javascript">
   _deferredFunctions.push(function() {
-      if ("0.15.0" === "0.16.0") {
+      if ("0.15.0" === "0.17.0") {
           _modifyCurrentReleaseLinks();
       }
   });

http://git-wip-us.apache.org/repos/asf/qpid-site/blob/f180d00b/content/releases/qpid-proton-0.16.0/index.html
----------------------------------------------------------------------
diff --git a/content/releases/qpid-proton-0.16.0/index.html 
b/content/releases/qpid-proton-0.16.0/index.html
index 8638804..4938797 100644
--- a/content/releases/qpid-proton-0.16.0/index.html
+++ b/content/releases/qpid-proton-0.16.0/index.html
@@ -176,7 +176,7 @@ the files you download.</p>
 
 <script type="text/javascript">
   _deferredFunctions.push(function() {
-      if ("0.16.0" === "0.16.0") {
+      if ("0.16.0" === "0.17.0") {
           _modifyCurrentReleaseLinks();
       }
   });

http://git-wip-us.apache.org/repos/asf/qpid-site/blob/f180d00b/content/releases/qpid-proton-0.17.0/index.html
----------------------------------------------------------------------
diff --git a/content/releases/qpid-proton-0.17.0/index.html 
b/content/releases/qpid-proton-0.17.0/index.html
new file mode 100644
index 0000000..934024d
--- /dev/null
+++ b/content/releases/qpid-proton-0.17.0/index.html
@@ -0,0 +1,209 @@
+<!DOCTYPE html>
+<!--
+ -
+ - 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.  The ASF 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.
+ -
+-->
+<html xmlns="http://www.w3.org/1999/xhtml"; xml:lang="en">
+  <head>
+    <title>Qpid Proton 0.17.0 - Apache Qpid&#8482;</title>
+    <meta http-equiv="X-UA-Compatible" content="IE=edge"/>
+    <meta name="viewport" content="width=device-width, initial-scale=1.0"/>
+    <link rel="stylesheet" href="/site.css" type="text/css" async="async"/>
+    <link rel="stylesheet" href="/deferred.css" type="text/css" defer="defer"/>
+    <script type="text/javascript">var _deferredFunctions = [];</script>
+    <script type="text/javascript" src="/deferred.js" defer="defer"></script>
+    <!--[if lte IE 8]>
+      <link rel="stylesheet" href="/ie.css" type="text/css"/>
+      <script type="text/javascript" src="/html5shiv.js"></script>
+    <![endif]-->
+
+    <!-- Redirects for `go get` and godoc.org -->
+    <meta name="go-import"
+          content="qpid.apache.org git 
https://git-wip-us.apache.org/repos/asf/qpid-proton.git"/>
+    <meta name="go-source"
+          content="qpid.apache.org
+https://github.com/apache/qpid-proton/blob/go1/README.md
+https://github.com/apache/qpid-proton/tree/go1{/dir}
+https://github.com/apache/qpid-proton/blob/go1{/dir}/{file}#L{line}"/>
+  </head>
+  <body>
+    <div id="-content">
+      <div id="-top" class="panel">
+        <a id="-menu-link"><img width="16" height="16" src="" alt="Menu"/></a>
+
+        <a id="-search-link"><img width="22" height="16" src="" 
alt="Search"/></a>
+
+        <ul id="-global-navigation">
+          <li><a id="-logotype" href="/index.html">Apache 
Qpid<sup>&#8482;</sup></a></li>
+          <li><a href="/documentation.html">Documentation</a></li>
+          <li><a href="/download.html">Download</a></li>
+          <li><a href="/discussion.html">Discussion</a></li>
+        </ul>
+      </div>
+
+      <div id="-menu" class="panel" style="display: none;">
+        <div class="flex">
+          <section>
+            <h3>Project</h3>
+
+            <ul>
+              <li><a href="/overview.html">Overview</a></li>
+              <li><a href="/components/index.html">Components</a></li>
+              <li><a href="/releases/index.html">Releases</a></li>
+            </ul>
+          </section>
+
+          <section>
+            <h3>Messaging APIs</h3>
+
+            <ul>
+              <li><a href="/proton/index.html">Qpid Proton</a></li>
+              <li><a href="/components/jms/index.html">Qpid JMS</a></li>
+              <li><a href="/components/messaging-api/index.html">Qpid 
Messaging API</a></li>
+            </ul>
+          </section>
+
+          <section>
+            <h3>Servers and tools</h3>
+
+            <ul>
+              <li><a href="/components/java-broker/index.html">Broker for 
Java</a></li>
+              <li><a href="/components/cpp-broker/index.html">C++ 
broker</a></li>
+              <li><a href="/components/dispatch-router/index.html">Dispatch 
router</a></li>
+            </ul>
+          </section>
+
+          <section>
+            <h3>Resources</h3>
+
+            <ul>
+              <li><a href="/dashboard.html">Dashboard</a></li>
+              <li><a 
href="https://cwiki.apache.org/confluence/display/qpid/Index";>Wiki</a></li>
+              <li><a href="/resources.html">More resources</a></li>
+            </ul>
+          </section>
+        </div>
+      </div>
+
+      <div id="-search" class="panel" style="display: none;">
+        <form action="http://www.google.com/search"; method="get">
+          <input type="hidden" name="sitesearch" value="qpid.apache.org"/>
+          <input type="text" name="q" maxlength="255" autofocus="autofocus" 
tabindex="1"/>
+          <button type="submit">Search</button>
+          <a href="/search.html">More ways to search</a>
+        </form>
+      </div>
+
+      <div id="-middle" class="panel">
+        <ul id="-path-navigation"><li><a 
href="/index.html">Home</a></li><li><a 
href="/releases/index.html">Releases</a></li><li>Qpid Proton 0.17.0</li></ul>
+
+        <div id="-middle-content">
+          <h1 id="qpid-proton-0170">Qpid Proton 0.17.0</h1>
+
+<p>Qpid Proton is a high-performance, lightweight messaging library. More
+about <a href="/proton/index.html">Qpid Proton</a>.</p>
+
+<p>For a detailed list of the changes in this release, see the <a 
href="release-notes.html">release
+notes</a>.</p>
+
+<h2 id="download">Download</h2>
+
+<p>It's important to <a href="/download.html#verify-what-you-download">verify 
the
+integrity</a> of
+the files you download.</p>
+
+<table>
+<thead>
+<tr>
+  <th>Content</th>
+  <th>Download</th>
+  <th>Verify</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+  <td>Qpid Proton</td>
+  <td><a 
href="http://archive.apache.org/dist/qpid/proton/0.17.0/qpid-proton-0.17.0.tar.gz";>qpid-proton-0.17.0.tar.gz</a></td>
+  <td><a 
href="http://archive.apache.org/dist/qpid/proton/0.17.0/qpid-proton-0.17.0.tar.gz.asc";>ASC</a>,
 <a 
href="http://archive.apache.org/dist/qpid/proton/0.17.0/qpid-proton-0.17.0.tar.gz.md5";>MD5</a>,
 <a 
href="http://archive.apache.org/dist/qpid/proton/0.17.0/qpid-proton-0.17.0.tar.gz.sha1";>SHA1</a></td>
+</tr>
+</tbody>
+</table>
+
+<h2 id="documentation">Documentation</h2>
+
+<div class="two-column">
+
+<ul>
+<li><a href="proton/c/api/files.html">C API reference</a></li>
+<li><a href="proton/cpp/api/index.html">C++ introduction</a></li>
+<li><a href="proton/cpp/api/tutorial.html">C++ tutorial</a></li>
+<li><a href="proton/cpp/examples/index.html">C++ examples</a></li>
+<li><a href="proton/cpp/api/annotated.html">C++ API reference</a></li>
+<li><a href="proton/python/book/overview.html">Python overview</a></li>
+<li><a href="proton/python/book/tutorial.html">Python tutorial</a></li>
+<li><a href="proton/python/examples/index.html">Python examples</a></li>
+<li><a href="proton/python/api/index.html">Python API reference</a></li>
+<li><a 
href="https://git-wip-us.apache.org/repos/asf?p=qpid-proton.git;a=blob;f=INSTALL.md;hb=0.17.0";>Installing
 Qpid Proton</a></li>
+</ul>
+
+</div>
+
+<h2 id="more-information">More information</h2>
+
+<ul>
+<li><a href="http://archive.apache.org/dist/qpid/proton/0.17.0";>All release 
artefacts</a></li>
+<li><a 
href="https://issues.apache.org/jira/issues/?jql=project+%3D+PROTON+AND+fixVersion+%3D+%270.17.0%27+AND+resolution+%3D+%27fixed%27+ORDER+BY+priority+DESC";>Resolved
 issues in JIRA</a></li>
+<li><a 
href="https://git-wip-us.apache.org/repos/asf?p=qpid-proton.git;a=tag;h=0.17.0";>Source
 repository tag</a></li>
+</ul>
+
+<script type="text/javascript">
+  _deferredFunctions.push(function() {
+      if ("0.17.0" === "0.17.0") {
+          _modifyCurrentReleaseLinks();
+      }
+  });
+</script>
+
+
+          <hr/>
+
+          <ul id="-apache-navigation">
+            <li><a href="http://www.apache.org/";>Apache</a></li>
+            <li><a href="http://www.apache.org/licenses/";>License</a></li>
+            <li><a 
href="http://www.apache.org/foundation/sponsorship.html";>Sponsorship</a></li>
+            <li><a 
href="http://www.apache.org/foundation/thanks.html";>Thanks!</a></li>
+            <li><a href="/security.html">Security</a></li>
+            <li><a href="http://www.apache.org/";><img id="-apache-feather" 
width="48" height="14" src="" alt="Apache"/></a></li>
+          </ul>
+
+          <p id="-legal">
+            Apache Qpid, Messaging built on AMQP; Copyright &#169; 2015
+            The Apache Software Foundation; Licensed under
+            the <a href="http://www.apache.org/licenses/LICENSE-2.0";>Apache
+            License, Version 2.0</a>; Apache Qpid, Qpid, Qpid Proton,
+            Proton, Apache, the Apache feather logo, and the Apache Qpid
+            project logo are trademarks of The Apache Software
+            Foundation; All other marks mentioned may be trademarks or
+            registered trademarks of their respective owners
+          </p>
+        </div>
+      </div>
+    </div>
+  </body>
+</html>

http://git-wip-us.apache.org/repos/asf/qpid-site/blob/f180d00b/content/releases/qpid-proton-0.17.0/messenger/c/examples/index.html
----------------------------------------------------------------------
diff --git 
a/content/releases/qpid-proton-0.17.0/messenger/c/examples/index.html 
b/content/releases/qpid-proton-0.17.0/messenger/c/examples/index.html
new file mode 100644
index 0000000..1dd0897
--- /dev/null
+++ b/content/releases/qpid-proton-0.17.0/messenger/c/examples/index.html
@@ -0,0 +1,160 @@
+<!DOCTYPE html>
+<!--
+ -
+ - 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.  The ASF 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.
+ -
+-->
+<html xmlns="http://www.w3.org/1999/xhtml"; xml:lang="en">
+  <head>
+    <title>C AMQP Messenger Examples - Apache Qpid&#8482;</title>
+    <meta http-equiv="X-UA-Compatible" content="IE=edge"/>
+    <meta name="viewport" content="width=device-width, initial-scale=1.0"/>
+    <link rel="stylesheet" href="/site.css" type="text/css" async="async"/>
+    <link rel="stylesheet" href="/deferred.css" type="text/css" defer="defer"/>
+    <script type="text/javascript">var _deferredFunctions = [];</script>
+    <script type="text/javascript" src="/deferred.js" defer="defer"></script>
+    <!--[if lte IE 8]>
+      <link rel="stylesheet" href="/ie.css" type="text/css"/>
+      <script type="text/javascript" src="/html5shiv.js"></script>
+    <![endif]-->
+
+    <!-- Redirects for `go get` and godoc.org -->
+    <meta name="go-import"
+          content="qpid.apache.org git 
https://git-wip-us.apache.org/repos/asf/qpid-proton.git"/>
+    <meta name="go-source"
+          content="qpid.apache.org
+https://github.com/apache/qpid-proton/blob/go1/README.md
+https://github.com/apache/qpid-proton/tree/go1{/dir}
+https://github.com/apache/qpid-proton/blob/go1{/dir}/{file}#L{line}"/>
+  </head>
+  <body>
+    <div id="-content">
+      <div id="-top" class="panel">
+        <a id="-menu-link"><img width="16" height="16" src="" alt="Menu"/></a>
+
+        <a id="-search-link"><img width="22" height="16" src="" 
alt="Search"/></a>
+
+        <ul id="-global-navigation">
+          <li><a id="-logotype" href="/index.html">Apache 
Qpid<sup>&#8482;</sup></a></li>
+          <li><a href="/documentation.html">Documentation</a></li>
+          <li><a href="/download.html">Download</a></li>
+          <li><a href="/discussion.html">Discussion</a></li>
+        </ul>
+      </div>
+
+      <div id="-menu" class="panel" style="display: none;">
+        <div class="flex">
+          <section>
+            <h3>Project</h3>
+
+            <ul>
+              <li><a href="/overview.html">Overview</a></li>
+              <li><a href="/components/index.html">Components</a></li>
+              <li><a href="/releases/index.html">Releases</a></li>
+            </ul>
+          </section>
+
+          <section>
+            <h3>Messaging APIs</h3>
+
+            <ul>
+              <li><a href="/proton/index.html">Qpid Proton</a></li>
+              <li><a href="/components/jms/index.html">Qpid JMS</a></li>
+              <li><a href="/components/messaging-api/index.html">Qpid 
Messaging API</a></li>
+            </ul>
+          </section>
+
+          <section>
+            <h3>Servers and tools</h3>
+
+            <ul>
+              <li><a href="/components/java-broker/index.html">Broker for 
Java</a></li>
+              <li><a href="/components/cpp-broker/index.html">C++ 
broker</a></li>
+              <li><a href="/components/dispatch-router/index.html">Dispatch 
router</a></li>
+            </ul>
+          </section>
+
+          <section>
+            <h3>Resources</h3>
+
+            <ul>
+              <li><a href="/dashboard.html">Dashboard</a></li>
+              <li><a 
href="https://cwiki.apache.org/confluence/display/qpid/Index";>Wiki</a></li>
+              <li><a href="/resources.html">More resources</a></li>
+            </ul>
+          </section>
+        </div>
+      </div>
+
+      <div id="-search" class="panel" style="display: none;">
+        <form action="http://www.google.com/search"; method="get">
+          <input type="hidden" name="sitesearch" value="qpid.apache.org"/>
+          <input type="text" name="q" maxlength="255" autofocus="autofocus" 
tabindex="1"/>
+          <button type="submit">Search</button>
+          <a href="/search.html">More ways to search</a>
+        </form>
+      </div>
+
+      <div id="-middle" class="panel">
+        <ul id="-path-navigation"><li><a 
href="/index.html">Home</a></li><li><a 
href="/releases/index.html">Releases</a></li><li><a 
href="/releases/qpid-proton-0.17.0/index.html">Qpid Proton 0.17.0</a></li><li>C 
AMQP Messenger Examples</li></ul>
+
+        <div id="-middle-content">
+          <h1 id="c-amqp-messenger-examples">C AMQP Messenger Examples</h1>
+
+<h2 id="example-files">Example files</h2>
+
+<ul>
+<li><a href="recv-async.c.html">recv-async.c</a></li>
+<li><a href="recv.c.html">recv.c</a></li>
+<li><a href="send-async.c.html">send-async.c</a></li>
+<li><a href="send.c.html">send.c</a></li>
+</ul>
+
+<h2 id="more-information">More information</h2>
+
+<ul>
+<li><a 
href="https://github.com/apache/qpid-proton/tree/0.17.0/examples/c/messenger";>Source
 location</a></li>
+</ul>
+
+
+          <hr/>
+
+          <ul id="-apache-navigation">
+            <li><a href="http://www.apache.org/";>Apache</a></li>
+            <li><a href="http://www.apache.org/licenses/";>License</a></li>
+            <li><a 
href="http://www.apache.org/foundation/sponsorship.html";>Sponsorship</a></li>
+            <li><a 
href="http://www.apache.org/foundation/thanks.html";>Thanks!</a></li>
+            <li><a href="/security.html">Security</a></li>
+            <li><a href="http://www.apache.org/";><img id="-apache-feather" 
width="48" height="14" src="" alt="Apache"/></a></li>
+          </ul>
+
+          <p id="-legal">
+            Apache Qpid, Messaging built on AMQP; Copyright &#169; 2015
+            The Apache Software Foundation; Licensed under
+            the <a href="http://www.apache.org/licenses/LICENSE-2.0";>Apache
+            License, Version 2.0</a>; Apache Qpid, Qpid, Qpid Proton,
+            Proton, Apache, the Apache feather logo, and the Apache Qpid
+            project logo are trademarks of The Apache Software
+            Foundation; All other marks mentioned may be trademarks or
+            registered trademarks of their respective owners
+          </p>
+        </div>
+      </div>
+    </div>
+  </body>
+</html>

http://git-wip-us.apache.org/repos/asf/qpid-site/blob/f180d00b/content/releases/qpid-proton-0.17.0/messenger/c/examples/recv-async.c
----------------------------------------------------------------------
diff --git 
a/content/releases/qpid-proton-0.17.0/messenger/c/examples/recv-async.c 
b/content/releases/qpid-proton-0.17.0/messenger/c/examples/recv-async.c
new file mode 100755
index 0000000..1f49166
--- /dev/null
+++ b/content/releases/qpid-proton-0.17.0/messenger/c/examples/recv-async.c
@@ -0,0 +1,193 @@
+/*
+ * 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.  The ASF 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.
+ *
+ */
+
+// This is a re-implementation of recv.c using non-blocking/asynchronous calls.
+
+#include "proton/message.h"
+#include "proton/messenger.h"
+
+#include "pncompat/misc_funcs.inc"
+#include <stdio.h>
+#include <stdlib.h>
+#include <ctype.h>
+
+#if EMSCRIPTEN
+#include <emscripten.h>
+#endif
+
+pn_message_t * message;
+pn_messenger_t * messenger;
+
+#define check(messenger)                                                     \
+  {                                                                          \
+    if(pn_messenger_errno(messenger))                                        \
+    {                                                                        \
+      die(__FILE__, __LINE__, pn_error_text(pn_messenger_error(messenger))); \
+    }                                                                        \
+  }                                                                          \
+
+void die(const char *file, int line, const char *message)
+{
+    fprintf(stderr, "%s:%i: %s\n", file, line, message);
+    exit(1);
+}
+
+void usage(void)
+{
+    printf("Usage: recv [options] <addr>\n");
+    printf("-c    \tPath to the certificate file.\n");
+    printf("-k    \tPath to the private key file.\n");
+    printf("-p    \tPassword for the private key.\n");
+    printf("<addr>\tAn address.\n");
+    exit(0);
+}
+
+void process(void) {
+    while(pn_messenger_incoming(messenger))
+    {
+        pn_messenger_get(messenger, message);
+        check(messenger);
+
+        {
+        pn_tracker_t tracker = pn_messenger_incoming_tracker(messenger);
+        char buffer[1024];
+        size_t buffsize = sizeof(buffer);
+        const char* subject = pn_message_get_subject(message);
+        pn_data_t* body = pn_message_body(message);
+        pn_data_format(body, buffer, &buffsize);
+
+        printf("Address: %s\n", pn_message_get_address(message));
+        printf("Subject: %s\n", subject ? subject : "(no subject)");
+        printf("Content: %s\n", buffer);
+
+        pn_messenger_accept(messenger, tracker, 0);
+        }
+    }
+}
+
+#if EMSCRIPTEN // For emscripten C/C++ to JavaScript compiler.
+void pump(int fd, void* userData) {
+    while (pn_messenger_work(messenger, 0) >= 0) {
+        process();
+    }
+}
+
+void onclose(int fd, void* userData) {
+    process();
+}
+
+void onerror(int fd, int errno, const char* msg, void* userData) {
+    printf("error callback fd = %d, errno = %d, msg = %s\n", fd, errno, msg);
+}
+#endif
+
+int main(int argc, char** argv)
+{
+    char* certificate = NULL;
+    char* privatekey = NULL;
+    char* password = NULL;
+    char* address = (char *) "amqp://~0.0.0.0";
+    int c;
+
+    message = pn_message();
+    messenger = pn_messenger(NULL);
+    pn_messenger_set_blocking(messenger, false); // Needs to be set 
non-blocking to behave asynchronously.
+
+    opterr = 0;
+
+    while((c = getopt(argc, argv, "hc:k:p:")) != -1)
+    {
+        switch(c)
+        {
+            case 'h':
+                usage();
+                break;
+
+            case 'c': certificate = optarg; break;
+            case 'k': privatekey = optarg; break;
+            case 'p': password = optarg; break;
+
+            case '?':
+                if (optopt == 'c' ||
+                    optopt == 'k' ||
+                    optopt == 'p')
+                {
+                    fprintf(stderr, "Option -%c requires an argument.\n", 
optopt);
+                }
+                else if(isprint(optopt))
+                {
+                    fprintf(stderr, "Unknown option `-%c'.\n", optopt);
+                }
+                else
+                {
+                    fprintf(stderr, "Unknown option character `\\x%x'.\n", 
optopt);
+                }
+                return 1;
+            default:
+                abort();
+        }
+    }
+
+    if (optind < argc)
+    {
+        address = argv[optind];
+    }
+
+    /* load the various command line options if they're set */
+    if(certificate)
+    {
+        pn_messenger_set_certificate(messenger, certificate);
+    }
+
+    if(privatekey)
+    {
+        pn_messenger_set_private_key(messenger, privatekey);
+    }
+
+    if(password)
+    {
+        pn_messenger_set_password(messenger, password);
+    }
+
+    pn_messenger_start(messenger);
+    check(messenger);
+
+    pn_messenger_subscribe(messenger, address);
+    check(messenger);
+
+    pn_messenger_recv(messenger, -1); // Set to receive as many messages as 
messenger can buffer.
+
+#if EMSCRIPTEN // For emscripten C/C++ to JavaScript compiler.
+    emscripten_set_socket_error_callback(NULL, onerror);
+
+    emscripten_set_socket_open_callback(NULL, pump);
+    emscripten_set_socket_connection_callback(NULL, pump);
+    emscripten_set_socket_message_callback(NULL, pump);
+    emscripten_set_socket_close_callback(NULL, onclose);
+#else // For native compiler.
+    while (1) {
+        pn_messenger_work(messenger, -1); // Block indefinitely until there 
has been socket activity.
+        process();
+    }
+#endif
+
+    return 0;
+}
+

http://git-wip-us.apache.org/repos/asf/qpid-site/blob/f180d00b/content/releases/qpid-proton-0.17.0/messenger/c/examples/recv-async.c.html
----------------------------------------------------------------------
diff --git 
a/content/releases/qpid-proton-0.17.0/messenger/c/examples/recv-async.c.html 
b/content/releases/qpid-proton-0.17.0/messenger/c/examples/recv-async.c.html
new file mode 100644
index 0000000..8c255d4
--- /dev/null
+++ b/content/releases/qpid-proton-0.17.0/messenger/c/examples/recv-async.c.html
@@ -0,0 +1,321 @@
+<!DOCTYPE html>
+<!--
+ -
+ - 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.  The ASF 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.
+ -
+-->
+<html xmlns="http://www.w3.org/1999/xhtml"; xml:lang="en">
+  <head>
+    <title>recv-async.c - Apache Qpid&#8482;</title>
+    <meta http-equiv="X-UA-Compatible" content="IE=edge"/>
+    <meta name="viewport" content="width=device-width, initial-scale=1.0"/>
+    <link rel="stylesheet" href="/site.css" type="text/css" async="async"/>
+    <link rel="stylesheet" href="/deferred.css" type="text/css" defer="defer"/>
+    <script type="text/javascript">var _deferredFunctions = [];</script>
+    <script type="text/javascript" src="/deferred.js" defer="defer"></script>
+    <!--[if lte IE 8]>
+      <link rel="stylesheet" href="/ie.css" type="text/css"/>
+      <script type="text/javascript" src="/html5shiv.js"></script>
+    <![endif]-->
+
+    <!-- Redirects for `go get` and godoc.org -->
+    <meta name="go-import"
+          content="qpid.apache.org git 
https://git-wip-us.apache.org/repos/asf/qpid-proton.git"/>
+    <meta name="go-source"
+          content="qpid.apache.org
+https://github.com/apache/qpid-proton/blob/go1/README.md
+https://github.com/apache/qpid-proton/tree/go1{/dir}
+https://github.com/apache/qpid-proton/blob/go1{/dir}/{file}#L{line}"/>
+  </head>
+  <body>
+    <div id="-content">
+      <div id="-top" class="panel">
+        <a id="-menu-link"><img width="16" height="16" src="" alt="Menu"/></a>
+
+        <a id="-search-link"><img width="22" height="16" src="" 
alt="Search"/></a>
+
+        <ul id="-global-navigation">
+          <li><a id="-logotype" href="/index.html">Apache 
Qpid<sup>&#8482;</sup></a></li>
+          <li><a href="/documentation.html">Documentation</a></li>
+          <li><a href="/download.html">Download</a></li>
+          <li><a href="/discussion.html">Discussion</a></li>
+        </ul>
+      </div>
+
+      <div id="-menu" class="panel" style="display: none;">
+        <div class="flex">
+          <section>
+            <h3>Project</h3>
+
+            <ul>
+              <li><a href="/overview.html">Overview</a></li>
+              <li><a href="/components/index.html">Components</a></li>
+              <li><a href="/releases/index.html">Releases</a></li>
+            </ul>
+          </section>
+
+          <section>
+            <h3>Messaging APIs</h3>
+
+            <ul>
+              <li><a href="/proton/index.html">Qpid Proton</a></li>
+              <li><a href="/components/jms/index.html">Qpid JMS</a></li>
+              <li><a href="/components/messaging-api/index.html">Qpid 
Messaging API</a></li>
+            </ul>
+          </section>
+
+          <section>
+            <h3>Servers and tools</h3>
+
+            <ul>
+              <li><a href="/components/java-broker/index.html">Broker for 
Java</a></li>
+              <li><a href="/components/cpp-broker/index.html">C++ 
broker</a></li>
+              <li><a href="/components/dispatch-router/index.html">Dispatch 
router</a></li>
+            </ul>
+          </section>
+
+          <section>
+            <h3>Resources</h3>
+
+            <ul>
+              <li><a href="/dashboard.html">Dashboard</a></li>
+              <li><a 
href="https://cwiki.apache.org/confluence/display/qpid/Index";>Wiki</a></li>
+              <li><a href="/resources.html">More resources</a></li>
+            </ul>
+          </section>
+        </div>
+      </div>
+
+      <div id="-search" class="panel" style="display: none;">
+        <form action="http://www.google.com/search"; method="get">
+          <input type="hidden" name="sitesearch" value="qpid.apache.org"/>
+          <input type="text" name="q" maxlength="255" autofocus="autofocus" 
tabindex="1"/>
+          <button type="submit">Search</button>
+          <a href="/search.html">More ways to search</a>
+        </form>
+      </div>
+
+      <div id="-middle" class="panel">
+        <ul id="-path-navigation"><li><a 
href="/index.html">Home</a></li><li><a 
href="/releases/index.html">Releases</a></li><li><a 
href="/releases/qpid-proton-0.17.0/index.html">Qpid Proton 
0.17.0</a></li><li><a 
href="/releases/qpid-proton-0.17.0/messenger/c/examples/index.html">C AMQP 
Messenger Examples</a></li><li>recv-async.c</li></ul>
+
+        <div id="-middle-content">
+          
+<h1>recv-async.c</h1>
+<div class="highlight"><pre><span class="c1">// This is a re-implementation of 
recv.c using non-blocking/asynchronous calls.</span>
+
+<span class="cp">#include &quot;proton/message.h&quot;</span>
+<span class="cp">#include &quot;proton/messenger.h&quot;</span>
+
+<span class="cp">#include &quot;pncompat/misc_funcs.inc&quot;</span>
+<span class="cp">#include &lt;stdio.h&gt;</span>
+<span class="cp">#include &lt;stdlib.h&gt;</span>
+<span class="cp">#include &lt;ctype.h&gt;</span>
+
+<span class="cp">#if EMSCRIPTEN</span>
+<span class="cp">#include &lt;emscripten.h&gt;</span>
+<span class="cp">#endif</span>
+
+<span class="kt">pn_message_t</span> <span class="o">*</span> <span 
class="n">message</span><span class="p">;</span>
+<span class="kt">pn_messenger_t</span> <span class="o">*</span> <span 
class="n">messenger</span><span class="p">;</span>
+
+<span class="cp">#define check(messenger)                                      
               \</span>
+<span class="cp">  {                                                           
               \</span>
+<span class="cp">    if(pn_messenger_errno(messenger))                         
               \</span>
+<span class="cp">    {                                                         
               \</span>
+<span class="cp">      die(__FILE__, __LINE__, 
pn_error_text(pn_messenger_error(messenger))); \</span>
+<span class="cp">    }                                                         
               \</span>
+<span class="cp">  }                                                           
               \</span>
+
+<span class="kt">void</span> <span class="nf">die</span><span 
class="p">(</span><span class="k">const</span> <span class="kt">char</span> 
<span class="o">*</span><span class="n">file</span><span class="p">,</span> 
<span class="kt">int</span> <span class="n">line</span><span class="p">,</span> 
<span class="k">const</span> <span class="kt">char</span> <span 
class="o">*</span><span class="n">message</span><span class="p">)</span>
+<span class="p">{</span>
+    <span class="n">fprintf</span><span class="p">(</span><span 
class="n">stderr</span><span class="p">,</span> <span class="s">&quot;%s:%i: 
%s</span><span class="se">\n</span><span class="s">&quot;</span><span 
class="p">,</span> <span class="n">file</span><span class="p">,</span> <span 
class="n">line</span><span class="p">,</span> <span 
class="n">message</span><span class="p">);</span>
+    <span class="n">exit</span><span class="p">(</span><span 
class="mi">1</span><span class="p">);</span>
+<span class="p">}</span>
+
+<span class="kt">void</span> <span class="nf">usage</span><span 
class="p">(</span><span class="kt">void</span><span class="p">)</span>
+<span class="p">{</span>
+    <span class="n">printf</span><span class="p">(</span><span 
class="s">&quot;Usage: recv [options] &lt;addr&gt;</span><span 
class="se">\n</span><span class="s">&quot;</span><span class="p">);</span>
+    <span class="n">printf</span><span class="p">(</span><span 
class="s">&quot;-c    </span><span class="se">\t</span><span class="s">Path to 
the certificate file.</span><span class="se">\n</span><span 
class="s">&quot;</span><span class="p">);</span>
+    <span class="n">printf</span><span class="p">(</span><span 
class="s">&quot;-k    </span><span class="se">\t</span><span class="s">Path to 
the private key file.</span><span class="se">\n</span><span 
class="s">&quot;</span><span class="p">);</span>
+    <span class="n">printf</span><span class="p">(</span><span 
class="s">&quot;-p    </span><span class="se">\t</span><span class="s">Password 
for the private key.</span><span class="se">\n</span><span 
class="s">&quot;</span><span class="p">);</span>
+    <span class="n">printf</span><span class="p">(</span><span 
class="s">&quot;&lt;addr&gt;</span><span class="se">\t</span><span class="s">An 
address.</span><span class="se">\n</span><span class="s">&quot;</span><span 
class="p">);</span>
+    <span class="n">exit</span><span class="p">(</span><span 
class="mi">0</span><span class="p">);</span>
+<span class="p">}</span>
+
+<span class="kt">void</span> <span class="nf">process</span><span 
class="p">(</span><span class="kt">void</span><span class="p">)</span> <span 
class="p">{</span>
+    <span class="k">while</span><span class="p">(</span><span 
class="n">pn_messenger_incoming</span><span class="p">(</span><span 
class="n">messenger</span><span class="p">))</span>
+    <span class="p">{</span>
+        <span class="n">pn_messenger_get</span><span class="p">(</span><span 
class="n">messenger</span><span class="p">,</span> <span 
class="n">message</span><span class="p">);</span>
+        <span class="n">check</span><span class="p">(</span><span 
class="n">messenger</span><span class="p">);</span>
+
+        <span class="p">{</span>
+        <span class="kt">pn_tracker_t</span> <span class="n">tracker</span> 
<span class="o">=</span> <span 
class="n">pn_messenger_incoming_tracker</span><span class="p">(</span><span 
class="n">messenger</span><span class="p">);</span>
+        <span class="kt">char</span> <span class="n">buffer</span><span 
class="p">[</span><span class="mi">1024</span><span class="p">];</span>
+        <span class="kt">size_t</span> <span class="n">buffsize</span> <span 
class="o">=</span> <span class="k">sizeof</span><span class="p">(</span><span 
class="n">buffer</span><span class="p">);</span>
+        <span class="k">const</span> <span class="kt">char</span><span 
class="o">*</span> <span class="n">subject</span> <span class="o">=</span> 
<span class="n">pn_message_get_subject</span><span class="p">(</span><span 
class="n">message</span><span class="p">);</span>
+        <span class="kt">pn_data_t</span><span class="o">*</span> <span 
class="n">body</span> <span class="o">=</span> <span 
class="n">pn_message_body</span><span class="p">(</span><span 
class="n">message</span><span class="p">);</span>
+        <span class="n">pn_data_format</span><span class="p">(</span><span 
class="n">body</span><span class="p">,</span> <span 
class="n">buffer</span><span class="p">,</span> <span 
class="o">&amp;</span><span class="n">buffsize</span><span class="p">);</span>
+
+        <span class="n">printf</span><span class="p">(</span><span 
class="s">&quot;Address: %s</span><span class="se">\n</span><span 
class="s">&quot;</span><span class="p">,</span> <span 
class="n">pn_message_get_address</span><span class="p">(</span><span 
class="n">message</span><span class="p">));</span>
+        <span class="n">printf</span><span class="p">(</span><span 
class="s">&quot;Subject: %s</span><span class="se">\n</span><span 
class="s">&quot;</span><span class="p">,</span> <span class="n">subject</span> 
<span class="o">?</span> <span class="n">subject</span> <span 
class="o">:</span> <span class="s">&quot;(no subject)&quot;</span><span 
class="p">);</span>
+        <span class="n">printf</span><span class="p">(</span><span 
class="s">&quot;Content: %s</span><span class="se">\n</span><span 
class="s">&quot;</span><span class="p">,</span> <span 
class="n">buffer</span><span class="p">);</span>
+
+        <span class="n">pn_messenger_accept</span><span 
class="p">(</span><span class="n">messenger</span><span class="p">,</span> 
<span class="n">tracker</span><span class="p">,</span> <span 
class="mi">0</span><span class="p">);</span>
+        <span class="p">}</span>
+    <span class="p">}</span>
+<span class="p">}</span>
+
+<span class="cp">#if EMSCRIPTEN </span><span class="c1">// For emscripten 
C/C++ to JavaScript compiler.</span>
+<span class="kt">void</span> <span class="nf">pump</span><span 
class="p">(</span><span class="kt">int</span> <span class="n">fd</span><span 
class="p">,</span> <span class="kt">void</span><span class="o">*</span> <span 
class="n">userData</span><span class="p">)</span> <span class="p">{</span>
+    <span class="k">while</span> <span class="p">(</span><span 
class="n">pn_messenger_work</span><span class="p">(</span><span 
class="n">messenger</span><span class="p">,</span> <span 
class="mi">0</span><span class="p">)</span> <span class="o">&gt;=</span> <span 
class="mi">0</span><span class="p">)</span> <span class="p">{</span>
+        <span class="n">process</span><span class="p">();</span>
+    <span class="p">}</span>
+<span class="p">}</span>
+
+<span class="kt">void</span> <span class="nf">onclose</span><span 
class="p">(</span><span class="kt">int</span> <span class="n">fd</span><span 
class="p">,</span> <span class="kt">void</span><span class="o">*</span> <span 
class="n">userData</span><span class="p">)</span> <span class="p">{</span>
+    <span class="n">process</span><span class="p">();</span>
+<span class="p">}</span>
+
+<span class="kt">void</span> <span class="nf">onerror</span><span 
class="p">(</span><span class="kt">int</span> <span class="n">fd</span><span 
class="p">,</span> <span class="kt">int</span> <span 
class="n">errno</span><span class="p">,</span> <span class="k">const</span> 
<span class="kt">char</span><span class="o">*</span> <span 
class="n">msg</span><span class="p">,</span> <span class="kt">void</span><span 
class="o">*</span> <span class="n">userData</span><span class="p">)</span> 
<span class="p">{</span>
+    <span class="n">printf</span><span class="p">(</span><span 
class="s">&quot;error callback fd = %d, errno = %d, msg = %s</span><span 
class="se">\n</span><span class="s">&quot;</span><span class="p">,</span> <span 
class="n">fd</span><span class="p">,</span> <span class="n">errno</span><span 
class="p">,</span> <span class="n">msg</span><span class="p">);</span>
+<span class="p">}</span>
+<span class="cp">#endif</span>
+
+<span class="kt">int</span> <span class="nf">main</span><span 
class="p">(</span><span class="kt">int</span> <span class="n">argc</span><span 
class="p">,</span> <span class="kt">char</span><span class="o">**</span> <span 
class="n">argv</span><span class="p">)</span>
+<span class="p">{</span>
+    <span class="kt">char</span><span class="o">*</span> <span 
class="n">certificate</span> <span class="o">=</span> <span 
class="nb">NULL</span><span class="p">;</span>
+    <span class="kt">char</span><span class="o">*</span> <span 
class="n">privatekey</span> <span class="o">=</span> <span 
class="nb">NULL</span><span class="p">;</span>
+    <span class="kt">char</span><span class="o">*</span> <span 
class="n">password</span> <span class="o">=</span> <span 
class="nb">NULL</span><span class="p">;</span>
+    <span class="kt">char</span><span class="o">*</span> <span 
class="n">address</span> <span class="o">=</span> <span class="p">(</span><span 
class="kt">char</span> <span class="o">*</span><span class="p">)</span> <span 
class="s">&quot;amqp://~0.0.0.0&quot;</span><span class="p">;</span>
+    <span class="kt">int</span> <span class="n">c</span><span 
class="p">;</span>
+
+    <span class="n">message</span> <span class="o">=</span> <span 
class="n">pn_message</span><span class="p">();</span>
+    <span class="n">messenger</span> <span class="o">=</span> <span 
class="n">pn_messenger</span><span class="p">(</span><span 
class="nb">NULL</span><span class="p">);</span>
+    <span class="n">pn_messenger_set_blocking</span><span 
class="p">(</span><span class="n">messenger</span><span class="p">,</span> 
<span class="nb">false</span><span class="p">);</span> <span class="c1">// 
Needs to be set non-blocking to behave asynchronously.</span>
+
+    <span class="n">opterr</span> <span class="o">=</span> <span 
class="mi">0</span><span class="p">;</span>
+
+    <span class="k">while</span><span class="p">((</span><span 
class="n">c</span> <span class="o">=</span> <span class="n">getopt</span><span 
class="p">(</span><span class="n">argc</span><span class="p">,</span> <span 
class="n">argv</span><span class="p">,</span> <span 
class="s">&quot;hc:k:p:&quot;</span><span class="p">))</span> <span 
class="o">!=</span> <span class="o">-</span><span class="mi">1</span><span 
class="p">)</span>
+    <span class="p">{</span>
+        <span class="k">switch</span><span class="p">(</span><span 
class="n">c</span><span class="p">)</span>
+        <span class="p">{</span>
+            <span class="k">case</span> <span class="sc">&#39;h&#39;</span>:
+                <span class="n">usage</span><span class="p">();</span>
+                <span class="k">break</span><span class="p">;</span>
+
+            <span class="k">case</span> <span class="sc">&#39;c&#39;</span>: 
<span class="n">certificate</span> <span class="o">=</span> <span 
class="n">optarg</span><span class="p">;</span> <span 
class="k">break</span><span class="p">;</span>
+            <span class="k">case</span> <span class="sc">&#39;k&#39;</span>: 
<span class="n">privatekey</span> <span class="o">=</span> <span 
class="n">optarg</span><span class="p">;</span> <span 
class="k">break</span><span class="p">;</span>
+            <span class="k">case</span> <span class="sc">&#39;p&#39;</span>: 
<span class="n">password</span> <span class="o">=</span> <span 
class="n">optarg</span><span class="p">;</span> <span 
class="k">break</span><span class="p">;</span>
+
+            <span class="k">case</span> <span class="sc">&#39;?&#39;</span>:
+                <span class="k">if</span> <span class="p">(</span><span 
class="n">optopt</span> <span class="o">==</span> <span 
class="sc">&#39;c&#39;</span> <span class="o">||</span>
+                    <span class="n">optopt</span> <span class="o">==</span> 
<span class="sc">&#39;k&#39;</span> <span class="o">||</span>
+                    <span class="n">optopt</span> <span class="o">==</span> 
<span class="sc">&#39;p&#39;</span><span class="p">)</span>
+                <span class="p">{</span>
+                    <span class="n">fprintf</span><span 
class="p">(</span><span class="n">stderr</span><span class="p">,</span> <span 
class="s">&quot;Option -%c requires an argument.</span><span 
class="se">\n</span><span class="s">&quot;</span><span class="p">,</span> <span 
class="n">optopt</span><span class="p">);</span>
+                <span class="p">}</span>
+                <span class="k">else</span> <span class="k">if</span><span 
class="p">(</span><span class="n">isprint</span><span class="p">(</span><span 
class="n">optopt</span><span class="p">))</span>
+                <span class="p">{</span>
+                    <span class="n">fprintf</span><span 
class="p">(</span><span class="n">stderr</span><span class="p">,</span> <span 
class="s">&quot;Unknown option `-%c&#39;.</span><span class="se">\n</span><span 
class="s">&quot;</span><span class="p">,</span> <span 
class="n">optopt</span><span class="p">);</span>
+                <span class="p">}</span>
+                <span class="k">else</span>
+                <span class="p">{</span>
+                    <span class="n">fprintf</span><span 
class="p">(</span><span class="n">stderr</span><span class="p">,</span> <span 
class="s">&quot;Unknown option character `</span><span 
class="se">\\</span><span class="s">x%x&#39;.</span><span 
class="se">\n</span><span class="s">&quot;</span><span class="p">,</span> <span 
class="n">optopt</span><span class="p">);</span>
+                <span class="p">}</span>
+                <span class="k">return</span> <span class="mi">1</span><span 
class="p">;</span>
+            <span class="nl">default:</span>
+                <span class="n">abort</span><span class="p">();</span>
+        <span class="p">}</span>
+    <span class="p">}</span>
+
+    <span class="k">if</span> <span class="p">(</span><span 
class="n">optind</span> <span class="o">&lt;</span> <span 
class="n">argc</span><span class="p">)</span>
+    <span class="p">{</span>
+        <span class="n">address</span> <span class="o">=</span> <span 
class="n">argv</span><span class="p">[</span><span class="n">optind</span><span 
class="p">];</span>
+    <span class="p">}</span>
+
+    
+    <span class="k">if</span><span class="p">(</span><span 
class="n">certificate</span><span class="p">)</span>
+    <span class="p">{</span>
+        <span class="n">pn_messenger_set_certificate</span><span 
class="p">(</span><span class="n">messenger</span><span class="p">,</span> 
<span class="n">certificate</span><span class="p">);</span>
+    <span class="p">}</span>
+
+    <span class="k">if</span><span class="p">(</span><span 
class="n">privatekey</span><span class="p">)</span>
+    <span class="p">{</span>
+        <span class="n">pn_messenger_set_private_key</span><span 
class="p">(</span><span class="n">messenger</span><span class="p">,</span> 
<span class="n">privatekey</span><span class="p">);</span>
+    <span class="p">}</span>
+
+    <span class="k">if</span><span class="p">(</span><span 
class="n">password</span><span class="p">)</span>
+    <span class="p">{</span>
+        <span class="n">pn_messenger_set_password</span><span 
class="p">(</span><span class="n">messenger</span><span class="p">,</span> 
<span class="n">password</span><span class="p">);</span>
+    <span class="p">}</span>
+
+    <span class="n">pn_messenger_start</span><span class="p">(</span><span 
class="n">messenger</span><span class="p">);</span>
+    <span class="n">check</span><span class="p">(</span><span 
class="n">messenger</span><span class="p">);</span>
+
+    <span class="n">pn_messenger_subscribe</span><span class="p">(</span><span 
class="n">messenger</span><span class="p">,</span> <span 
class="n">address</span><span class="p">);</span>
+    <span class="n">check</span><span class="p">(</span><span 
class="n">messenger</span><span class="p">);</span>
+
+    <span class="n">pn_messenger_recv</span><span class="p">(</span><span 
class="n">messenger</span><span class="p">,</span> <span 
class="o">-</span><span class="mi">1</span><span class="p">);</span> <span 
class="c1">// Set to receive as many messages as messenger can buffer.</span>
+
+<span class="cp">#if EMSCRIPTEN </span><span class="c1">// For emscripten 
C/C++ to JavaScript compiler.</span>
+    <span class="n">emscripten_set_socket_error_callback</span><span 
class="p">(</span><span class="nb">NULL</span><span class="p">,</span> <span 
class="n">onerror</span><span class="p">);</span>
+
+    <span class="n">emscripten_set_socket_open_callback</span><span 
class="p">(</span><span class="nb">NULL</span><span class="p">,</span> <span 
class="n">pump</span><span class="p">);</span>
+    <span class="n">emscripten_set_socket_connection_callback</span><span 
class="p">(</span><span class="nb">NULL</span><span class="p">,</span> <span 
class="n">pump</span><span class="p">);</span>
+    <span class="n">emscripten_set_socket_message_callback</span><span 
class="p">(</span><span class="nb">NULL</span><span class="p">,</span> <span 
class="n">pump</span><span class="p">);</span>
+    <span class="n">emscripten_set_socket_close_callback</span><span 
class="p">(</span><span class="nb">NULL</span><span class="p">,</span> <span 
class="n">onclose</span><span class="p">);</span>
+<span class="cp">#else </span><span class="c1">// For native compiler.</span>
+    <span class="k">while</span> <span class="p">(</span><span 
class="mi">1</span><span class="p">)</span> <span class="p">{</span>
+        <span class="n">pn_messenger_work</span><span class="p">(</span><span 
class="n">messenger</span><span class="p">,</span> <span 
class="o">-</span><span class="mi">1</span><span class="p">);</span> <span 
class="c1">// Block indefinitely until there has been socket activity.</span>
+        <span class="n">process</span><span class="p">();</span>
+    <span class="p">}</span>
+<span class="cp">#endif</span>
+
+    <span class="k">return</span> <span class="mi">0</span><span 
class="p">;</span>
+<span class="p">}</span>
+</pre></div>
+
+<p><a href="recv-async.c">Download this file</a></p>
+
+
+          <hr/>
+
+          <ul id="-apache-navigation">
+            <li><a href="http://www.apache.org/";>Apache</a></li>
+            <li><a href="http://www.apache.org/licenses/";>License</a></li>
+            <li><a 
href="http://www.apache.org/foundation/sponsorship.html";>Sponsorship</a></li>
+            <li><a 
href="http://www.apache.org/foundation/thanks.html";>Thanks!</a></li>
+            <li><a href="/security.html">Security</a></li>
+            <li><a href="http://www.apache.org/";><img id="-apache-feather" 
width="48" height="14" src="" alt="Apache"/></a></li>
+          </ul>
+
+          <p id="-legal">
+            Apache Qpid, Messaging built on AMQP; Copyright &#169; 2015
+            The Apache Software Foundation; Licensed under
+            the <a href="http://www.apache.org/licenses/LICENSE-2.0";>Apache
+            License, Version 2.0</a>; Apache Qpid, Qpid, Qpid Proton,
+            Proton, Apache, the Apache feather logo, and the Apache Qpid
+            project logo are trademarks of The Apache Software
+            Foundation; All other marks mentioned may be trademarks or
+            registered trademarks of their respective owners
+          </p>
+        </div>
+      </div>
+    </div>
+  </body>
+</html>

http://git-wip-us.apache.org/repos/asf/qpid-site/blob/f180d00b/content/releases/qpid-proton-0.17.0/messenger/c/examples/recv.c
----------------------------------------------------------------------
diff --git a/content/releases/qpid-proton-0.17.0/messenger/c/examples/recv.c 
b/content/releases/qpid-proton-0.17.0/messenger/c/examples/recv.c
new file mode 100755
index 0000000..16e8321
--- /dev/null
+++ b/content/releases/qpid-proton-0.17.0/messenger/c/examples/recv.c
@@ -0,0 +1,154 @@
+/*
+ * 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.  The ASF 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.
+ *
+ */
+
+#include "proton/message.h"
+#include "proton/messenger.h"
+
+#include "pncompat/misc_funcs.inc"
+#include <stdio.h>
+#include <stdlib.h>
+#include <ctype.h>
+
+#define check(messenger)                                                     \
+  {                                                                          \
+    if(pn_messenger_errno(messenger))                                        \
+    {                                                                        \
+      die(__FILE__, __LINE__, pn_error_text(pn_messenger_error(messenger))); \
+    }                                                                        \
+  }                                                                          \
+
+void die(const char *file, int line, const char *message)
+{
+  fprintf(stderr, "%s:%i: %s\n", file, line, message);
+  exit(1);
+}
+
+void usage(void)
+{
+  printf("Usage: recv [options] <addr>\n");
+  printf("-c    \tPath to the certificate file.\n");
+  printf("-k    \tPath to the private key file.\n");
+  printf("-p    \tPassword for the private key.\n");
+  printf("<addr>\tAn address.\n");
+  exit(0);
+}
+
+int main(int argc, char** argv)
+{
+  char* certificate = NULL;
+  char* privatekey = NULL;
+  char* password = NULL;
+  char* address = (char *) "amqp://~0.0.0.0";
+  int c;
+
+  pn_message_t * message;
+  pn_messenger_t * messenger;
+
+  message = pn_message();
+  messenger = pn_messenger(NULL);
+
+  opterr = 0;
+
+  while((c = getopt(argc, argv, "hc:k:p:")) != -1)
+  {
+    switch(c)
+    {
+    case 'h':
+      usage();
+      break;
+
+    case 'c': certificate = optarg; break;
+    case 'k': privatekey = optarg; break;
+    case 'p': password = optarg; break;
+
+    case '?':
+      if(optopt == 'c' ||
+         optopt == 'k' ||
+         optopt == 'p')
+      {
+        fprintf(stderr, "Option -%c requires an argument.\n", optopt);
+      }
+      else if(isprint(optopt))
+      {
+        fprintf(stderr, "Unknown option `-%c'.\n", optopt);
+      }
+      else
+      {
+        fprintf(stderr, "Unknown option character `\\x%x'.\n", optopt);
+      }
+      return 1;
+    default:
+      abort();
+    }
+  }
+
+  if (optind < argc)
+  {
+    address = argv[optind];
+  }
+
+  /* load the various command line options if they're set */
+  if(certificate)
+  {
+    pn_messenger_set_certificate(messenger, certificate);
+  }
+
+  if(privatekey)
+  {
+    pn_messenger_set_private_key(messenger, privatekey);
+  }
+
+  if(password)
+  {
+    pn_messenger_set_password(messenger, password);
+  }
+
+  pn_messenger_start(messenger);
+  check(messenger);
+
+  pn_messenger_subscribe(messenger, address);
+  check(messenger);
+
+  for(;;)
+  {
+    pn_messenger_recv(messenger, 1024);
+    check(messenger);
+
+    while(pn_messenger_incoming(messenger))
+    {
+      pn_messenger_get(messenger, message);
+      check(messenger);
+
+      {
+      char buffer[1024];
+      size_t buffsize = sizeof(buffer);
+      const char* subject = pn_message_get_subject(message);
+      pn_data_t *body = pn_message_body(message);
+      pn_data_format(body, buffer, &buffsize);
+
+      printf("Address: %s\n", pn_message_get_address(message));
+      printf("Subject: %s\n", subject ? subject : "(no subject)");
+      printf("Content: %s\n", buffer);
+      }
+    }
+  }
+
+  return 0;
+}


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@qpid.apache.org
For additional commands, e-mail: commits-h...@qpid.apache.org

Reply via email to