Bug #3263
closedpeek: does not process Nack
100%
Description
ndnpeek is using a deprecated overload of Face::expressInterest that does not process Nack.
Files
      
      Updated by Junxiao Shi about 10 years ago
      
    
    For ndnpeek, it could simply print the incoming Nack, and exit with a code that differs from Data and timeout.
The Nack should be printed as LpPacket wire encoding to stdout (rather than stderr) so that it can be processed by a script (e.g. with ndn-dissect).
      
      Updated by Junxiao Shi about 10 years ago
      
    
    20151015 conference call rejects note-1 design, because LpPacket is at a lower layer than Data.
Instead, the following design is approved:
- Without 
-poption, the Nack header field should be printed as wire encoding to stdout. - With 
-poption, the NackReason code should be printed to stdout. 
      
      Updated by Junxiao Shi about 10 years ago
      
    
    - Related to Feature #3268: peek: verbose output added
 
      
      Updated by Junxiao Shi almost 10 years ago
      
    
    - Blocks Task #3334: Deprecate Face::expressInterest non-Nack overloads added
 
      
      Updated by Teng Liang over 9 years ago
      
    
    I tried to use the Face::expressInterest that handles nack, and implement the onNack() method to satisfy note-2. The problem was that the following call couldn't find a matching member function. What's the right way to call?
m_face.expressInterest(createInterestPacket(), 
                                           
bind(&NdnPeek::onData, this, _1, _2), 
                                          
bind(&NdnPeek::onNack, this, _1, _2),
                                          
bind(&NdnPeek::onTimeout, this, _1));
                                          
      
      Updated by Teng Liang over 9 years ago
      
    
    - File producer-nack.cpp producer-nack.cpp added
 - Status changed from In Progress to Code review
 
To test the change, the attached file is performed as the producer replies to any Interests with a NACK .
      
      Updated by Davide Pesavento over 9 years ago
      
    
    Teng Liang wrote:
To test the change, the attached file is performed as the producer replies to any Interests with a
NACK.
Can you write a unit test instead?
      
      Updated by Teng Liang over 9 years ago
      
    
    Davide Pesavento wrote:
Can you write a unit test instead?
Currently, ndn-peek.cpp has the symbol _main inside. How about I do a separate commit (or issue) for the unit test? 
      
      Updated by Junxiao Shi over 9 years ago
      
    
    Unit tests should be added in #3558. It can be performed either before or after this issue.
      
      Updated by Junxiao Shi over 9 years ago
      
    
    - Status changed from Code review to Closed
 - % Done changed from 0 to 100
 
      
      Updated by Junxiao Shi over 9 years ago
      
    
    - Related to Bug #3692: integ fails due to inconsideration of Nack added