summaryrefslogtreecommitdiff
path: root/ndb/src/mgmapi/mgmapi.cpp
diff options
context:
space:
mode:
authorunknown <stewart@mysql.com>2005-08-19 00:39:56 +1000
committerunknown <stewart@mysql.com>2005-08-19 00:39:56 +1000
commitb0dee441164b751c6393f08319c063a1a70d0e32 (patch)
tree00418d060ffeeaebd17a35fa1eb91f2e29961cc6 /ndb/src/mgmapi/mgmapi.cpp
parentf2727ff26a160f981d300edd6cba79e49867db58 (diff)
parent749f599efa81de151401d0af33c4b31292727b15 (diff)
downloadmariadb-git-b0dee441164b751c6393f08319c063a1a70d0e32.tar.gz
merge fix
ndb/src/mgmapi/mgmapi.cpp: merge
Diffstat (limited to 'ndb/src/mgmapi/mgmapi.cpp')
-rw-r--r--ndb/src/mgmapi/mgmapi.cpp70
1 files changed, 42 insertions, 28 deletions
diff --git a/ndb/src/mgmapi/mgmapi.cpp b/ndb/src/mgmapi/mgmapi.cpp
index 9f393d10528..6551ca24ee2 100644
--- a/ndb/src/mgmapi/mgmapi.cpp
+++ b/ndb/src/mgmapi/mgmapi.cpp
@@ -101,6 +101,7 @@ struct ndb_mgm_handle {
#ifdef MGMAPI_LOG
FILE* logfile;
#endif
+ FILE *errstream;
};
#define SET_ERROR(h, e, s) setError(h, e, __LINE__, s)
@@ -154,6 +155,7 @@ ndb_mgm_create_handle()
h->read_timeout = 50000;
h->write_timeout = 100;
h->cfg_i = -1;
+ h->errstream = stdout;
strncpy(h->last_error_desc, "No error", NDB_MGM_MAX_ERR_DESC_SIZE);
@@ -219,6 +221,13 @@ ndb_mgm_destroy_handle(NdbMgmHandle * handle)
DBUG_VOID_RETURN;
}
+extern "C"
+void
+ndb_mgm_set_error_stream(NdbMgmHandle handle, FILE * file)
+{
+ handle->errstream = file;
+}
+
/*****************************************************************************
* Error handling
*****************************************************************************/
@@ -424,8 +433,8 @@ ndb_mgm_connect(NdbMgmHandle handle, int no_retries,
#endif
if (verbose > 0) {
char buf[1024];
- ndbout_c("Unable to connect with connect string: %s",
- cfg.makeConnectString(buf,sizeof(buf)));
+ fprintf(handle->errstream, "Unable to connect with connect string: %s\n",
+ cfg.makeConnectString(buf,sizeof(buf)));
verbose= -1;
}
if (no_retries == 0) {
@@ -434,32 +443,35 @@ ndb_mgm_connect(NdbMgmHandle handle, int no_retries,
"Unable to connect with connect string: %s",
cfg.makeConnectString(buf,sizeof(buf)));
if (verbose == -2)
- ndbout << ", failed." << endl;
+ fprintf(handle->errstream, ", failed.\n");
DBUG_RETURN(-1);
}
if (verbose == -1) {
- ndbout << "Retrying every " << retry_delay_in_seconds << " seconds";
+ fprintf(handle->errstream, "Retrying every %d seconds",
+ retry_delay_in_seconds);
if (no_retries > 0)
- ndbout << ". Attempts left:";
+ fprintf(handle->errstream, ". Attempts left:");
else
- ndbout << ", until connected.";;
- ndbout << flush;
+ fprintf(handle->errstream, ", until connected.");
+ fflush(handle->errstream);
verbose= -2;
}
if (no_retries > 0) {
if (verbose == -2) {
- ndbout << " " << no_retries;
- ndbout << flush;
+ fprintf(handle->errstream, " %d", no_retries);
+ fflush(handle->errstream);
}
no_retries--;
}
NdbSleep_SecSleep(retry_delay_in_seconds);
}
if (verbose == -2)
- ndbout << endl;
-
+ {
+ fprintf(handle->errstream, "\n");
+ fflush(handle->errstream);
+ }
handle->cfg_i = i;
-
+
handle->socket = sockfd;
handle->connected = 1;
@@ -511,7 +523,9 @@ ndb_mgm_match_node_type(const char * type)
for(int i = 0; i<no_of_type_values; i++)
if(strcmp(type, type_values[i].str) == 0)
return type_values[i].value;
-
+ else if(strcmp(type, type_values[i].alias) == 0)
+ return type_values[i].value;
+
return NDB_MGM_NODE_TYPE_UNKNOWN;
}
@@ -1720,28 +1734,28 @@ ndb_mgm_get_configuration(NdbMgmHandle handle, unsigned int version) {
do {
const char * buf;
if(!prop->get("result", &buf) || strcmp(buf, "Ok") != 0){
- ndbout_c("ERROR Message: %s\n", buf);
+ fprintf(handle->errstream, "ERROR Message: %s\n\n", buf);
break;
}
buf = "<Unspecified>";
if(!prop->get("Content-Type", &buf) ||
strcmp(buf, "ndbconfig/octet-stream") != 0){
- ndbout_c("Unhandled response type: %s", buf);
+ fprintf(handle->errstream, "Unhandled response type: %s\n", buf);
break;
}
buf = "<Unspecified>";
if(!prop->get("Content-Transfer-Encoding", &buf)
|| strcmp(buf, "base64") != 0){
- ndbout_c("Unhandled encoding: %s", buf);
+ fprintf(handle->errstream, "Unhandled encoding: %s\n", buf);
break;
}
buf = "<Content-Length Unspecified>";
Uint32 len = 0;
if(!prop->get("Content-Length", &len)){
- ndbout_c("Invalid response: %s\n", buf);
+ fprintf(handle->errstream, "Invalid response: %s\n\n", buf);
break;
}
@@ -1766,14 +1780,14 @@ ndb_mgm_get_configuration(NdbMgmHandle handle, unsigned int version) {
const int res = base64_decode(buf64, len-1, tmp);
delete[] buf64;
if(res != 0){
- ndbout_c("Failed to decode buffer");
+ fprintf(handle->errstream, "Failed to decode buffer\n");
break;
}
ConfigValuesFactory cvf;
const int res2 = cvf.unpack(tmp);
if(!res2){
- ndbout_c("Failed to unpack buffer");
+ fprintf(handle->errstream, "Failed to unpack buffer\n");
break;
}
@@ -1883,7 +1897,7 @@ ndb_mgm_alloc_nodeid(NdbMgmHandle handle, unsigned int version, int nodetype)
}
Uint32 _nodeid;
if(!prop->get("nodeid", &_nodeid) != 0){
- ndbout_c("ERROR Message: <nodeid Unspecified>\n");
+ fprintf(handle->errstream, "ERROR Message: <nodeid Unspecified>\n");
break;
}
nodeid= _nodeid;
@@ -1959,7 +1973,7 @@ ndb_mgm_set_int_parameter(NdbMgmHandle handle,
do {
const char * buf;
if(!prop->get("result", &buf) || strcmp(buf, "Ok") != 0){
- ndbout_c("ERROR Message: %s\n", buf);
+ fprintf(handle->errstream, "ERROR Message: %s\n", buf);
break;
}
res= 0;
@@ -2002,7 +2016,7 @@ ndb_mgm_set_int64_parameter(NdbMgmHandle handle,
do {
const char * buf;
if(!prop->get("result", &buf) || strcmp(buf, "Ok") != 0){
- ndbout_c("ERROR Message: %s\n", buf);
+ fprintf(handle->errstream, "ERROR Message: %s\n", buf);
break;
}
res= 0;
@@ -2045,7 +2059,7 @@ ndb_mgm_set_string_parameter(NdbMgmHandle handle,
do {
const char * buf;
if(!prop->get("result", &buf) || strcmp(buf, "Ok") != 0){
- ndbout_c("ERROR Message: %s\n", buf);
+ fprintf(handle->errstream, "ERROR Message: %s\n", buf);
break;
}
res= 0;
@@ -2082,7 +2096,7 @@ ndb_mgm_purge_stale_sessions(NdbMgmHandle handle, char **purged){
do {
const char * buf;
if(!prop->get("result", &buf) || strcmp(buf, "Ok") != 0){
- ndbout_c("ERROR Message: %s\n", buf);
+ fprintf(handle->errstream, "ERROR Message: %s\n", buf);
break;
}
if (purged) {
@@ -2164,7 +2178,7 @@ ndb_mgm_set_connection_int_parameter(NdbMgmHandle handle,
do {
const char * buf;
if(!prop->get("result", &buf) || strcmp(buf, "Ok") != 0){
- ndbout_c("ERROR Message: %s\n", buf);
+ fprintf(handle->errstream, "ERROR Message: %s\n", buf);
break;
}
res= 0;
@@ -2206,14 +2220,14 @@ ndb_mgm_get_connection_int_parameter(NdbMgmHandle handle,
do {
const char * buf;
if(!prop->get("result", &buf) || strcmp(buf, "Ok") != 0){
- ndbout_c("ERROR Message: %s\n", buf);
+ fprintf(handle->errstream, "ERROR Message: %s\n", buf);
break;
}
res= 0;
} while(0);
if(!prop->get("value",(Uint32*)value)){
- ndbout_c("Unable to get value");
+ fprintf(handle->errstream, "Unable to get value\n");
res = -4;
}
@@ -2265,7 +2279,7 @@ ndb_mgm_get_mgmd_nodeid(NdbMgmHandle handle)
CHECK_REPLY(prop, 0);
if(!prop->get("nodeid",&nodeid)){
- ndbout_c("Unable to get value");
+ fprintf(handle->errstream, "Unable to get value\n");
return 0;
}