From aa296b8ca63e38cb7d687d36d0cc943404b408cc Mon Sep 17 00:00:00 2001 From: slguan Date: Wed, 6 May 2020 15:15:24 +0800 Subject: [PATCH] #1811 --- src/client/src/tscSql.c | 7 +++++++ src/kit/shell/inc/shell.h | 1 + src/kit/shell/src/shellDarwin.c | 2 +- src/kit/shell/src/shellEngine.c | 2 +- src/kit/shell/src/shellLinux.c | 2 +- src/kit/shell/src/shellWindows.c | 2 +- 6 files changed, 12 insertions(+), 4 deletions(-) diff --git a/src/client/src/tscSql.c b/src/client/src/tscSql.c index 87247d874b..afac69350c 100644 --- a/src/client/src/tscSql.c +++ b/src/client/src/tscSql.c @@ -168,6 +168,13 @@ static void syncConnCallback(void *param, TAOS_RES *tres, int code) { TAOS *taos_connect(const char *ip, const char *user, const char *pass, const char *db, uint16_t port) { tscTrace("try to create a connection to %s", ip); + if (port != 0) { + tsServerPort = port; + tsMnodeShellPort = tsServerPort + TSDB_PORT_MNODESHELL; + tsDnodeShellPort = tsServerPort + TSDB_PORT_DNODESHELL; + tsMnodeDnodePort = tsServerPort + TSDB_PORT_MNODEDNODE; + tsDnodeMnodePort = tsServerPort + TSDB_PORT_DNODEMNODE; + } STscObj *pObj = taosConnectImpl(ip, user, pass, db, port, NULL, NULL, NULL); if (pObj != NULL) { diff --git a/src/kit/shell/inc/shell.h b/src/kit/shell/inc/shell.h index 7abe8a5776..381c6f1dbf 100644 --- a/src/kit/shell/inc/shell.h +++ b/src/kit/shell/inc/shell.h @@ -61,6 +61,7 @@ struct arguments { int threadNum; char* commands; int abort; + int port; }; /**************** Function declarations ****************/ diff --git a/src/kit/shell/src/shellDarwin.c b/src/kit/shell/src/shellDarwin.c index 13513426cd..cd2fe6df33 100644 --- a/src/kit/shell/src/shellDarwin.c +++ b/src/kit/shell/src/shellDarwin.c @@ -81,7 +81,7 @@ void shellParseArgument(int argc, char *argv[], struct arguments *arguments) { // for management port else if (strcmp(argv[i], "-P") == 0) { if (i < argc - 1) { - tsMnodeShellPort = atoi(argv[++i]); + arguments->port = atoi(argv[++i]); } else { fprintf(stderr, "option -P requires an argument\n"); exit(EXIT_FAILURE); diff --git a/src/kit/shell/src/shellEngine.c b/src/kit/shell/src/shellEngine.c index f9ea5f4777..152397c044 100644 --- a/src/kit/shell/src/shellEngine.c +++ b/src/kit/shell/src/shellEngine.c @@ -68,7 +68,7 @@ TAOS *shellInit(struct arguments *args) { tsMeterMetaKeepTimer = 3000; // Connect to the database. - TAOS *con = taos_connect(args->host, args->user, args->password, args->database, tsMnodeShellPort); + TAOS *con = taos_connect(args->host, args->user, args->password, args->database, args->port); if (con == NULL) { return con; } diff --git a/src/kit/shell/src/shellLinux.c b/src/kit/shell/src/shellLinux.c index 22ffa78c81..0d9458e00c 100644 --- a/src/kit/shell/src/shellLinux.c +++ b/src/kit/shell/src/shellLinux.c @@ -63,7 +63,7 @@ static error_t parse_opt(int key, char *arg, struct argp_state *state) { break; case 'P': if (arg) { - tsMnodeShellPort = atoi(arg); + arguments->port = atoi(arg); } else { fprintf(stderr, "Invalid port\n"); return -1; diff --git a/src/kit/shell/src/shellWindows.c b/src/kit/shell/src/shellWindows.c index 8863f4fa46..ac04c593fb 100644 --- a/src/kit/shell/src/shellWindows.c +++ b/src/kit/shell/src/shellWindows.c @@ -61,7 +61,7 @@ void shellParseArgument(int argc, char *argv[], struct arguments *arguments) { // for management port else if (strcmp(argv[i], "-P") == 0) { if (i < argc - 1) { - tsMnodeShellPort = atoi(argv[++i]); + arguments->port = atoi(argv[++i]); } else { fprintf(stderr, "option -P requires an argument\n"); exit(EXIT_FAILURE); -- GitLab