diff -r -N --context SteelBlue-2.0b1/src/Login.cpp SteelBlue-2.0b2/src/Login.cpp *** SteelBlue-2.0b1/src/Login.cpp Thu Jun 22 00:33:28 2000 --- SteelBlue-2.0b2/src/Login.cpp Fri Jul 21 19:46:06 2000 *************** *** 106,112 **** string tic; char temp[200]; time_t t; - int r; char query[255]; Result * res; AssocArray * row; --- 106,111 ---- *************** *** 115,123 **** t = time (&t); srand(t); while(!found){ ! r = rand(); ! r = r % 10000; ! sprintf (temp , "%d", r ); found = 1; sprintf(query,"select ticket from %s where ticket = '%s'", (config->getTicketTable()).c_str(), temp); --- 114,132 ---- t = time (&t); srand(t); while(!found){ ! // Make a key in the form A#A#A#A#A# where A is a capital letter and ! // # is a number ! sprintf (temp , "%c%c%c%c%c%c%c%c%c%c", ! (rand() % 26) + 65, ! (rand() % 10) + 48, ! (rand() % 26) + 65, ! (rand() % 10) + 48, ! (rand() % 26) + 65, ! (rand() % 10) + 48, ! (rand() % 26) + 65, ! (rand() % 10) + 48, ! (rand() % 26) + 65, ! (rand() % 10) + 48); found = 1; sprintf(query,"select ticket from %s where ticket = '%s'", (config->getTicketTable()).c_str(), temp); diff -r -N --context SteelBlue-2.0b1/src/Makefile SteelBlue-2.0b2/src/Makefile *** SteelBlue-2.0b1/src/Makefile Fri Jun 9 15:18:47 2000 --- SteelBlue-2.0b2/src/Makefile Fri Jul 21 19:46:06 2000 *************** *** 20,30 **** # Pick a Database....uncomment at least one of the following: # # USE_MSQL = 1 ! USE_MYSQL = 1 # USE_ORACLE = 1 # USE_ORACLE8 = 1 # USE_PGSQL = 1 # USE_SYBASE = 1 # NONE = 1 ####################################### --- 20,31 ---- # Pick a Database....uncomment at least one of the following: # # USE_MSQL = 1 ! USE_MYSQL = 1 # USE_ORACLE = 1 # USE_ORACLE8 = 1 # USE_PGSQL = 1 # USE_SYBASE = 1 + # USE_ODBC = 1 # NONE = 1 ####################################### *************** *** 75,80 **** --- 76,87 ---- # Database configurations. Please modify the include and library # directories to match your particular database configuration. # + ifdef USE_ODBC + ODBC_DB_DEF = -D USE_ODBC + ODBCLINK = -L/usr/local/lib -lodbc + ODBCINC = -I/usr/local/include + endif + # ifdef USE_MYSQL MY_DB_DEF = -D USE_MYSQL MYSQLLINK = -L/usr/local/mysql/lib -L/usr/local/lib/mysql -L/usr/lib/mysql -lmysqlclient *************** *** 119,126 **** SYBASEINC = -I/usr/local/sybase/include -I/usr/include/sybase endif ! DB_LINK = $(MYSQLLINK) $(MSQLLINK) $(ORACLELINK) $(PGSQLLINK) $(SYBASELINK) ! DB_DEF = $(MY_DB_DEF) $(M_DB_DEF) $(O_DB_DEF) $(PG_DB_DEF) $(SYB_DB_DEF) # ####################################### --- 126,133 ---- SYBASEINC = -I/usr/local/sybase/include -I/usr/include/sybase endif ! DB_LINK = $(MYSQLLINK) $(MSQLLINK) $(ORACLELINK) $(PGSQLLINK) $(SYBASELINK) $(ODBCLINK) ! DB_DEF = $(MY_DB_DEF) $(M_DB_DEF) $(O_DB_DEF) $(PG_DB_DEF) $(SYB_DB_DEF) $(ODBC_DB_DEF) # ####################################### *************** *** 157,163 **** LIBFLAGS = $(DB_LINK) $(SOLARISFLAGS) $(LINUXFLAGS) $(DUNIXFLAGS) $(LIBSBLINK) $(LIBFCGI) $(LIBCORBA) ! INCFLAGS = $(MYSQLINC) $(ORACLEINC) $(MSQLINC) $(INCCORBA) $(PGSQLINC) $(SYBASEINC) # Definatly define an operating system DEFS = -D DEBUG $(DB_DEF) $(NO_LEAK) $(FCGIDEFS) $(CORBADEFS) $(LINUXDEFINES) $(DUNIXDEFINES) $(NO_CRYPT) --- 164,170 ---- LIBFLAGS = $(DB_LINK) $(SOLARISFLAGS) $(LINUXFLAGS) $(DUNIXFLAGS) $(LIBSBLINK) $(LIBFCGI) $(LIBCORBA) ! INCFLAGS = $(MYSQLINC) $(ORACLEINC) $(MSQLINC) $(INCCORBA) $(PGSQLINC) $(SYBASEINC) $(ODBCINC) # Definatly define an operating system DEFS = -D DEBUG $(DB_DEF) $(NO_LEAK) $(FCGIDEFS) $(CORBADEFS) $(LINUXDEFINES) $(DUNIXDEFINES) $(NO_CRYPT) *************** *** 187,193 **** SYBASE_DB_OBJECTS = SYBASEDBGate.o SYBASEResult.o endif ! DB_OBJECTS = $(MSQL_DB_OBJECTS) $(MYSQL_DB_OBJECTS) $(ORACLE_DB_OBJECTS) $(DB_COMMON) $(PGSQL_DB_OBJECTS) $(SYBASE_DB_OBJECTS) ifdef USE_CORBA CORBA_OBJECTS = $(OMNIORB_BASE_DIR)/src/examples/Swap/CorbaCltSwap.o $(OMNIORB_BASE_DIR)/stub/CorbaSwapSK.o $(OMNIORB_BASE_DIR)/stub/CorbaSwapDynSK.o --- 194,204 ---- SYBASE_DB_OBJECTS = SYBASEDBGate.o SYBASEResult.o endif ! ifdef USE_ODBC ! ODBC_DB_OBJECTS = ODBCDBGate.o ODBCResult.o ! endif ! ! DB_OBJECTS = $(MSQL_DB_OBJECTS) $(MYSQL_DB_OBJECTS) $(ORACLE_DB_OBJECTS) $(DB_COMMON) $(PGSQL_DB_OBJECTS) $(SYBASE_DB_OBJECTS) $(ODBC_DB_OBJECTS) ifdef USE_CORBA CORBA_OBJECTS = $(OMNIORB_BASE_DIR)/src/examples/Swap/CorbaCltSwap.o $(OMNIORB_BASE_DIR)/stub/CorbaSwapSK.o $(OMNIORB_BASE_DIR)/stub/CorbaSwapDynSK.o *************** *** 316,321 **** --- 327,338 ---- mysqlDBGate.o: mysqlDBGate.cpp DBGate.h mysqlResult.h DBError.h BaseError.h $(CC) $(CFLAGS) $(INCFLAGS) $(DEFS) $(EXCEPTIONS_FLAG) -c mysqlDBGate.cpp + + ODBCResult.o: ODBCResult.cpp Result.h DBError.h BaseError.h + $(CC) $(CFLAGS) $(INCFLAGS) $(DEFS) -c ODBCResult.cpp + + ODBCDBGate.o: ODBCDBGate.cpp DBGate.h PGSQLResult.h DBError.h BaseError.h + $(CC) $(CFLAGS) $(INCFLAGS) $(DEFS) $(EXCEPTIONS_FLAG) -c ODBCDBGate.cpp PGSQLResult.o: PGSQLResult.cpp Result.h DBError.h BaseError.h $(CC) $(CFLAGS) $(INCFLAGS) $(DEFS) -c PGSQLResult.cpp diff -r -N --context SteelBlue-2.0b1/src/ODBCDBGate.cpp SteelBlue-2.0b2/src/ODBCDBGate.cpp *** SteelBlue-2.0b1/src/ODBCDBGate.cpp Thu Jun 22 00:33:30 2000 --- SteelBlue-2.0b2/src/ODBCDBGate.cpp Fri Jul 21 19:46:06 2000 *************** *** 52,57 **** --- 52,62 ---- catch (DBError dbe){ // Do absolutely nothing } + // + // this is a good idea before removing the connection handle + // + SQLDisconnect(hdbc); + SQLFreeHandle(SQL_HANDLE_DBC,hdbc); } *************** *** 62,68 **** void ODBCDBGate::login (char * sys, char * dbname , char * username , char * password) { SQLRETURN nResult; // return code ! if (henv == NULL) { // Must allocate envoronment if (SQLAllocHandle(SQL_HANDLE_ENV,SQL_NULL_HANDLE,&henv) != SQL_SUCCESS){ throw (DBError("Unable to allocate ODBC environment")); } --- 67,73 ---- void ODBCDBGate::login (char * sys, char * dbname , char * username , char * password) { SQLRETURN nResult; // return code ! if (henv == (SQLHENV)NULL) { // Must allocate envoronment if (SQLAllocHandle(SQL_HANDLE_ENV,SQL_NULL_HANDLE,&henv) != SQL_SUCCESS){ throw (DBError("Unable to allocate ODBC environment")); } diff -r -N --context SteelBlue-2.0b1/src/ODBCResult.cpp SteelBlue-2.0b2/src/ODBCResult.cpp *** SteelBlue-2.0b1/src/ODBCResult.cpp Thu Jun 22 00:33:30 2000 --- SteelBlue-2.0b2/src/ODBCResult.cpp Fri Jul 21 19:46:06 2000 *************** *** 31,38 **** --- 31,43 ---- void ODBCdumpError(SQLRETURN nResult, SQLSMALLINT fHandleType, SQLHANDLE handle){ + #ifdef WIN32 SQLTCHAR szErrState[SQL_SQLSTATE_SIZE+1]; // SQL Error State string SQLTCHAR szErrText[SQL_MAX_MESSAGE_LENGTH+1]; // SQL Error Text string + #else + SQLCHAR szErrState[SQL_SQLSTATE_SIZE+1]; // SQL Error State string + SQLCHAR szErrText[SQL_MAX_MESSAGE_LENGTH+1]; // SQL Error Text string + #endif char szBuffer[SQL_SQLSTATE_SIZE+SQL_MAX_MESSAGE_LENGTH+256]; SQLSMALLINT wErrMsgLen; // Error message length SQLINTEGER dwErrCode; // Native Error code *************** *** 68,74 **** --- 73,83 ---- bind_len = (SQLINTEGER *) malloc ((numcols + 1) * sizeof(SQLINTEGER)); colnames = (string **) malloc ( (numcols+1) * sizeof (string *)); for (i = 0; i < numcols; i++) { + #ifdef WIN32 SQLDescribeCol(hstmt,i+1,(SQLTCHAR *)temp_colname,ODBC_MAX_COLNAME, + #else + SQLDescribeCol(hstmt,i+1,(SQLCHAR *)temp_colname,ODBC_MAX_COLNAME, + #endif &NameLength,&DataType,&ColumnSize,&DecimalDigits,&Nullable); colnames [i] = new string (temp_colname); bind_locs [i] = (char *) malloc ((ColumnSize + 1) * sizeof(char)); diff -r -N --context SteelBlue-2.0b1/src/ODBCResult.h SteelBlue-2.0b2/src/ODBCResult.h *** SteelBlue-2.0b1/src/ODBCResult.h Thu Jun 22 00:33:30 2000 --- SteelBlue-2.0b2/src/ODBCResult.h Fri Jul 21 19:46:06 2000 *************** *** 9,17 **** --- 9,20 ---- #ifdef USE_ODBC #include "containers.h" + #ifdef _WIN32 #include + #endif #include "sql.h" #include "sqlext.h" + #include "sqltypes.h" #include "Result.h" // Used to hold the max colname we can receive *************** *** 47,50 **** #endif ! #endif \ No newline at end of file --- 50,53 ---- #endif ! #endif diff -r -N --context SteelBlue-2.0b1/src/install/SteelBlue_2.0b2_mysql.spec SteelBlue-2.0b2/src/install/SteelBlue_2.0b2_mysql.spec *** SteelBlue-2.0b1/src/install/SteelBlue_2.0b2_mysql.spec Wed Dec 31 19:00:00 1969 --- SteelBlue-2.0b2/src/install/SteelBlue_2.0b2_mysql.spec Mon Jul 24 19:36:53 2000 *************** *** 0 **** --- 1,40 ---- + Summary: The SteelBlue appserver install for MySQL + Name: SteelBlue + Version: 2.0b2 + Release: mysql_1 + Vendor: Turner Consulting Group + Copyright: commercial + Group: Application/Internet + Requires: MySQL + URL: http://www.steelblue.com/ + Packager: Robert Buccigrossi + Prefix: /opt + Source: SteelBlue_2.0b2.tar.gz + patch0: SteelBlue_2.0b2_mysql.patch + %description + A Web application server designed to integrate relational database + access, security, complex business rules, and HTML. + + This particular install creates a mySQL SteelBlue installation in + /opt/steelblue. + + %prep + %setup + %patch + + %build + cd src + make steelblue + + %install + cd src + make install + make docs + + %post + + %postun + + %files + %doc doc examples schema INSTALL.TXT LICENSE.TXT + /opt/steelblue diff -r -N --context SteelBlue-2.0b1/src/install/SteelBlue_2.0b2_mysql_auto.spec SteelBlue-2.0b2/src/install/SteelBlue_2.0b2_mysql_auto.spec *** SteelBlue-2.0b1/src/install/SteelBlue_2.0b2_mysql_auto.spec Wed Dec 31 19:00:00 1969 --- SteelBlue-2.0b2/src/install/SteelBlue_2.0b2_mysql_auto.spec Mon Jul 24 19:36:53 2000 *************** *** 0 **** --- 1,84 ---- + Summary: The SteelBlue appserver install for MySQL + Name: SteelBlue + Version: 2.0b2 + Release: mysql_auto_1 + Vendor: Turner Consulting Group + Copyright: commercial + Group: Application/Internet + Requires: MySQL + URL: http://www.steelblue.com/ + Packager: Robert Buccigrossi + Prefix: /opt + Source: SteelBlue_2.0b2.tar.gz + patch0: SteelBlue_2.0b2_mysql_auto.patch + %description + A Web application server designed to integrate relational database + access, security, complex business rules, and HTML. + + This particular install creates a mySQL DB "STEELBLUE" and installs + the executable to the default Apache cgi-bin and html directories + as well as in /opt/steelblue. + + For installation, the environment variables OWNER, GROUP, CGI_BIN, + and HTDOCS_DIR can be set to override the defaults. + + For uninstallation, the environment variables CGI_BIN, HTDOCS_DIR, + and NO_REMOVE_DB can be set to override the defaults. By default + the STEELBLUE database is removed. The database can be kept by + setting NO_REMOVE_DB to a non-empty value. + + %prep + %setup + %patch + + %build + cd src + make steelblue + make docs + + %install + cd src + make install + + %post + PATH=${PATH}:/usr/bin:/usr/local/bin + OWNER=${OWNER:-"nobody"} + GROUP=${GROUP:-"nobody"} + CGI_BIN=${CGI_BIN:-"/home/httpd/cgi-bin/"} + HTDOCS_DIR=${HTDOCS_DIR:-"/home/httpd/html/"} + + if (! test -d $CGI_BIN); then + echo "CGI_BIN ($CGI_BIN) is an invalid directory" + exit 1 + fi; + + if (! test -d $HTDOCS_DIR); then + echo "HTDOCS_DIR ($HTDOCS_DIR) is an invalid directory" + exit 1 + fi; + + install -v -s --mode=755 --group=$GROUP --owner=$OWNER /opt/steelblue/steelblue $CGI_BIN + install -v --mode=755 --group=$GROUP --owner=$OWNER /opt/steelblue/steelblue.conf $CGI_BIN + install -v -d --mode=755 --group=$GROUP --owner=$OWNER $HTDOCS_DIR/scripts + install -v --mode=444 --group=$GROUP --owner=$OWNER /opt/steelblue/CheckUtils.js $HTDOCS_DIR/scripts + + mysqladmin create STEELBLUE + /usr/bin/mysql -u root STEELBLUE < /usr/doc/SteelBlue-2.0b2/schema/mySQL.schema.sql + + %postun + PATH=${PATH}:/usr/bin:/usr/local/bin + CGI_BIN=${CGI_BIN:-"/home/httpd/cgi-bin/"} + HTDOCS_DIR=${HTDOCS_DIR:-"/home/httpd/html/"} + + rm -f $CGI_BIN/steelblue + rm -f $CGI_BIN/steelblue.conf + rm -f $HTDOCS_DIR/scripts/CheckUtils.js + rmdir $HTDOCS_DIR/scripts + + if (! test $NO_REMOVE_DB); then + /usr/bin/mysqladmin -f drop STEELBLUE + fi + + %files + %doc doc examples schema INSTALL.TXT LICENSE.TXT + /opt/steelblue diff -r -N --context SteelBlue-2.0b1/src/install/SteelBlue_2.0b2_psql.spec SteelBlue-2.0b2/src/install/SteelBlue_2.0b2_psql.spec *** SteelBlue-2.0b1/src/install/SteelBlue_2.0b2_psql.spec Wed Dec 31 19:00:00 1969 --- SteelBlue-2.0b2/src/install/SteelBlue_2.0b2_psql.spec Mon Jul 24 19:36:53 2000 *************** *** 0 **** --- 1,40 ---- + Summary: The SteelBlue appserver install for Postgres + Name: SteelBlue + Version: 2.0b2 + Release: psql_1 + Vendor: Turner Consulting Group + Copyright: commercial + Group: Application/Internet + Requires: postgresql + URL: http://www.steelblue.com/ + Packager: Robert Buccigrossi + Prefix: /opt + Source: SteelBlue_2.0b2.tar.gz + patch0: SteelBlue_2.0b2_psql.patch + %description + A Web application server designed to integrate relational database + access, security, complex business rules, and HTML. + + This particular install creates a Postgres SteelBlue installation in + /opt/steelblue. + + %prep + %setup + %patch + + %build + cd src + make steelblue + + %install + cd src + make install + make docs + + %post + + %postun + + %files + %doc doc examples schema INSTALL.TXT LICENSE.TXT + /opt/steelblue