+ switch (code) {
+ case 438: /* CHECK says they have it */
+ case 435: /* IHAVE says they have it */
+ ARTICLE_DEALTWITH(1,unwanted);
+ break;
+
+ case 238: /* CHECK says send it */
+ case 335: /* IHAVE says send it */
+ count_checkedwanted++;
+ Article *art= LIST_REMHEAD(conn->sent);
+ art->checked= 1;
+ LIST_ADDTAIL(conn->queue);
+ break;
+
+ case 235: /* IHAVE says thanks */
+ case 239: /* TAKETHIS says thanks */
+ ARTICLE_DEALTWITH(1,accepted);
+ break;
+
+ case 439: /* TAKETHIS says rejected */
+ case 437: /* IHAVE says rejected */
+ ARTICLE_DEALTWITH(1,rejected);
+ break;
+
+ case 431: /* CHECK or TAKETHIS says try later */
+ case 436: /* IHAVE says try later */
+ ARTICLE_DEALTWITH(0,deferred);
+ break;
+
+ case 400: warn("peer has stopped accepting articles: %s", sani); goto failed;
+ case 503: warn("peer timed us out: %s", sani); goto failed;
+ default: warn("peer sent unexpected message: %s", sani);
+ failed:
+ conn_failed(conn);
+ return OOP_CONTINUE;;
+ }