From 1acf66265f61c08bbd05232d8cd75e28c196f636 Mon Sep 17 00:00:00 2001 From: Peter Conrad Date: Mon, 29 Jun 2015 11:56:30 +0200 Subject: [PATCH 1/2] Allow double hyphens --- libraries/chain/operations.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/libraries/chain/operations.cpp b/libraries/chain/operations.cpp index 65c84c59..3a9029e0 100644 --- a/libraries/chain/operations.cpp +++ b/libraries/chain/operations.cpp @@ -67,8 +67,9 @@ bool is_valid_name( const string& s ) case '/': if( ++num_slash > 1 ) return false; case '.': + if( prev == '-' ) return false; case '-': - if( prev == ' ' || prev == '/' || prev == '.' || prev == '-' ) return false; + if( prev == ' ' || prev == '/' || prev == '.' ) return false; break; default: return false; From 0162a7d87de6f0936380daa9b1a62a9cee9678d5 Mon Sep 17 00:00:00 2001 From: Peter Conrad Date: Mon, 29 Jun 2015 11:56:52 +0200 Subject: [PATCH 2/2] Added more test cases --- tests/tests/basic_tests.cpp | 25 ++++++++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) diff --git a/tests/tests/basic_tests.cpp b/tests/tests/basic_tests.cpp index c19d0b88..951e7695 100644 --- a/tests/tests/basic_tests.cpp +++ b/tests/tests/basic_tests.cpp @@ -41,13 +41,36 @@ using namespace graphene::db; BOOST_FIXTURE_TEST_SUITE( basic_tests, database_fixture ) -/** verify that names are +/** verify that names are RFC-1035 compliant https://tools.ietf.org/html/rfc1035 * https://github.com/cryptonomex/graphene/issues/15 */ BOOST_AUTO_TEST_CASE( valid_name_test ) { BOOST_REQUIRE( is_valid_name( "aaa-bbb-1" ) ); + + BOOST_REQUIRE( !is_valid_name( "aaa,bbb-1" ) ); + BOOST_REQUIRE( !is_valid_name( "aaa_bbb-1" ) ); + BOOST_REQUIRE( !is_valid_name( "aaa-BBB-1" ) ); + BOOST_REQUIRE( !is_valid_name( "1aaa-bbb" ) ); + BOOST_REQUIRE( !is_valid_name( "-aaa-bbb-1" ) ); + BOOST_REQUIRE( !is_valid_name( ".aaa-bbb-1" ) ); + BOOST_REQUIRE( !is_valid_name( "/aaa-bbb-1" ) ); + + BOOST_REQUIRE( !is_valid_name( "aaa-bbb-1-" ) ); + BOOST_REQUIRE( !is_valid_name( "aaa-bbb-1." ) ); + BOOST_REQUIRE( !is_valid_name( "aaa-bbb-1/" ) ); + + BOOST_REQUIRE( !is_valid_name( "aaa..bbb-1" ) ); + BOOST_REQUIRE( is_valid_name( "aaa.bbb-1" ) ); + BOOST_REQUIRE( !is_valid_name( "aaa.bbb.1" ) ); + + BOOST_REQUIRE( is_valid_name( "aaa--bbb--1" ) ); + BOOST_REQUIRE( is_valid_name( "xn--sandmnnchen-p8a.de" ) ); + + BOOST_REQUIRE( is_valid_name( "this-label-has-less-than-64-characters--63-to-be-really-precise" ) ); + BOOST_REQUIRE( !is_valid_name( "this-label-has-more-than-63-characters---64-to-be-really-precise" ) ); + BOOST_REQUIRE( !is_valid_name( "none.of.these.labels.has.more.than-63.chars--but.still.not.valid" ) ); } BOOST_AUTO_TEST_CASE( price_test )