On 2015-06-05 01:13, Richard Hansen wrote:
> Hi David,
> 
> Thanks for the changes.  Everything looks like it's in working order,
> except for one error handling bug in commit #4 (see my reply for commit
> #4, which I will send shortly).

Assuming you're referring to your comment "this should be 'return
false' (-1 is true)", fixed.


> There are a bunch of issues/bugs that shouldn't affect proper operation,
> but would be cleaned up in an ideal world (read: if the time it would
> take to clean them up was worthwhile).  Here is a summary of the bigger
> items:
> 
>   * These changes introduce a LOT of duplicated code.

When I originally wrote it, I spent a little time trying to find a way
around this, but I couldn't think of anything. At some point, somebody
should try again. I filed a ticket internally.

>   * Most of the commits should be split into multiple separate
>     commits.  This is especially true for commit #4.

That would be ideal, but we're a bit tight on time at the moment. I
don't think this is worth the amount of time it would take for these
commits.

>   * Type mismatches for database API (uint32_t when it should be
>     unsigned int, uint64_t when it should be unsigned long long,
>     uint8_t when it should be unsigned char, etc.).

Fixed.

>   * Potential alignment/padding/offset issues in fillPduIpPrefix()

Fixed.

>   * The code makes an assumption that you can always distinguish
>     address families via address length.

As long as we have only IPv4 and IPv6, this is true. I don't think
it's worth spending the time now to remove this assumption, but I
filed an internal ticket to fix this in the future.

>   * Lots of verbiage could be eliminated via initializer lists.

True, but I don't think it's worth spending the time now to change. I
filed an internal ticket.


> I'll reply in-line to each patch pointing out specific issues, but most
> of the issues are minor enough to not be worth fixing now.  (This is
> especially true given that we want to get a release out very soon.)  We
> can clean things up later (after these commits are merged and we've cut
> a new release), though some of the issues may not ever be worth fixing.
>  I'll leave it to your judgment to decide which are worth fixing and
> which are not.
> 
> A comment about my review style:  When I ask a question like:
> 
>     What about foo?
> 
> I'm mostly trying to convey:
> 
>     Is this a bug or intentional?  If intentional, someone reading this
>     code might wonder to themselves, 'What about foo?', so there should
>     be a supporting comment.
> 
> In other words, don't tell me the answer to the question, tell all of
> the people that could potentially read the code.

Thanks for your detailed review. I think I've addressed all the
issues via a combination of code fixes, discussion, and new tickets.


David Mandelberg (7):
  improve the schema for prefixes
  use new schema when inserting ROAs
  use new schema when querying ROAs
  partially rewrite bin/rpki-rtr/rtr-update.c
  use the new schema when querying rpki-rtr data
  update rpki-rtr tests based on recent changes
  make rpki-rtr database error messages more useful

Richard Hansen (1):
  improvements to shell logging and error handling functions

 bin/rpki-rtr/rtr-update.c                          |  467 +-
 bin/rpki/query.c                                   |    4 +-
 bin/rpki/upgrade.in                                |   88 +-
 lib/db/clients/rtr.c                               | 1046 ++-
 lib/db/clients/rtr.h                               |  134 +
 lib/db/prep-stmt.c                                 |  110 +-
 lib/db/prep-stmt.h                                 |   14 +
 lib/db/util.c                                      |   89 +
 lib/db/util.h                                      |   88 +
 lib/rpki-rtr/pdu.h                                 |    2 +
 lib/rpki/cms/roa_general.c                         |  195 +-
 lib/rpki/cms/roa_utils.h                           |   33 +-
 lib/rpki/err.c                                     |    1 +
 lib/rpki/err.h                                     |    3 +-
 lib/rpki/querySupport.c                            |  250 +-
 lib/rpki/querySupport.h                            |    4 +-
 lib/rpki/scmf.h                                    |    4 +-
 lib/rpki/scmmain.h                                 |   54 +-
 lib/rpki/sqcon.c                                   |    4 +-
 lib/rpki/sqhl.c                                    |  206 +-
 lib/util/macros.h                                  |    8 +
 lib/util/shell_utils                               |   74 +-
 mk/libdb.mk                                        |    1 +
 mk/rpki-rtr.mk                                     |   65 +-
 .../rtr/response.bad_pdu_usage.log.correct         |    4 +-
 .../rtr/response.many_prefixes.log.correct         | 8204 ++++++++++++++++++++
 .../rtr/response.reset_query_first.log.correct     |   48 +-
 .../rtr/response.reset_query_last.log.correct      |   28 +-
 .../rtr/response.serial_notify.log.correct         |   12 +-
 .../rtr/response.serial_queries.log.correct        |  340 +-
 tests/subsystem/rtr/test.sh.in                     |   11 +-
 31 files changed, 10689 insertions(+), 902 deletions(-)
 create mode 100644 tests/subsystem/rtr/response.many_prefixes.log.correct

-- 
1.9.1


------------------------------------------------------------------------------
_______________________________________________
rpstir-devel mailing list
rpstir-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/rpstir-devel

Reply via email to