diff options
author | Nirbhay Choubey <nirbhay@mariadb.com> | 2015-04-15 11:12:12 -0400 |
---|---|---|
committer | Nirbhay Choubey <nirbhay@mariadb.com> | 2015-04-15 11:12:12 -0400 |
commit | d051f6c36beaf6c7ea269d6c174cca7482f3e823 (patch) | |
tree | f95ca0530ddf32ac6d9826b444fb9c62822dc044 /sql/wsrep_sst.cc | |
parent | a1f3356bf375495e29faabedd01dce0736d20993 (diff) | |
download | mariadb-git-d051f6c36beaf6c7ea269d6c174cca7482f3e823.tar.gz |
MDEV-6594: Use separate domain_id for Galera transactions
Post-fix : A typo and better error handling.
Diffstat (limited to 'sql/wsrep_sst.cc')
-rw-r--r-- | sql/wsrep_sst.cc | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/sql/wsrep_sst.cc b/sql/wsrep_sst.cc index 512e8f23dd8..d37c6c0e96c 100644 --- a/sql/wsrep_sst.cc +++ b/sql/wsrep_sst.cc @@ -451,7 +451,7 @@ static void* sst_joiner_thread (void* a) } else { // Scan state ID first followed by wsrep_gtid_domain_id. char uuid[512]; - uint32 domain_id; + long int domain_id; size_t len= pos - out + 1; if (len > sizeof(uuid)) goto err; // safety check @@ -464,14 +464,18 @@ static void* sst_joiner_thread (void* a) } else if (wsrep_gtid_mode) { + errno= 0; /* Reset the errno */ domain_id= strtol(pos + 1, NULL, 10); - if (domain_id < 1000 || domain_id > 0xFFFF) + err= errno; + + /* Check if we received a valid gtid_domain_id. */ + if (err == EINVAL || err == ERANGE || domain_id < 0x0 || domain_id > 0xFFFF) { WSREP_ERROR("Failed to get donor wsrep_gtid_domain_id."); err= EINVAL; goto err; } else { - wsrep_gtid_domain_id= domain_id; + wsrep_gtid_domain_id= (uint32) domain_id; } } } |