/* set default values */
macAddr[0]=deviceName[0]=openTime[0]=gatewayName[0]='\0';
- /* if do not get result yet */
+ /* if session table is not found in management db, return */
+ if(!IsTableFoundInMngDb("sessionmd")) return FALSE;
+
+ /* if do not get result yet (if first call) */
if(res==NULL){
/* prepare query string */
if (mysql_query(&mysql, queryStr)){
/* query error */
- /* might be caused by <SaveLogToMngDb> setting in opengatemd.conf */
+ err_msg("ERR at %s#%d: mysql query: %s",__FILE__,__LINE__,
+ mysql_error(&mysql));
return FALSE;
}
return exists;
}
+/******************************************
+is found table in management db
+input=table name
+return value: 1=found,0=not found or error
+******************************************/
+int isTableFoundInMngDb(char* table){
+ MYSQL_RES *res;
+ MYSQL_ROW row;
+ int found=FALSE;
+ char queryStr[BUFFMAXLN];
+
+ /* if no table, return false */
+ if(isNull(table)) return FALSE;
+
+ /* prepare query string */
+ snprintf(queryStr, BUFFMAXLN,
+ "show tables like '%s'", table);
+
+ /* send SQL query */
+ if (mysql_query(&mysql, queryStr)){
+ err_msg("ERR at %s#%d: mysql query: %s",__FILE__,__LINE__,
+ mysql_error(&mysql));
+ return ERROR;
+ }
+ res = mysql_use_result(&mysql);
+
+ /* output table row */
+ row = mysql_fetch_row(res);
+
+ /* row==NULL means getting no record */
+ if(row==NULL) found=FALSE;
+ else found=TRUE;
+
+ mysql_free_result(res);
+ return found;
+}
+
+
/********************************************
routines for debugging output
********************************************/
if(debug>1) err_msg("DEBUG:(%d)<=doesMacAddrBelongToUser( )",ret);
return ret;
}
+
+int IsTableFoundInMngDb(char* table){
+ int ret;
+ if(debug>1) err_msg("DEBUG:=>isTableFoundInMngDb(%s)", table);
+ ret = isTableFoundInMngDb(table);
+ if(debug>1) err_msg("DEBUG:(%d)<=isTableFoundInMngDb()", ret);
+ return ret;
+}
+