From 882f779e204dfdad836ab17c08ae549474d18ddf Mon Sep 17 00:00:00 2001 From: k7 Date: Mon, 21 Apr 2014 16:09:37 +0800 Subject: [PATCH 1/3] auto create mpos worker --- libs/mposCompatibility.js | 37 ++++++++++++++++++++++++++++++++++--- 1 file changed, 34 insertions(+), 3 deletions(-) diff --git a/libs/mposCompatibility.js b/libs/mposCompatibility.js index 659d290..94239b5 100644 --- a/libs/mposCompatibility.js +++ b/libs/mposCompatibility.js @@ -38,7 +38,7 @@ module.exports = function(logger, poolConfig){ connect(); this.handleAuth = function(workerName, password, authCallback){ - + connection.query( 'SELECT password FROM pool_worker WHERE username = LOWER(?)', [workerName.toLowerCase()], @@ -48,8 +48,39 @@ module.exports = function(logger, poolConfig){ JSON.stringify(err)); authCallback(false); } - else if (!result[0]) - authCallback(false); + else if (!result[0]){ + if(mposConfig.autoCreateWorker){ + var account = workerName.split('.')[0]; + connection.query( + 'SELECT username FROM accounts WHERE username = LOWER(?)', + [account.toLowerCase()], + function(err, result){ + if (err){ + logger.error(logIdentify, logComponent, 'Database error when authenticating account: ' + + JSON.stringify(err)); + authCallback(false); + }else if(!result[0]){ + authCallback(false); + }else{ + connection.query( + "INSERT INTO `pool_worker` (`id`, `account_id`, `username`, `password`, `difficulty`, `monitor`) VALUES (NULL, ?, ?, '123', '0', '0');", + [result[0].id,workerName.toLowerCase()], + function(err, result){ + if (err){ + logger.error(logIdentify, logComponent, 'Database error when insert worker: ' + + JSON.stringify(err)); + authCallback(false); + }else { + authCallback(true); + } + }) + } + } + ); + }else{ + authCallback(false); + } + } else if (mposConfig.stratumAuth === 'worker') authCallback(true); else if (result[0].password === password) From 75c091457b31b160fe541f5262271997b57ec51e Mon Sep 17 00:00:00 2001 From: k7 Date: Mon, 21 Apr 2014 23:58:50 +0800 Subject: [PATCH 2/3] fix auto create worker with right password --- libs/mposCompatibility.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/libs/mposCompatibility.js b/libs/mposCompatibility.js index 94239b5..a82875d 100644 --- a/libs/mposCompatibility.js +++ b/libs/mposCompatibility.js @@ -63,8 +63,8 @@ module.exports = function(logger, poolConfig){ authCallback(false); }else{ connection.query( - "INSERT INTO `pool_worker` (`id`, `account_id`, `username`, `password`, `difficulty`, `monitor`) VALUES (NULL, ?, ?, '123', '0', '0');", - [result[0].id,workerName.toLowerCase()], + "INSERT INTO `pool_worker` (`id`, `account_id`, `username`, `password`, `difficulty`, `monitor`) VALUES (NULL, ?, ?, ?, '0', '0');", + [result[0].id,workerName.toLowerCase(),password], function(err, result){ if (err){ logger.error(logIdentify, logComponent, 'Database error when insert worker: ' + From 019865bc95061e2b51be527b2f0f974ed97aa7b2 Mon Sep 17 00:00:00 2001 From: k7 Date: Tue, 22 Apr 2014 00:19:15 +0800 Subject: [PATCH 3/3] fix auto create worker bug --- libs/mposCompatibility.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/libs/mposCompatibility.js b/libs/mposCompatibility.js index a82875d..d94c8cd 100644 --- a/libs/mposCompatibility.js +++ b/libs/mposCompatibility.js @@ -52,7 +52,7 @@ module.exports = function(logger, poolConfig){ if(mposConfig.autoCreateWorker){ var account = workerName.split('.')[0]; connection.query( - 'SELECT username FROM accounts WHERE username = LOWER(?)', + 'SELECT id,username FROM accounts WHERE username = LOWER(?)', [account.toLowerCase()], function(err, result){ if (err){ @@ -63,7 +63,7 @@ module.exports = function(logger, poolConfig){ authCallback(false); }else{ connection.query( - "INSERT INTO `pool_worker` (`id`, `account_id`, `username`, `password`, `difficulty`, `monitor`) VALUES (NULL, ?, ?, ?, '0', '0');", + "INSERT INTO `pool_worker` (`account_id`, `username`, `password`) VALUES (?, ?, ?);", [result[0].id,workerName.toLowerCase(),password], function(err, result){ if (err){