You can subscribe to this list here.
2006 |
Jan
(6) |
Feb
(36) |
Mar
(8) |
Apr
(2) |
May
(11) |
Jun
(11) |
Jul
|
Aug
(8) |
Sep
(4) |
Oct
(19) |
Nov
(22) |
Dec
(16) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2007 |
Jan
(14) |
Feb
(12) |
Mar
(6) |
Apr
(24) |
May
(11) |
Jun
(16) |
Jul
|
Aug
(15) |
Sep
(18) |
Oct
(13) |
Nov
(19) |
Dec
(1) |
2008 |
Jan
(13) |
Feb
(1) |
Mar
(3) |
Apr
(5) |
May
(4) |
Jun
|
Jul
(15) |
Aug
(6) |
Sep
(18) |
Oct
(6) |
Nov
|
Dec
|
2009 |
Jan
|
Feb
|
Mar
|
Apr
|
May
(1) |
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2010 |
Jan
|
Feb
|
Mar
|
Apr
(21) |
May
|
Jun
(2) |
Jul
(1) |
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2011 |
Jan
(22) |
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: <whi...@li...> - 2011-01-20 19:44:49
|
Update of /cvsroot/whitebeam/whitebeam/templates/contrib/geo In directory sfp-cvsdas-4.v30.ch3.sourceforge.com:/tmp/cvs-serv7716 Modified Files: README Log Message: Documentation update Index: README =================================================================== RCS file: /cvsroot/whitebeam/whitebeam/templates/contrib/geo/README,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** README 11 Oct 2007 11:53:00 -0000 1.1 --- README 20 Jan 2011 19:44:41 -0000 1.2 *************** *** 9,13 **** The code expects and uses the following columns to build it's internal memory database : ! column 1 : Lowest IP address that is part of the block represented as an unsigned decimal number column 2 : The Highest IP address that is part of the --- 9,13 ---- The code expects and uses the following columns to build it's internal memory database : ! column 1 : Lowest IP address that is part of the block represented as an unsigned decimal number column 2 : The Highest IP address that is part of the *************** *** 15,22 **** decimal number. column 3 : NOT USED ! column 4 : TWO character country code as defined by ISO 3166. ! column 5 : Not used ! column 6 : An human readable version of the country to which this block is assigned. --- 15,23 ---- decimal number. column 3 : NOT USED ! column 4 : NOT USED ! column 5 : TWO character country code as defined by ISO 3166. ! column 6 : Not used ! column 7 : An human readable version of the country to which this block is assigned. *************** *** 26,30 **** following URL : ! http://software77.net/cgi-bin/ip-country/geo-ip.pl USING THE TEMPLATE --- 27,31 ---- following URL : ! http://software77.net/geo-ip/ USING THE TEMPLATE |
From: <whi...@li...> - 2011-01-20 15:46:01
|
Update of /cvsroot/whitebeam/whitebeam/common/replicate In directory sfp-cvsdas-4.v30.ch3.sourceforge.com:/tmp/cvs-serv29830 Modified Files: main.cxx Log Message: Need to update the MASTER database dbmirror_mirroredtransaction and dbmirror_pending tables in a transaction - if the first is update and the second is not then we end up with orphaned data rows that are never deleted. Index: main.cxx =================================================================== RCS file: /cvsroot/whitebeam/whitebeam/common/replicate/main.cxx,v retrieving revision 1.12 retrieving revision 1.13 diff -C2 -d -r1.12 -r1.13 *** main.cxx 20 Jan 2011 14:05:10 -0000 1.12 --- main.cxx 20 Jan 2011 15:45:51 -0000 1.13 *************** *** 26,29 **** --- 26,35 ---- ********************************************************** $Log$ + Revision 1.13 2011/01/20 15:45:51 peterw8102 + Need to update the MASTER database dbmirror_mirroredtransaction + and dbmirror_pending tables in a transaction - if the first is + update and the second is not then we end up with orphaned data rows + that are never deleted. + Revision 1.12 2011/01/20 14:05:10 peterw8102 Significant re-write to: *************** *** 950,962 **** } } - // Insert a row for this slave into the last replicated table. This will usually already be there - // so we don't mind that it fails. We INSERT here so that during normal operation the - // row always exists and all we have to do is UPDATE. - CrbString sql; - sql.strcat("INSERT INTO dbmirror_lastReplicatedTransaction(hostID, LastXID, LastSeqID) VALUES(" - "'",(const char *)m_mirrorHostId,"', 0, 0);",NULL); - exec_command(sql); - - // The following two SQL statements are copied from the Perl script. As far as // I can see these will have no effect because they are always called outside of --- 956,959 ---- *************** *** 998,1005 **** seqid = (const char *)row[1]; ! if (!(*xid=='0' && *(xid+1)==0)) // Complete this transaction this->updateMirrorHostTable(xid, seqid); } } --- 995,1012 ---- seqid = (const char *)row[1]; ! if (!(xid[0]=='0' && xid[1]==0)) // Complete this transaction this->updateMirrorHostTable(xid, seqid); } + else if (isConnected()) { + // Couldn't read the row so add new row into the table + // Insert a row for this slave into the last replicated table. This will usually already be there + // so we don't mind that it fails. We INSERT here so that during normal operation the + // row always exists and all we have to do is UPDATE. + slaveSql.Empty(); + slaveSql.strcat("INSERT INTO dbmirror_lastReplicatedTransaction(hostID, LastXID, LastSeqID) VALUES(" + "'",(const char *)m_mirrorHostId,"', 0, 0);",NULL); + exec_command(slaveSql); + } } *************** *** 1231,1273 **** RB_BOOL CrbSlave::updateMirrorHostTable(const char *lastTransId, const char *lastSeqId) { CrbString updateMasterQuery; ! updateMasterQuery.strcat( "INSERT INTO ",mappedNames[t_MirroredTransaction]," (",mappedNames[c_XID],",",mappedNames[c_LastSeqId],",",mappedNames[c_MirrorHostId],")" " VALUES (",lastTransId,",",lastSeqId,",",(const char *)m_mirrorHostId,")",NULL); ! logSQLMessage("SQL : MASTER %-200.200s\n",(const char *)updateMasterQuery); ! if (EnableSqlChanges) { ! if (m_master->exec_command(updateMasterQuery)) { ! // If this transaction has now been mirrored to all mirror hosts ! // then it can be deleted. ! CrbString deleteTransactionQuery; ! deleteTransactionQuery.strcat( ! "DELETE FROM ",mappedNames[t_Pending]," WHERE ",mappedNames[c_XID],"=",lastTransId, ! " AND (SELECT COUNT(*) FROM ",mappedNames[t_MirroredTransaction], ! " WHERE ",mappedNames[c_XID],"=",lastTransId, ")=(SELECT COUNT(*) FROM ",mappedNames[t_MirrorHost], ")", ! NULL); ! if (!m_master->exec_command(deleteTransactionQuery)) { ! logDebugMessage("SQL failure : Failed to delete \"MirroredTransaction\" rows\n %s\n",(const char *)deleteTransactionQuery); ! return FALSE; } - } - else { - // May be because we lost the connection, or because there was an error. - if (m_master->isConnected()) { - // This will fail when synchronising from a lost connection where the last XID was in fact - // acked to the master. - logDebugMessage("SQL failure : Failed to update \"MirroredTransaction\"\n %s\n",(const char *)updateMasterQuery); - } - else { - // Lost connection. The committed slave transactions will be repeated, but this should not cause a problem (INSERT where - // index already exists? - logDebugMessage("Lost connection with Master after completing mirror. \nMaster DB references copied transactions. \n"); - return FALSE; - } - } } ! return TRUE; } --- 1238,1288 ---- RB_BOOL CrbSlave::updateMirrorHostTable(const char *lastTransId, const char *lastSeqId) { CrbString updateMasterQuery; + RB_BOOL res; + + if (!EnableSqlChanges) + return TRUE; ! // Need to update the master within a transaction - must protect against loosing ! // the connection between the two parts! ! if ((res = m_master->exec_command("BEGIN"))==TRUE){ ! ! updateMasterQuery.strcat( "INSERT INTO ",mappedNames[t_MirroredTransaction]," (",mappedNames[c_XID],",",mappedNames[c_LastSeqId],",",mappedNames[c_MirrorHostId],")" " VALUES (",lastTransId,",",lastSeqId,",",(const char *)m_mirrorHostId,")",NULL); ! logSQLMessage("SQL : MASTER %-200.200s\n",(const char *)updateMasterQuery); ! if ((res=m_master->exec_command(updateMasterQuery))) { ! // If this transaction has now been mirrored to all mirror hosts ! // then it can be deleted. ! CrbString deleteTransactionQuery; ! deleteTransactionQuery.strcat( ! "DELETE FROM ",mappedNames[t_Pending]," WHERE ",mappedNames[c_XID],"=",lastTransId, ! " AND (SELECT COUNT(*) FROM ",mappedNames[t_MirroredTransaction], ! " WHERE ",mappedNames[c_XID],"=",lastTransId, ")=(SELECT COUNT(*) FROM ",mappedNames[t_MirrorHost], ")", ! NULL); ! res = m_master->exec_command(deleteTransactionQuery); ! } ! if (!res) { ! // Failed - this can be because of loss of connection or some other error. ! if (m_master->isConnected()) { ! // This will fail when synchronising from a lost connection where the last XID was in fact ! // acked to the master. ! logDebugMessage("SQL failure : Failed to update \"MirroredTransaction\"\n %s\n",(const char *)updateMasterQuery); ! res = m_master->exec_command("ROLLBACK"); ! } ! else { ! // Lost connection. The committed slave transactions will be repeated, but this should not cause a problem (INSERT where ! // index already exists? ! logDebugMessage("Lost connection with Master after completing mirror. \nMaster DB references copied transactions. \n"); ! } ! } ! else { ! // Everything worked. Need to commit the transaction. ! res = m_master->exec_command("COMMIT"); } } ! return res; } |
From: <whi...@li...> - 2011-01-20 14:19:16
|
Update of /cvsroot/whitebeam/whitebeam In directory sfp-cvsdas-4.v30.ch3.sourceforge.com:/tmp/cvs-serv31357 Modified Files: CHANGELOG Log Message: Add fixes to common/replicate Index: CHANGELOG =================================================================== RCS file: /cvsroot/whitebeam/whitebeam/CHANGELOG,v retrieving revision 1.119 retrieving revision 1.120 diff -C2 -d -r1.119 -r1.120 *** CHANGELOG 12 Jan 2011 11:36:00 -0000 1.119 --- CHANGELOG 20 Jan 2011 14:19:08 -0000 1.120 *************** *** 9,12 **** --- 9,17 ---- processing in the latest GCC compiler. Generally these are due to type casts between const and non-const values. + * SF:3162704 - re-write common/replicate to detect and recover + from loss of connect to either the SLAVE or MASTER + databases + * SD:3162701 - fix bug whereby dbmirror/replicate may attempt to + apply the same transaction twice to the SLAVE database * SF:2992221 - bug fix to CrbBinaryObj::AppendData * SF:3010110 - enhancement to support HTML 5 multiple file input. |
From: <whi...@li...> - 2011-01-20 14:05:18
|
Update of /cvsroot/whitebeam/whitebeam/common/replicate In directory sfp-cvsdas-4.v30.ch3.sourceforge.com:/tmp/cvs-serv26209 Modified Files: main.cxx replicate.h Log Message: Significant re-write to: + Work around the small window between a transaction being committed on the SLAVE but has not been acknowledged on the MASTER. If in this window the MASTER connection is lost, on restart the same transaction will be repeated potentially leading to duplicate key errors. + Track connection status and operational status closely and automatically re-establish connect to either the SLAVE or MASTER and continue as normal. + Option to use SysLog to log connection loss and re-establishment. Without this it can be difficult to check how reliable connections have been. + Switch off non-conforming strings warning for each connection. + Code to allow operation with 'conforming strings' - but currently the switch is disabled pending more testing. Index: replicate.h =================================================================== RCS file: /cvsroot/whitebeam/whitebeam/common/replicate/replicate.h,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** replicate.h 28 Mar 2008 16:41:59 -0000 1.6 --- replicate.h 20 Jan 2011 14:05:10 -0000 1.7 *************** *** 26,29 **** --- 26,46 ---- ********************************************************** $Log$ + Revision 1.7 2011/01/20 14:05:10 peterw8102 + Significant re-write to: + + Work around the small window between a transaction being + committed on the SLAVE but has not been acknowledged on the + MASTER. If in this window the MASTER connection is lost, on + restart the same transaction will be repeated potentially + leading to duplicate key errors. + + Track connection status and operational status closely and + automatically re-establish connect to either the SLAVE or MASTER + and continue as normal. + + Option to use SysLog to log connection loss and re-establishment. + Without this it can be difficult to check how reliable connections + have been. + + Switch off non-conforming strings warning for each connection. + + Code to allow operation with 'conforming strings' - but currently + the switch is disabled pending more testing. + Revision 1.6 2008/03/28 16:41:59 peterw8102 Add ability to bring a new slaveup without shutting down the master. *************** *** 117,121 **** CrbConnection() { ! m_conn=NULL; stats_objCount++; } --- 134,141 ---- CrbConnection() { ! m_hasConnected = FALSE; ! m_lossReported = FALSE; ! ! m_conn = NULL; stats_objCount++; } *************** *** 129,132 **** --- 149,159 ---- return m_conn==NULL ? FALSE : (PQstatus(m_conn)==CONNECTION_OK); } + RB_BOOL hasConnected() { return m_hasConnected; } + RB_BOOL lossReported() { return m_lossReported; } + RB_BOOL lossReported(RB_BOOL r) { + RB_BOOL oldState = m_lossReported; + m_lossReported=r; + return oldState; + } virtual PGresult *exec(const char *sqlStr); *************** *** 150,153 **** --- 177,187 ---- PGconn *m_conn; + + // m_connectionLost is set to TRUE when we've been connected and are + // no longer connected. This allows us to log a message when we + // re-establish a connection. + RB_BOOL m_hasConnected; + RB_BOOL m_lossReported; + }; *************** *** 179,192 **** } ! virtual void startTransaction(); ! virtual void commitTransaction(); ! virtual void rollbackTransaction(); ! void mirrorCommand(CrbPtrArray &firstRow, const char *XID, CrbPgTransDataSet &results); ! void mirrorInsert(CrbPtrArray &firstRow, const char *seq, const char *tableName, const char *transId, CrbPgTransDataSet &results); ! void mirrorUpdate(CrbPtrArray &firstRow, const char *seq, const char *tableName, const char *transId, CrbPgTransDataSet &results); ! void mirrorDelete(CrbPtrArray &firstRow, const char *seq, const char *tableName, const char *transId, CrbPgTransDataSet &results); ! void mirrorSequence(CrbPtrArray &firstRow, const char *seq, const char *tableName, const char *transId, CrbPgTransDataSet &results); void sync_master(); --- 213,226 ---- } ! virtual RB_BOOL startTransaction(); ! virtual RB_BOOL commitTransaction(); ! virtual RB_BOOL rollbackTransaction(); ! RB_BOOL mirrorCommand(CrbPtrArray &firstRow, const char *XID, CrbPgTransDataSet &results); ! RB_BOOL mirrorInsert(CrbPtrArray &firstRow, const char *seq, const char *tableName, const char *transId, CrbPgTransDataSet &results); ! RB_BOOL mirrorUpdate(CrbPtrArray &firstRow, const char *seq, const char *tableName, const char *transId, CrbPgTransDataSet &results); ! RB_BOOL mirrorDelete(CrbPtrArray &firstRow, const char *seq, const char *tableName, const char *transId, CrbPgTransDataSet &results); ! RB_BOOL mirrorSequence(CrbPtrArray &firstRow, const char *seq, const char *tableName, const char *transId, CrbPgTransDataSet &results); void sync_master(); *************** *** 195,199 **** virtual RB_BOOL setParam(UINT_32 line, CrbString &name, CrbString &value); ! void sendQueryToSlaves(const char *seqId, const char *sql); RB_BOOL updateMirrorHostTable(const char *XID,const char *seqId); --- 229,235 ---- virtual RB_BOOL setParam(UINT_32 line, CrbString &name, CrbString &value); ! void ackLastTransaction(); ! ! RB_BOOL sendQueryToSlaves(const char *seqId, const char *sql); RB_BOOL updateMirrorHostTable(const char *XID,const char *seqId); Index: main.cxx =================================================================== RCS file: /cvsroot/whitebeam/whitebeam/common/replicate/main.cxx,v retrieving revision 1.11 retrieving revision 1.12 diff -C2 -d -r1.11 -r1.12 *** main.cxx 28 Mar 2008 16:41:59 -0000 1.11 --- main.cxx 20 Jan 2011 14:05:10 -0000 1.12 *************** *** 1,5 **** /******************************************************* replicate : high performance database replication for Postgres ! Copyright (C) 2005 YellowHawk Ltd The contents of this file are released subject to the terms of the --- 1,5 ---- /******************************************************* replicate : high performance database replication for Postgres ! Copyright (C) 2005-2011 YellowHawk Ltd [...1070 lines suppressed...] + // Enable syslog? + if (enableSysLog) { + LOG_SetSyslog("dbMirror"); + DBMirrorLogClass = LOG_RegisterLogClass("dbmirror", TRUE, 1); + } if (showConfig) { dumpConfig(master,slave); *************** *** 1663,1667 **** // Have to connect to the mast *first* becuase that contains information // needed by the slave. ! master.connect(); loop_replicate(master,slave); --- 1883,1887 ---- // Have to connect to the mast *first* becuase that contains information // needed by the slave. ! // master.connect(); loop_replicate(master,slave); |
From: <whi...@li...> - 2011-01-20 13:40:42
|
Update of /cvsroot/whitebeam/whitebeam/common/Utilities In directory sfp-cvsdas-4.v30.ch3.sourceforge.com:/tmp/cvs-serv19555 Modified Files: rbStrBuf.cxx Log Message: Remove unnecessary debug printf. Index: rbStrBuf.cxx =================================================================== RCS file: /cvsroot/whitebeam/whitebeam/common/Utilities/rbStrBuf.cxx,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** rbStrBuf.cxx 23 Dec 2005 16:10:26 -0000 1.4 --- rbStrBuf.cxx 20 Jan 2011 13:40:33 -0000 1.5 *************** *** 38,41 **** --- 38,44 ---- *********************************************************** $Log$ + Revision 1.5 2011/01/20 13:40:33 peterw8102 + Remove unnecessary debug printf. + Revision 1.4 2005/12/23 16:10:26 one47 Re-submit some changes after CVS reorg, namely: *************** *** 1541,1545 **** UINT_8 *ptr = GetPtr(); ptr[bytes] = 0; - printf("FRAGEMENT READ - \'%s\'\n",ptr); m_len += bytes; --- 1544,1547 ---- |
From: <whi...@li...> - 2011-01-19 12:02:41
|
Update of /cvsroot/whitebeam/whitebeam/presentation/XmlPageGen In directory sfp-cvsdas-4.v30.ch3.sourceforge.com:/tmp/cvs-serv18535 Modified Files: XmlEvalAttrib.cxx Log Message: Prevent escaping of percent signs in attribute values. Index: XmlEvalAttrib.cxx =================================================================== RCS file: /cvsroot/whitebeam/whitebeam/presentation/XmlPageGen/XmlEvalAttrib.cxx,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** XmlEvalAttrib.cxx 6 Jan 2011 21:41:00 -0000 1.5 --- XmlEvalAttrib.cxx 19 Jan 2011 12:02:33 -0000 1.6 *************** *** 53,56 **** --- 53,59 ---- ********************************************************** $Log$ + Revision 1.6 2011/01/19 12:02:33 peterw8102 + Prevent escaping of percent signs in attribute values. + Revision 1.5 2011/01/06 21:41:00 peterw8102 Correctly escape values in rb:eval attribute to reduce likelihood of XSS *************** *** 249,253 **** JSBool execRes; ! execStr.XmlDecode(ptr); execRes = XmlIfCallJavaScript(cx, execStr, execStr.Length(), fname, lineno, &result); --- 252,256 ---- JSBool execRes; ! execStr.XmlDecode(ptr,FALSE,FALSE,FALSE); execRes = XmlIfCallJavaScript(cx, execStr, execStr.Length(), fname, lineno, &result); *************** *** 316,320 **** if (ptr > cstr) { newAttribValue.LimitCopy(cstr, (ptr-cstr)); ! newAttribValue.XmlEncode(); } --- 319,323 ---- if (ptr > cstr) { newAttribValue.LimitCopy(cstr, (ptr-cstr)); ! newAttribValue.XmlEncode(FALSE, FALSE, FALSE); } *************** *** 332,336 **** // We just have the 'value' - so escape newAttribValue = cstr; ! newAttribValue.XmlEncode(); cstr = newAttribValue; } --- 335,339 ---- // We just have the 'value' - so escape newAttribValue = cstr; ! newAttribValue.XmlEncode(FALSE, FALSE, FALSE); cstr = newAttribValue; } |
From: <whi...@li...> - 2011-01-19 11:49:14
|
Update of /cvsroot/whitebeam/whitebeam/common/Utilities In directory sfp-cvsdas-4.v30.ch3.sourceforge.com:/tmp/cvs-serv15331 Modified Files: rbString.h rbString.cxx Log Message: Change XmlEncode/XmlDecode to take an additional en/decodePercent. In the case where this method is used to encode attribute values the only thing we should be translating are HTML elements that may not be in an attribute value. These are ampersands, angle-brackets and double quotes. Index: rbString.h =================================================================== RCS file: /cvsroot/whitebeam/whitebeam/common/Utilities/rbString.h,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -d -r1.8 -r1.9 *** rbString.h 2 Apr 2010 09:21:05 -0000 1.8 --- rbString.h 19 Jan 2011 11:49:06 -0000 1.9 *************** *** 29,32 **** --- 29,38 ---- ********************************************************** $Log$ + Revision 1.9 2011/01/19 11:49:06 peterw8102 + Change XmlEncode/XmlDecode to take an additional en/decodePercent. In + the case where this method is used to encode attribute values the only + thing we should be translating are HTML elements that may not be in an + attribute value. These are ampersands, angle-brackets and double quotes. + Revision 1.8 2010/04/02 09:21:05 peterw8102 Add a copy constructor for CrbString. *************** *** 124,129 **** protected: static INT_32 CalcXmlEncLength(const char *str); ! void XmlEncodePriv(const char *str, BOOL literal, BOOL encodeNewline); ! void XmlDecodePriv(const char *str, BOOL literal, BOOL decodeNewline); void UrlDecodePriv(const char *str); --- 130,135 ---- protected: static INT_32 CalcXmlEncLength(const char *str); ! void XmlEncodePriv(const char *str, BOOL literal, BOOL encodeNewline, BOOL encodePercent=TRUE); ! void XmlDecodePriv(const char *str, BOOL literal, BOOL decodeNewline, BOOL decodePercent=TRUE); void UrlDecodePriv(const char *str); *************** *** 181,189 **** CrbString &UrlEncodeQueryValue(const char *str); ! CrbString &XmlEncode(const char *str, BOOL literal=FALSE, BOOL encodeNewline=FALSE); ! CrbString &XmlEncode(BOOL literal=FALSE, BOOL encodeNewline=FALSE); ! CrbString &XmlDecode(const char *str, BOOL literal=FALSE, BOOL encodeNewline=FALSE); ! CrbString &XmlDecode(BOOL literal=FALSE, BOOL encodeNewline=FALSE); CrbString &PasswordEncode(const char *plainText, int rounds=4); --- 187,195 ---- CrbString &UrlEncodeQueryValue(const char *str); ! CrbString &XmlEncode(const char *str, BOOL literal=FALSE, BOOL encodeNewline=FALSE, BOOL encodePercent=TRUE); ! CrbString &XmlEncode(BOOL literal=FALSE, BOOL encodeNewline=FALSE, BOOL encodePercent=TRUE); ! CrbString &XmlDecode(const char *str, BOOL literal=FALSE, BOOL decodeNewline=FALSE, BOOL decodePercent=TRUE); ! CrbString &XmlDecode(BOOL literal=FALSE, BOOL decodeNewline=FALSE, BOOL decodePercent=TRUE); CrbString &PasswordEncode(const char *plainText, int rounds=4); Index: rbString.cxx =================================================================== RCS file: /cvsroot/whitebeam/whitebeam/common/Utilities/rbString.cxx,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -d -r1.8 -r1.9 *** rbString.cxx 12 May 2006 15:36:26 -0000 1.8 --- rbString.cxx 19 Jan 2011 11:49:06 -0000 1.9 *************** *** 28,31 **** --- 28,37 ---- ********************************************************** $Log$ + Revision 1.9 2011/01/19 11:49:06 peterw8102 + Change XmlEncode/XmlDecode to take an additional en/decodePercent. In + the case where this method is used to encode attribute values the only + thing we should be translating are HTML elements that may not be in an + attribute value. These are ampersands, angle-brackets and double quotes. + Revision 1.8 2006/05/12 15:36:26 one47 Add base64 en/decode to Binary objects, and teach httpReq about *************** *** 665,669 **** ********************************************************/ ! void CrbString::XmlEncodePriv(const char *str, BOOL literal, BOOL encodeNewline) { char c; char *ptr = m_Text, --- 671,675 ---- ********************************************************/ ! void CrbString::XmlEncodePriv(const char *str, BOOL literal, BOOL encodeNewline, BOOL encodePercent) { char c; char *ptr = m_Text, *************** *** 689,695 **** break; case '%': ! *ptr++ = '%'; ! *ptr++ = hexDigits[(((c)>> 4) & 15)]; ! *ptr++ = hexDigits[(( c ) & 15)]; break; case ' ': --- 695,706 ---- break; case '%': ! if (encodePercent) { ! *ptr++ = '%'; ! *ptr++ = hexDigits[(((c)>> 4) & 15)]; ! *ptr++ = hexDigits[(( c ) & 15)]; ! } ! else ! *ptr++ = c; ! break; case ' ': *************** *** 800,804 **** ********************************************************/ ! CrbString &CrbString::XmlEncode(const char *str, BOOL literal, BOOL encodeNewline) { Empty(); --- 811,815 ---- ********************************************************/ ! CrbString &CrbString::XmlEncode(const char *str, BOOL literal, BOOL encodeNewline, BOOL encodePercent) { Empty(); *************** *** 808,812 **** if (Extend(len+STR_SPARE,FALSE)) ! XmlEncodePriv(str, literal, encodeNewline); return *this; --- 819,823 ---- if (Extend(len+STR_SPARE,FALSE)) ! XmlEncodePriv(str, literal, encodeNewline, encodePercent); return *this; *************** *** 818,822 **** encoding is the same as the previous method (XmlEncode). ********************************************************/ ! CrbString &CrbString::XmlEncode(BOOL literal, BOOL encodeNewline) { char *oldText; INT_32 len; --- 829,833 ---- encoding is the same as the previous method (XmlEncode). ********************************************************/ ! CrbString &CrbString::XmlEncode(BOOL literal, BOOL encodeNewline, BOOL encodePercent) { char *oldText; INT_32 len; *************** *** 833,837 **** // Set the initial size for the new string. if (Extend(len+STR_SPARE, FALSE)) ! XmlEncodePriv(oldText, literal, encodeNewline); delete oldText; --- 844,848 ---- // Set the initial size for the new string. if (Extend(len+STR_SPARE, FALSE)) ! XmlEncodePriv(oldText, literal, encodeNewline, encodePercent); delete oldText; *************** *** 840,844 **** } ! void CrbString::XmlDecodePriv(const char *str, BOOL literal, BOOL decodeNewline) { const char *dPtr; char c,escChar,firstEscChar; --- 851,855 ---- } ! void CrbString::XmlDecodePriv(const char *str, BOOL literal, BOOL decodeNewline, BOOL decodePercent) { const char *dPtr; char c,escChar,firstEscChar; *************** *** 864,868 **** nPtr = nugget; } ! else if (c=='%') { State = xmlesc1; escChar = 0; --- 875,879 ---- nPtr = nugget; } ! else if (c=='%' && decodePercent) { State = xmlesc1; escChar = 0; *************** *** 981,985 **** literal - Replace all real newlines with <br> ********************************************************/ ! CrbString &CrbString::XmlDecode(const char *str, BOOL literal, BOOL encodeNewline) { // Prepare the string by forcing its initial size to be a bit bigger than the source string. --- 992,996 ---- literal - Replace all real newlines with <br> ********************************************************/ ! CrbString &CrbString::XmlDecode(const char *str, BOOL literal, BOOL decodeNewline, BOOL decodePercent) { // Prepare the string by forcing its initial size to be a bit bigger than the source string. *************** *** 988,992 **** Empty(); if (Extend(len+STR_SPARE,FALSE)) ! XmlDecodePriv(str, literal, encodeNewline); return *this; --- 999,1003 ---- Empty(); if (Extend(len+STR_SPARE,FALSE)) ! XmlDecodePriv(str, literal, decodeNewline, decodePercent); return *this; *************** *** 1002,1006 **** literal - Replace all real newlines with <br> ********************************************************/ ! CrbString &CrbString::XmlDecode(BOOL literal, BOOL encodeNewline) { char *oldText; INT_32 len; --- 1013,1017 ---- literal - Replace all real newlines with <br> ********************************************************/ ! CrbString &CrbString::XmlDecode(BOOL literal, BOOL decodeNewline, BOOL decodePercent) { char *oldText; INT_32 len; *************** *** 1017,1021 **** Empty(); if (Extend(len+STR_SPARE, FALSE)) ! XmlDecodePriv(oldText, literal, encodeNewline); delete oldText; --- 1028,1032 ---- Empty(); if (Extend(len+STR_SPARE, FALSE)) ! XmlDecodePriv(oldText, literal, decodeNewline, decodePercent); delete oldText; |
From: <whi...@li...> - 2011-01-12 14:31:07
|
Update of /cvsroot/whitebeam/whitebeam/contrib In directory sfp-cvsdas-4.v30.ch3.sourceforge.com:/tmp/cvs-serv25098 Modified Files: whitebeam.spec Log Message: Increase version to 1.3 Index: whitebeam.spec =================================================================== RCS file: /cvsroot/whitebeam/whitebeam/contrib/whitebeam.spec,v retrieving revision 1.13 retrieving revision 1.14 diff -C2 -d -r1.13 -r1.14 *** whitebeam.spec 24 Jul 2008 11:35:51 -0000 1.13 --- whitebeam.spec 12 Jan 2011 14:30:59 -0000 1.14 *************** *** 3,7 **** Summary: Whitebeam Web Application Server Name: whitebeam ! Version: 1.2 Release: 1.1.js17 License: GPL --- 3,7 ---- Summary: Whitebeam Web Application Server Name: whitebeam ! Version: 1.3 Release: 1.1.js17 License: GPL |
From: <whi...@li...> - 2011-01-12 11:36:08
|
Update of /cvsroot/whitebeam/whitebeam In directory sfp-cvsdas-4.v30.ch3.sourceforge.com:/tmp/cvs-serv26836 Modified Files: CHANGELOG Log Message: 1.3.1 updates Index: CHANGELOG =================================================================== RCS file: /cvsroot/whitebeam/whitebeam/CHANGELOG,v retrieving revision 1.118 retrieving revision 1.119 diff -C2 -d -r1.118 -r1.119 *** CHANGELOG 1 Jun 2010 22:01:08 -0000 1.118 --- CHANGELOG 12 Jan 2011 11:36:00 -0000 1.119 *************** *** 2,11 **** ========================= ! XXth XXXX 2010 : Release 1.2.3 * Add 'maxRows' attribute to rb.collection.getArcs parameter. Allows the application to control the amount of data extracted from the database and returned from the collection template. * SF:2992221 - bug fix to CrbBinaryObj::AppendData * SF:3010110 - enhancement to support HTML 5 multiple file input. 17th April 2010 : Release 1.2.2 --- 2,21 ---- ========================= ! 12th January 2011 : Release 1.3.1 * Add 'maxRows' attribute to rb.collection.getArcs parameter. Allows the application to control the amount of data extracted from the database and returned from the collection template. + * Removed some build errors and some warnings reported by stricter + processing in the latest GCC compiler. Generally these are due to + type casts between const and non-const values. * SF:2992221 - bug fix to CrbBinaryObj::AppendData * SF:3010110 - enhancement to support HTML 5 multiple file input. + * SF:3156178 - randomness of session IDs improved. Session IDs are now + 16 byte random strings. + * SF:3156181 - support for field[] array processing of form parameters + * SF:3156195 - consistent escaping of rb:eval attribute values + * SF:3156201 - minValue and maxValue added to contact template searchFlags + * SF:3156206 - Fix configure error when building against recent + Postgres releases installed through RPMs 17th April 2010 : Release 1.2.2 |
From: <whi...@li...> - 2011-01-12 11:35:46
|
Update of /cvsroot/whitebeam/whitebeam In directory sfp-cvsdas-4.v30.ch3.sourceforge.com:/tmp/cvs-serv26813 Modified Files: configure.in configure Log Message: Remove dependancy on Postgres static library (libpq.a) Index: configure =================================================================== RCS file: /cvsroot/whitebeam/whitebeam/configure,v retrieving revision 1.88 retrieving revision 1.89 diff -C2 -d -r1.88 -r1.89 *** configure 2 Apr 2010 08:47:49 -0000 1.88 --- configure 12 Jan 2011 11:35:37 -0000 1.89 *************** *** 1930,1935 **** rb_version_maj='1' ! rb_version_min='2' ! rb_version_sub='2' rb_use_shlibs="" --- 1930,1935 ---- rb_version_maj='1' ! rb_version_min='3' ! rb_version_sub='1' rb_use_shlibs="" *************** *** 8666,8670 **** NOPQPREPARE=" -DNOPQPREPARE " NOPQEXEC=" -DNOPQEXEC " ! if test "X$rb_pgsql" = "X1" -a "X$pgsql_lib" != "X" ; then rb_db_link="${rb_db_link} -lpq" { echo "$as_me:$LINENO: checking for PQprepare in -lpq" >&5 --- 8666,8670 ---- NOPQPREPARE=" -DNOPQPREPARE " NOPQEXEC=" -DNOPQEXEC " ! if test "X$rb_pgsql" = "X1" ; then rb_db_link="${rb_db_link} -lpq" { echo "$as_me:$LINENO: checking for PQprepare in -lpq" >&5 Index: configure.in =================================================================== RCS file: /cvsroot/whitebeam/whitebeam/configure.in,v retrieving revision 1.87 retrieving revision 1.88 diff -C2 -d -r1.87 -r1.88 *** configure.in 2 Apr 2010 08:47:49 -0000 1.87 --- configure.in 12 Jan 2011 11:35:37 -0000 1.88 *************** *** 42,47 **** rb_version_maj='1' ! rb_version_min='2' ! rb_version_sub='2' rb_use_shlibs="" --- 42,47 ---- rb_version_maj='1' ! rb_version_min='3' ! rb_version_sub='1' rb_use_shlibs="" *************** *** 352,356 **** NOPQPREPARE=" -DNOPQPREPARE " NOPQEXEC=" -DNOPQEXEC " ! if test "X$rb_pgsql" = "X1" -a "X$pgsql_lib" != "X" ; then rb_db_link="${rb_db_link} -lpq" AC_CHECK_LIB(pq,PQprepare,[NOPQPREPARE=" "]) --- 352,356 ---- NOPQPREPARE=" -DNOPQPREPARE " NOPQEXEC=" -DNOPQEXEC " ! if test "X$rb_pgsql" = "X1" ; then rb_db_link="${rb_db_link} -lpq" AC_CHECK_LIB(pq,PQprepare,[NOPQPREPARE=" "]) |
From: <whi...@li...> - 2011-01-06 21:41:07
|
Update of /cvsroot/whitebeam/whitebeam/presentation/XmlPageGen In directory sfp-cvsdas-4.v30.ch3.sourceforge.com:/tmp/cvs-serv18249 Modified Files: XmlEvalAttrib.cxx Log Message: Correctly escape values in rb:eval attribute to reduce likelihood of XSS attacks. This may cause problems with some sites and we may need to add a switch inthe httpd.conf to use the old processing mode on a per-site basis. Index: XmlEvalAttrib.cxx =================================================================== RCS file: /cvsroot/whitebeam/whitebeam/presentation/XmlPageGen/XmlEvalAttrib.cxx,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** XmlEvalAttrib.cxx 23 Dec 2005 16:27:48 -0000 1.4 --- XmlEvalAttrib.cxx 6 Jan 2011 21:41:00 -0000 1.5 *************** *** 53,56 **** --- 53,61 ---- ********************************************************** $Log$ + Revision 1.5 2011/01/06 21:41:00 peterw8102 + Correctly escape values in rb:eval attribute to reduce likelihood of XSS + attacks. This may cause problems with some sites and we may need to add a + switch inthe httpd.conf to use the old processing mode on a per-site basis. + Revision 1.4 2005/12/23 16:27:48 one47 Resync after CVS reorg. Mainly: *************** *** 316,320 **** cstr = newAttribValue; } - } else { --- 321,324 ---- *************** *** 325,328 **** --- 329,339 ---- } } + else { + // We just have the 'value' - so escape + newAttribValue = cstr; + newAttribValue.XmlEncode(); + cstr = newAttribValue; + } + // See if we can find an attribute with this name. newAttrib = Tag->FindAttribute(newAttribName); |
From: <whi...@li...> - 2011-01-06 21:39:11
|
Update of /cvsroot/whitebeam/whitebeam/presentation/XmlPageGen In directory sfp-cvsdas-4.v30.ch3.sourceforge.com:/tmp/cvs-serv17427 Modified Files: XmlPageObj.cxx Log Message: Support PHP/Ruby-on-Rails convention for page parameter names. If a parameter name ends with '[]' then *always* represent that as an array in the results of rb.page.formdata(). Example: <input type="hidden" name="asArray[]" value="7"> will create an attribute on the object returned by rb.page.formdata() called 'asArray' with a single value. Previously (and by default) this would have created a scalar value. Use this processing mode my calling: rb.page.formdata(true); Index: XmlPageObj.cxx =================================================================== RCS file: /cvsroot/whitebeam/whitebeam/presentation/XmlPageGen/XmlPageObj.cxx,v retrieving revision 1.10 retrieving revision 1.11 diff -C2 -d -r1.10 -r1.11 *** XmlPageObj.cxx 11 Aug 2008 13:18:14 -0000 1.10 --- XmlPageObj.cxx 6 Jan 2011 21:39:03 -0000 1.11 *************** *** 46,49 **** --- 46,59 ---- ********************************************************** $Log$ + Revision 1.11 2011/01/06 21:39:03 peterw8102 + Support PHP/Ruby-on-Rails convention for page parameter names. If a parameter + name ends with '[]' then *always* represent that as an array in the results + of rb.page.formdata(). Example: + <input type="hidden" name="asArray[]" value="7"> + will create an attribute on the object returned by rb.page.formdata() called + 'asArray' with a single value. Previously (and by default) this would + have created a scalar value. Use this processing mode my calling: + rb.page.formdata(true); + Revision 1.10 2008/08/11 13:18:14 peterw8102 Correctly implement the <rb:cachecontrol cache="noheaders"/> request *************** *** 711,715 **** The array contains each of the values presented by the browser. ******************************************************************/ ! static JSBool XmlIf_CreateMultiFormItem(JSContext *cx, JSObject *jsParams, CrbGenFormValue *aParam) { JSObject *Array; JSBool result = TRUE; --- 721,725 ---- The array contains each of the values presented by the browser. ******************************************************************/ ! static JSBool XmlIf_CreateMultiFormItem(JSContext *cx, JSObject *jsParams, const char *name, CrbGenFormValue *aParam) { JSObject *Array; JSBool result = TRUE; *************** *** 722,726 **** // Anchor the new object in the parent. jsTmpValue = OBJECT_TO_JSVAL(Array); ! if (!JS_SetProperty(cx, jsParams, aParam->Name(), &jsTmpValue)) { XmlIf_ReportError(cx, OutOfMemory); return FALSE; --- 732,736 ---- // Anchor the new object in the parent. jsTmpValue = OBJECT_TO_JSVAL(Array); ! if (!JS_SetProperty(cx, jsParams, name, &jsTmpValue)) { XmlIf_ReportError(cx, OutOfMemory); return FALSE; *************** *** 743,746 **** --- 753,757 ---- return result; } + /****************************************************************** XmlIf_PageFormDataFn *************** *** 757,760 **** --- 768,777 ---- return FALSE; + // Implement array convention for parameters? + JSBool supportArrayNames = false; + + if (argc>0 && !JSVAL_IS_NULL(argv[0]) && !JSVAL_IS_VOID(argv[0])) + JS_ValueToBoolean(cx, argv[0], &supportArrayNames); + CrbPageParameters &Params = context->PageParams(); *************** *** 778,784 **** // 2. A binary object (eg a file). // The parameter will tell us which is true. ! if (aParam->IsArray()) { // Create an array object and link in all the contained object. ! XmlIf_CreateMultiFormItem(cx, jsParams, aParam); } else { --- 795,816 ---- // 2. A binary object (eg a file). // The parameter will tell us which is true. ! ! // If supportArrayNames is true then special processing for ! // field names that end with [] - always create an array. ! CrbString &name = aParam->Name(); ! RB_BOOL makeArray = aParam->IsArray(); ! ! if (supportArrayNames) { ! if (name.Length()>2 && name[name.Length()-1]==']' && name[name.Length()-2]=='[') { ! // Using modified names - truncate the string to remove '[]' and ! // force use of an array. ! name.Truncate(name.Length()-2); ! makeArray = true; ! } ! } ! ! if (makeArray) { // Create an array object and link in all the contained object. ! XmlIf_CreateMultiFormItem(cx, jsParams, name, aParam); } else { *************** *** 798,801 **** --- 830,834 ---- } + /* */ /****************************************************************** *************** *** 972,976 **** CrbPageContext *context = (CrbPageContext *)JS_GetContextPrivate(cx); const char *cstr; ! if (context) { // Decide which request we want information for. --- 1005,1009 ---- CrbPageContext *context = (CrbPageContext *)JS_GetContextPrivate(cx); const char *cstr; ! if (context) { // Decide which request we want information for. |
From: <whi...@li...> - 2011-01-06 21:35:09
|
Update of /cvsroot/whitebeam/whitebeam/presentation/XmlPageGen In directory sfp-cvsdas-4.v30.ch3.sourceforge.com:/tmp/cvs-serv16067 Modified Files: XmlIfPageParams.cxx Log Message: Fix decoding for form data that do not have values. Eg: page.rhtm?param1¶m2¶m3=7 The first charater of param1 and param2 is incorrectly discarded. Index: XmlIfPageParams.cxx =================================================================== RCS file: /cvsroot/whitebeam/whitebeam/presentation/XmlPageGen/XmlIfPageParams.cxx,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** XmlIfPageParams.cxx 23 Dec 2005 16:27:48 -0000 1.3 --- XmlIfPageParams.cxx 6 Jan 2011 21:35:00 -0000 1.4 *************** *** 30,33 **** --- 30,38 ---- ********************************************************** $Log$ + Revision 1.4 2011/01/06 21:35:00 peterw8102 + Fix decoding for form data that do not have values. Eg: + page.rhtm?param1¶m2¶m3=7 + The first charater of param1 and param2 is incorrectly discarded. + Revision 1.3 2005/12/23 16:27:48 one47 Resync after CVS reorg. Mainly: *************** *** 200,209 **** if (param) { - if (*value) - value++; ! param->Name().LimitCopy(name, (value-name)-1); param->Name().UrlDecode(); ! param->Value().UrlDecodeQueryValue(value); param->PostParam(isPost); --- 205,217 ---- if (param) { ! param->Name().LimitCopy(name, (value-name)); param->Name().UrlDecode(); ! ! if (*value) { ! value++; ! param->Value().UrlDecodeQueryValue(value); ! } ! param->PostParam(isPost); |
From: <whi...@li...> - 2011-01-06 21:29:09
|
Update of /cvsroot/whitebeam/whitebeam/templates/core/ContextMem In directory sfp-cvsdas-4.v30.ch3.sourceforge.com:/tmp/cvs-serv14209 Modified Files: context_eng.cxx context_def.h Log Message: Implement completely random 16 byte session IDs Index: context_def.h =================================================================== RCS file: /cvsroot/whitebeam/whitebeam/templates/core/ContextMem/context_def.h,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** context_def.h 23 Dec 2005 15:46:57 -0000 1.3 --- context_def.h 6 Jan 2011 21:29:01 -0000 1.4 *************** *** 26,32 **** Class that represents a session ID and controls the allocation of new session IDs. A session ID is a ! monotonically increasing number - not limited to any ! precision. The number is represented (stored) as a ! base 64 number. We never use it as a number. ***********************************************************/ class CrbContextId { --- 26,30 ---- Class that represents a session ID and controls the allocation of new session IDs. A session ID is a ! 16 byte binary random number. ***********************************************************/ class CrbContextId { *************** *** 34,56 **** // Some constants. enum { ! PrefixSize = 4, ! IdHash = 4, ! MaxIdLength = 8, // Thats 15 characters - base 64 - HUGE ! IdLen = MaxIdLength + IdHash + PrefixSize }; protected: ! static UINT_8 m_prefix[PrefixSize]; ! static UINT_8 m_thisId[MaxIdLength+1]; ! static UINT_8 *m_idStart, *m_idEnd; ! ! static BOOL allocId(UINT_8 *buf); ! static BOOL encode(UINT_8 *buf); static UINT_32 hash(const UINT_8 *data); ! UINT_8 m_id[PrefixSize+MaxIdLength+IdHash]; public: ! static void ClassInit(); CrbContextId(const UINT_8 *id = NULL, int length=0); --- 32,46 ---- // Some constants. enum { ! IdLen = 16 }; protected: ! BOOL allocId(); static UINT_32 hash(const UINT_8 *data); ! UINT_8 m_id[IdLen]; public: ! static void ClassInit() {} CrbContextId(const UINT_8 *id = NULL, int length=0); *************** *** 60,64 **** virtual ~CrbContextId(); UINT_32 GetHash(); - BOOL Validate(); BOOL operator==(CrbContextId &other) { return memcmp(m_id, other.m_id, sizeof(m_id))==0; --- 50,53 ---- *************** *** 68,72 **** } UINT_8 *ContextId() {return m_id;} ! static int ContextIdLen() {return PrefixSize+MaxIdLength+IdHash;} }; --- 57,61 ---- } UINT_8 *ContextId() {return m_id;} ! static int ContextIdLen() {return IdLen;} }; Index: context_eng.cxx =================================================================== RCS file: /cvsroot/whitebeam/whitebeam/templates/core/ContextMem/context_eng.cxx,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** context_eng.cxx 23 Dec 2005 15:46:57 -0000 1.4 --- context_eng.cxx 6 Jan 2011 21:29:01 -0000 1.5 *************** *** 22,36 **** that can be supported. ! In this implementation a context ID is represented in ! raw form as: ! +----4-----+----------10----------+ ! | Prefix | Sequential ID | ! +----------+----------------------+ ! This raw key is 'transformed' to generate the external key. ! ! 'obsfurcate' the data - this is a NULL operation at the moment! ! Generate a 'hash' value from the translated data ! Append the hash value to the translated data set. ! ********************************************************** $log:$ --- 22,30 ---- that can be supported. ! In this implementation a context ID is represented simply ! as a 16 byte random number. Randomness is provided by ! the openSSL library's random number generator. For systems ! that do not seed the PRNG the template will generate ! a fatal error. ********************************************************** $log:$ *************** *** 42,46 **** --- 36,42 ---- #include <stdlib.h> #include <time.h> + #include <openssl/rand.h> #include "basic.h" + #include "Utilities/rbLog.h" #include "TemplateServerIf/server_exp.h" *************** *** 50,81 **** #include "context_def.h" - UINT_8 CrbContextId::m_thisId[MaxIdLength+1]; - - UINT_8 *CrbContextId::m_idStart; - UINT_8 *CrbContextId::m_idEnd; - UINT_8 CrbContextId::m_prefix[PrefixSize]; - /******************************************************* CrbContextId implementation. *******************************************************/ - static UINT_8 ScambleData[16]; - /******************************************************* - CrbContextId::ClassInit - *******************************************************/ - void CrbContextId::ClassInit() { - memset(m_thisId, 0, sizeof(m_thisId)); - m_idStart = &m_thisId[MaxIdLength-1]; - m_idEnd = &m_thisId[MaxIdLength-1]; - m_thisId[MaxIdLength] = 0; - - // Initialise the randomiser. - srand((unsigned)time(NULL)); - - int i; - for (i=0;i<sizeof(ScambleData);i++) - ScambleData[i] = (UINT_8)rand(); - } - /******************************************************* CrbContextId::CrbContextId --- 46,53 ---- *************** *** 85,99 **** CrbContextId::CrbContextId(const UINT_8 *id, int len) { ! if (id==NULL || len != sizeof(m_id)) { // Allocate a new ID. ! allocId(m_id); ! } ! else { memcpy(m_id, id, sizeof(m_id)); - - // Check whether this is a valid ID. If NOT then allocate a new ID. - if (!Validate()) - allocId(m_id); - } } --- 57,65 ---- CrbContextId::CrbContextId(const UINT_8 *id, int len) { ! if (id==NULL || len != sizeof(m_id)) // Allocate a new ID. ! allocId(); ! else memcpy(m_id, id, sizeof(m_id)); } *************** *** 101,149 **** /******************************************************* CrbContextId::allocId ! Allocate a new ID. The ID is generated as follows: ! rawId = pref concat (++m_thisId) ! Id = translate(rawId) ! Where 'translate' magles the ID and assigns a ! validation hash code. *******************************************************/ ! BOOL CrbContextId::allocId(UINT_8 *buf) { ! UINT_8 *ptr = m_idEnd; BOOL done = FALSE; ! do { ! *ptr += 1; ! done = (*ptr!=0); ! ! if (!done) { ! // Digit Wrap. ! *ptr = '0'; ! ptr--; ! } ! } while (!done && ptr >= m_thisId); ! // Should be done. Other choice is we're exhausted the ID space! ! if (!done) { ! // Back to one. ! memset(m_thisId, 0, sizeof(m_thisId)); ! m_idStart = &m_thisId[MaxIdLength-1]; ! m_idEnd = &m_thisId[MaxIdLength-1]; ! m_thisId[MaxIdLength] = 0; // NULL terminator. } - else if (ptr<m_idStart) - m_idStart--; - - // Copy the contents of the modified ID to the output buffer. - memcpy( buf , m_prefix, PrefixSize); - memcpy(&buf[PrefixSize], m_thisId, MaxIdLength); - - // Basic ID is allocated. Scamble a little. - int i; - for (i=0;i<PrefixSize+MaxIdLength;i++) - buf[i] ^= ScambleData[i]; - - // Finally append the has portion. - UINT_32 hashVal = hash(buf); - - memcpy((void *)(&buf[PrefixSize+MaxIdLength]), &hashVal, sizeof(hashVal)); return TRUE; } --- 67,87 ---- /******************************************************* CrbContextId::allocId ! Allocate a new ID. Each ID is a 16 byte random number. ! Part of the allocation is a check that the chosen ID does ! not already exist. *******************************************************/ ! BOOL CrbContextId::allocId() { ! UINT_8 *ptr; BOOL done = FALSE; + int i; ! while (!done) { ! // Create a long random number ! if (RAND_bytes(m_id,IdLen)==0) ! LOG_FatalError(-1, "RAND_bytes returned 0 - the PRNG has not been seeded by the OS\n"); ! // Already in the hash table? ! done = (CrbContextHashTable::HashTable.Find(this)==NULL); } return TRUE; } *************** *** 159,163 **** int i; ! for (i=0;i<(PrefixSize+MaxIdLength-3);i++) { hash += ((((UINT_32)data[i] ^ HashData[i]) << 24) + (((UINT_32)data[i+1]^ HashData[i+1]) << 16) + --- 97,101 ---- int i; ! for (i=0;i<(IdLen-3);i++) { hash += ((((UINT_32)data[i] ^ HashData[i]) << 24) + (((UINT_32)data[i+1]^ HashData[i+1]) << 16) + *************** *** 167,193 **** return hash; } - /******************************************************* - CrbContextId::encode - Tranlate and append the 4 byte hash value onto the end - of the buffer provided. NOTE 'buf' MUST point to an - array containing sufficient data for th key. - *******************************************************/ - BOOL CrbContextId::encode(UINT_8 *buf) { - UINT_32 hash; - - hash = CrbContextId::hash(buf); - memcpy(&buf[PrefixSize+MaxIdLength], &hash, sizeof(hash)); - return TRUE; - } - - /******************************************************* - CrbContextId::Validate - Check that the ID stored in this object is valid. Compute - the hash of the first part and compare to the last part. - *******************************************************/ - BOOL CrbContextId::Validate() { - UINT_32 hashVal = GetHash(); - return (memcmp((void *)(&m_id[PrefixSize+MaxIdLength]), (void *)&hashVal, sizeof(hashVal))==0); - } UINT_32 CrbContextId::GetHash() { return hash(m_id); --- 105,108 ---- |
From: <whi...@li...> - 2011-01-06 21:01:06
|
Update of /cvsroot/whitebeam/whitebeam/common/tgen In directory sfp-cvsdas-4.v30.ch3.sourceforge.com:/tmp/cvs-serv7357 Modified Files: TempCompiler.cxx Log Message: Fix lo_write prototype (needs const char *, not just char *) Add dummy for PQexecParams. Index: TempCompiler.cxx =================================================================== RCS file: /cvsroot/whitebeam/whitebeam/common/tgen/TempCompiler.cxx,v retrieving revision 1.14 retrieving revision 1.15 diff -C2 -d -r1.14 -r1.15 *** TempCompiler.cxx 21 Jul 2010 22:05:07 -0000 1.14 --- TempCompiler.cxx 6 Jan 2011 21:00:58 -0000 1.15 *************** *** 42,45 **** --- 42,50 ---- ********************************************************** $Log$ + Revision 1.15 2011/01/06 21:00:58 peterw8102 + Fix lo_write prototype (needs const char *, not just char *) + + Add dummy for PQexecParams. + Revision 1.14 2010/07/21 22:05:07 peterw8102 Added stub for gdImagePaletteCopy *************** *** 216,220 **** } ! int lo_write(PGconn *conn, int fd, char *buf, size_t len) { return 0; } --- 221,225 ---- } ! int lo_write(PGconn *conn, int fd, const char *buf, size_t len) { return 0; } *************** *** 274,277 **** --- 279,294 ---- void PQfinish(PGconn *conn) {} PGresult *PQexec(PGconn *conn, const char *query) {return NULL;} + PGresult *PQexecParams(PGconn *conn, + const char *command, + int nParams, + const Oid *paramTypes, + const char *const * paramValues, + const int *paramLengths, + const int *paramFormats, + int resultFormat) + { + return NULL; + } + #endif |
From: <whi...@li...> - 2011-01-06 20:52:59
|
Update of /cvsroot/whitebeam/whitebeam/templates/pgsql/chat-pgsql In directory sfp-cvsdas-4.v30.ch3.sourceforge.com:/tmp/cvs-serv5332 Modified Files: chat_impl.cxx Log Message: Make 'sep' const char * to remove warnings with recent compilers. Index: chat_impl.cxx =================================================================== RCS file: /cvsroot/whitebeam/whitebeam/templates/pgsql/chat-pgsql/chat_impl.cxx,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** chat_impl.cxx 22 Jan 2008 17:00:31 -0000 1.2 --- chat_impl.cxx 6 Jan 2011 20:52:51 -0000 1.3 *************** *** 805,809 **** CrbChatMember *ptr = m_member_tail; ! char numStr[20], flagStr[20], *sep=""; while (ptr!=NULL) { --- 805,810 ---- CrbChatMember *ptr = m_member_tail; ! char numStr[20], flagStr[20]; ! const char *sep=""; while (ptr!=NULL) { |
From: <whi...@li...> - 2011-01-06 20:50:14
|
Update of /cvsroot/whitebeam/whitebeam/templates/pgsql/contacts-pgsql In directory sfp-cvsdas-4.v30.ch3.sourceforge.com:/tmp/cvs-serv4428 Modified Files: contactRecord.pgC Log Message: Make membSep const char * to remove warnings with recent compilers. Index: contactRecord.pgC =================================================================== RCS file: /cvsroot/whitebeam/whitebeam/templates/pgsql/contacts-pgsql/contactRecord.pgC,v retrieving revision 1.46 retrieving revision 1.47 diff -C2 -d -r1.46 -r1.47 *** contactRecord.pgC 6 Jan 2011 20:11:23 -0000 1.46 --- contactRecord.pgC 6 Jan 2011 20:50:05 -0000 1.47 *************** *** 22,25 **** --- 22,28 ---- * * $Log$ + * Revision 1.47 2011/01/06 20:50:05 peterw8102 + * Make membSep const char * to remove warnings with recent compilers. + * * Revision 1.46 2011/01/06 20:11:23 peterw8102 * Change a couple of char* declarations to const char * to allow build in more recent environments. *************** *** 1376,1380 **** CrbInt64Array contactIdArray; CrbString contactInList; ! char *membSep=""; CrbString numStr; --- 1379,1383 ---- CrbInt64Array contactIdArray; CrbString contactInList; ! const char *membSep=""; CrbString numStr; |
From: <whi...@li...> - 2011-01-06 20:21:50
|
Update of /cvsroot/whitebeam/whitebeam/templates/pgsql/common In directory sfp-cvsdas-4.v30.ch3.sourceforge.com:/tmp/cvs-serv29934 Modified Files: crbembsql.pgC crbembsqlrec.h Log Message: DBcheck now takes a const char * parameter instead of just char *. The parameter is only used as a fprintf parameter. This removes lots of warnings with more recent compilers. Index: crbembsql.pgC =================================================================== RCS file: /cvsroot/whitebeam/whitebeam/templates/pgsql/common/crbembsql.pgC,v retrieving revision 1.9 retrieving revision 1.10 diff -C2 -d -r1.9 -r1.10 *** crbembsql.pgC 23 Jan 2008 02:35:25 -0000 1.9 --- crbembsql.pgC 6 Jan 2011 20:21:42 -0000 1.10 *************** *** 27,30 **** --- 27,35 ---- ********************************************************** $Log$ + Revision 1.10 2011/01/06 20:21:42 peterw8102 + DBcheck now takes a const char * parameter instead of just + char *. The parameter is only used as a fprintf parameter. This + removes lots of warnings with more recent compilers. + Revision 1.9 2008/01/23 02:35:25 peterw8102 Change crbembsql::SetError to treat -400 and -402 as lost connections (in *************** *** 175,179 **** // static replacement of EMB_SQL_CHECK (necessary because of linkage errors in DB2 only!) ! int crbembsql::DBcheck( char * sp_Check ) { if (sqlca.sqlcode != 0) --- 180,184 ---- // static replacement of EMB_SQL_CHECK (necessary because of linkage errors in DB2 only!) ! int crbembsql::DBcheck( const char * sp_Check ) { if (sqlca.sqlcode != 0) Index: crbembsqlrec.h =================================================================== RCS file: /cvsroot/whitebeam/whitebeam/templates/pgsql/common/crbembsqlrec.h,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** crbembsqlrec.h 23 Dec 2005 16:18:56 -0000 1.7 --- crbembsqlrec.h 6 Jan 2011 20:21:42 -0000 1.8 *************** *** 256,260 **** static int DBopen(); static int DBclose(); ! int DBcheck( char * sp_Check ); }; --- 256,260 ---- static int DBopen(); static int DBclose(); ! int DBcheck( const char * sp_Check ); }; |
From: <whi...@li...> - 2011-01-06 20:11:31
|
Update of /cvsroot/whitebeam/whitebeam/templates/pgsql/contacts-pgsql In directory sfp-cvsdas-4.v30.ch3.sourceforge.com:/tmp/cvs-serv27513 Modified Files: contactRec.h contactRecord.pgC Log Message: Change a couple of char* declarations to const char * to allow build in more recent environments. Index: contactRec.h =================================================================== RCS file: /cvsroot/whitebeam/whitebeam/templates/pgsql/contacts-pgsql/contactRec.h,v retrieving revision 1.21 retrieving revision 1.22 diff -C2 -d -r1.21 -r1.22 *** contactRec.h 6 Jan 2011 19:50:53 -0000 1.21 --- contactRec.h 6 Jan 2011 20:11:23 -0000 1.22 *************** *** 222,226 **** BOOL isValid; ! char * last_err; void empty(); void setvars(const char *prefix, CrbString &values); --- 222,226 ---- BOOL isValid; ! const char *last_err; void empty(); void setvars(const char *prefix, CrbString &values); Index: contactRecord.pgC =================================================================== RCS file: /cvsroot/whitebeam/whitebeam/templates/pgsql/contacts-pgsql/contactRecord.pgC,v retrieving revision 1.45 retrieving revision 1.46 diff -C2 -d -r1.45 -r1.46 *** contactRecord.pgC 6 Jan 2011 20:00:09 -0000 1.45 --- contactRecord.pgC 6 Jan 2011 20:11:23 -0000 1.46 *************** *** 22,25 **** --- 22,28 ---- * * $Log$ + * Revision 1.46 2011/01/06 20:11:23 peterw8102 + * Change a couple of char* declarations to const char * to allow build in more recent environments. + * * Revision 1.45 2011/01/06 20:00:09 peterw8102 * Fix returns from strchr to be const char * - needed to build with more recent versions of C++ (Fedora 14) *************** *** 697,701 **** const char *defOrderBy=NULL; char fieldName[21]; ! char *endFieldName = &fieldName[20], *fptr; CrbString orderString; --- 700,705 ---- const char *defOrderBy=NULL; char fieldName[21]; ! char *endFieldName = &fieldName[20]; ! char *fptr; CrbString orderString; *************** *** 726,730 **** if (STRICMP(fieldName,"ID")==0) ! fptr="contact_id"; // Check reqAllData. May need to be internally expanded if the clients wants to --- 730,734 ---- if (STRICMP(fieldName,"ID")==0) ! fptr=(char *)"contact_id"; // Check reqAllData. May need to be internally expanded if the clients wants to |
From: <whi...@li...> - 2011-01-06 20:00:17
|
Update of /cvsroot/whitebeam/whitebeam/templates/pgsql/contacts-pgsql In directory sfp-cvsdas-4.v30.ch3.sourceforge.com:/tmp/cvs-serv24584 Modified Files: contactRecord.pgC Log Message: Fix returns from strchr to be const char * - needed to build with more recent versions of C++ (Fedora 14) Index: contactRecord.pgC =================================================================== RCS file: /cvsroot/whitebeam/whitebeam/templates/pgsql/contacts-pgsql/contactRecord.pgC,v retrieving revision 1.44 retrieving revision 1.45 diff -C2 -d -r1.44 -r1.45 *** contactRecord.pgC 6 Jan 2011 19:50:53 -0000 1.44 --- contactRecord.pgC 6 Jan 2011 20:00:09 -0000 1.45 *************** *** 22,25 **** --- 22,28 ---- * * $Log$ + * Revision 1.45 2011/01/06 20:00:09 peterw8102 + * Fix returns from strchr to be const char * - needed to build with more recent versions of C++ (Fedora 14) + * * Revision 1.44 2011/01/06 19:50:53 peterw8102 * Add 'minValue' and 'maxValue' to the contact search parameters. This allows records to be filtered to only include those within a value range. *************** *** 1142,1147 **** int allLevels = 1; int allData = 0, reqAllData=0; ! char *kw = strchr(handle, '$')+1; ! char *sql = strchr(kw, '$'); int searchIndividuals = 0; --- 1145,1150 ---- int allLevels = 1; int allData = 0, reqAllData=0; ! const char *kw = strchr(handle, '$')+1; ! const char *sql = strchr(kw, '$'); int searchIndividuals = 0; *************** *** 1153,1157 **** int rankSearch = (*kw)!='$'; ! char *order = NULL; if (rankSearch) { order = strchr(kw,'$'); --- 1156,1160 ---- int rankSearch = (*kw)!='$'; ! const char *order = NULL; if (rankSearch) { order = strchr(kw,'$'); |
Update of /cvsroot/whitebeam/whitebeam/templates/pgsql/contacts-pgsql In directory sfp-cvsdas-4.v30.ch3.sourceforge.com:/tmp/cvs-serv22477 Modified Files: contactRec.h contacts.h contactRecord.pgC contacts.cxx contacts.tmpl contacts_stub.cxx Log Message: Add 'minValue' and 'maxValue' to the contact search parameters. This allows records to be filtered to only include those within a value range. Index: contacts.cxx =================================================================== RCS file: /cvsroot/whitebeam/whitebeam/templates/pgsql/contacts-pgsql/contacts.cxx,v retrieving revision 1.20 retrieving revision 1.21 diff -C2 -d -r1.20 -r1.21 *** contacts.cxx 17 Aug 2007 14:23:56 -0000 1.20 --- contacts.cxx 6 Jan 2011 19:50:53 -0000 1.21 *************** *** 233,236 **** --- 233,238 ---- (const char *)flags.searchMethod, (int)-1, + flags.minValue, + flags.maxValue, flags.contains, handle); *************** *** 423,426 **** --- 425,430 ---- (const char *) flags.searchMethod, (int)flags.maxRows, + flags.minValue, + flags.maxValue, flags.contains, handle); Index: contactRec.h =================================================================== RCS file: /cvsroot/whitebeam/whitebeam/templates/pgsql/contacts-pgsql/contactRec.h,v retrieving revision 1.20 retrieving revision 1.21 diff -C2 -d -r1.20 -r1.21 *** contactRec.h 17 Aug 2007 14:23:56 -0000 1.20 --- contactRec.h 6 Jan 2011 19:50:53 -0000 1.21 *************** *** 113,116 **** --- 113,118 ---- const char *searchMethod, int maxRows, + CrbTemplateThing &minValue, + CrbTemplateThing &maxValue, CrbTemplateThing &contains, CrbString &handle); Index: contacts.h =================================================================== RCS file: /cvsroot/whitebeam/whitebeam/templates/pgsql/contacts-pgsql/contacts.h,v retrieving revision 1.17 retrieving revision 1.18 diff -C2 -d -r1.17 -r1.18 *** contacts.h 2 May 2008 15:57:21 -0000 1.17 --- contacts.h 6 Jan 2011 19:50:53 -0000 1.18 *************** *** 151,154 **** --- 151,156 ---- CrbTemplateThing &searchParentDescription; CrbTemplateThing &searchKeywords; + CrbTemplateThing &minValue; + CrbTemplateThing &maxValue; CrbTsearchFlags(CrbTemplateThing *rval); static BOOL _FormatTemplateThing(CrbTemplateThing *thing); Index: contacts_stub.cxx =================================================================== RCS file: /cvsroot/whitebeam/whitebeam/templates/pgsql/contacts-pgsql/contacts_stub.cxx,v retrieving revision 1.18 retrieving revision 1.19 diff -C2 -d -r1.18 -r1.19 *** contacts_stub.cxx 2 May 2008 15:57:21 -0000 1.18 --- contacts_stub.cxx 6 Jan 2011 19:50:53 -0000 1.19 *************** *** 280,289 **** searchParentName(rval[25]), searchParentDescription(rval[26]), ! searchKeywords(rval[27]) { } BOOL CrbTsearchFlags::_FormatTemplateThing(CrbTemplateThing *thing) { ! if (!thing->MakeThingStruct(28)) return FALSE; --- 280,291 ---- searchParentName(rval[25]), searchParentDescription(rval[26]), ! searchKeywords(rval[27]), ! minValue(rval[28]), ! maxValue(rval[29]) { } BOOL CrbTsearchFlags::_FormatTemplateThing(CrbTemplateThing *thing) { ! if (!thing->MakeThingStruct(30)) return FALSE; Index: contactRecord.pgC =================================================================== RCS file: /cvsroot/whitebeam/whitebeam/templates/pgsql/contacts-pgsql/contactRecord.pgC,v retrieving revision 1.43 retrieving revision 1.44 diff -C2 -d -r1.43 -r1.44 *** contactRecord.pgC 2 May 2008 23:56:39 -0000 1.43 --- contactRecord.pgC 6 Jan 2011 19:50:53 -0000 1.44 *************** *** 22,25 **** --- 22,28 ---- * * $Log$ + * Revision 1.44 2011/01/06 19:50:53 peterw8102 + * Add 'minValue' and 'maxValue' to the contact search parameters. This allows records to be filtered to only include those within a value range. + * * Revision 1.43 2008/05/02 23:56:39 peterw8102 * Also add 'value' in result data for rb.contact.communityInfo as well as the *************** *** 665,668 **** --- 668,673 ---- const char *searchMethod, int maxRows, + CrbTemplateThing &minValue, + CrbTemplateThing &maxValue, CrbTemplateThing &contains, CrbString &handle){ *************** *** 750,754 **** } } - if ((searchIndividuals || searchCommunities || searchOUs) && !(searchIndividuals && searchCommunities && searchOUs)) { SQLCode = " AND ( "; --- 755,758 ---- *************** *** 767,770 **** --- 771,800 ---- SQLCode += " ) "; } + + RB_BOOL hasMin=FALSE, hasMax=FALSE, hasSameMinMax=FALSE; + INT_64 useMin, useMax; + + hasMin = (minValue.Type() == CrbTemplateThing::number); + hasMax = (maxValue.Type() == CrbTemplateThing::number); + if (hasMin) useMin = (INT_64)minValue; + if (hasMax) useMax = (INT_64)maxValue; + + hasSameMinMax = (hasMin && hasMax && useMin==useMax); + + if (hasSameMinMax) { + SQLCode += " AND c.value = "; + SQLCode += SQLEscape(useMin); + } + else { + if (hasMin) { + SQLCode += " AND c.value >= "; + SQLCode += SQLEscape(useMin); + } + if (hasMax) { + SQLCode += " AND c.value <= "; + SQLCode += SQLEscape(useMax); + } + } + if ((searchName || searchDescription || Index: contacts.tmpl =================================================================== RCS file: /cvsroot/whitebeam/whitebeam/templates/pgsql/contacts-pgsql/contacts.tmpl,v retrieving revision 1.19 retrieving revision 1.20 diff -C2 -d -r1.19 -r1.20 *** contacts.tmpl 2 May 2008 15:57:21 -0000 1.19 --- contacts.tmpl 6 Jan 2011 19:50:53 -0000 1.20 *************** *** 3,7 **** Copyright (C) Redbourne Ltd 2000,2001. All Rights Reserved. ! Portions Copyright (C) Peter Wilson 2004-2005. All Rights Reserved. (pe...@ye...) --- 3,7 ---- Copyright (C) Redbourne Ltd 2000,2001. All Rights Reserved. ! Portions Copyright (C) Peter Wilson 2004-2010. All Rights Reserved. (pe...@ye...) *************** *** 880,883 **** --- 880,889 ---- <doc range="0,1">If 1, search for the keywords within the 'keywords' field</doc> </bool> + <number name="minValue" optional="yes" order="310"> + <doc>If specified then only return contacts in which the 'value' field is greater than or equal (>=) this value</doc> + </number> + <number name="maxValue" optional="yes" order="320"> + <doc>If specified then only return contacts in which the 'value' field is less than or equal (<=) this value</doc> + </number> </type> <method name="get" return="struct" type="data" iterator="yes"> |
From: <whi...@li...> - 2011-01-06 16:52:08
|
Update of /cvsroot/whitebeam/whitebeam/presentation/XmlPageGen In directory sfp-cvsdas-4.v30.ch3.sourceforge.com:/tmp/cvs-serv8989/presentation/XmlPageGen Modified Files: XmlScriptIf.cxx Log Message: Modify JS memory initialisation based on: a) Info from the Internet b) The new settings allow much larger page execution Index: XmlScriptIf.cxx =================================================================== RCS file: /cvsroot/whitebeam/whitebeam/presentation/XmlPageGen/XmlScriptIf.cxx,v retrieving revision 1.20 retrieving revision 1.21 diff -C2 -d -r1.20 -r1.21 *** XmlScriptIf.cxx 12 Apr 2010 13:20:44 -0000 1.20 --- XmlScriptIf.cxx 6 Jan 2011 16:52:00 -0000 1.21 *************** *** 28,31 **** --- 28,36 ---- ********************************************************** $Log$ + Revision 1.21 2011/01/06 16:52:00 one47 + Modify JS memory initialisation based on: + a) Info from the Internet + b) The new settings allow much larger page execution + Revision 1.20 2010/04/12 13:20:44 peterw8102 Fix to allow initialisation code to work with JS version 1.6 *************** *** 541,546 **** #endif ! #define JS_GARBAGE_COLLECT_THRESHOLD (10*1024*1024) // 10Mbyte ! #define JS_STACK_SIZE ( 32*1024) // 32K BOOL XmlSysInitScriptEngine(const char *froot) { BOOL Result; --- 546,551 ---- #endif ! #define JS_GARBAGE_COLLECT_THRESHOLD (64*1024*1024) // 10Mbyte ! #define JS_STACK_SIZE ( 8*1024) // 32K BOOL XmlSysInitScriptEngine(const char *froot) { BOOL Result; |
From: <whi...@li...> - 2010-07-21 22:05:15
|
Update of /cvsroot/whitebeam/whitebeam/common/tgen In directory sfp-cvsdas-4.v30.ch3.sourceforge.com:/tmp/cvs-serv8342 Modified Files: TempCompiler.cxx Log Message: Added stub for gdImagePaletteCopy Index: TempCompiler.cxx =================================================================== RCS file: /cvsroot/whitebeam/whitebeam/common/tgen/TempCompiler.cxx,v retrieving revision 1.13 retrieving revision 1.14 diff -C2 -d -r1.13 -r1.14 *** TempCompiler.cxx 15 Jun 2007 09:00:21 -0000 1.13 --- TempCompiler.cxx 21 Jul 2010 22:05:07 -0000 1.14 *************** *** 42,45 **** --- 42,48 ---- ********************************************************** $Log$ + Revision 1.14 2010/07/21 22:05:07 peterw8102 + Added stub for gdImagePaletteCopy + Revision 1.13 2007/06/15 09:00:21 peterw8102 Add stubs for libgd. *************** *** 310,313 **** --- 313,317 ---- int srcX, int srcY, int srcWidth, int srcHeight, int angle) {} + void gdImagePaletteCopy(gdImagePtr src, gdImagePtr dst) {} void gdImageSharpen(gdImagePtr im, int pct) {} int gdImageColorResolve(gdImagePtr im, int r, int g, int b) {return 0;} |
From: <whi...@li...> - 2010-06-01 22:01:16
|
Update of /cvsroot/whitebeam/whitebeam In directory sfp-cvsdas-4.v30.ch3.sourceforge.com:/tmp/cvs-serv1144 Modified Files: CHANGELOG Log Message: Fix for SF:3010110 - enhancement to support HTML5 multiple file inputs Index: CHANGELOG =================================================================== RCS file: /cvsroot/whitebeam/whitebeam/CHANGELOG,v retrieving revision 1.117 retrieving revision 1.118 diff -C2 -d -r1.117 -r1.118 *** CHANGELOG 26 Apr 2010 09:09:29 -0000 1.117 --- CHANGELOG 1 Jun 2010 22:01:08 -0000 1.118 *************** *** 7,10 **** --- 7,11 ---- database and returned from the collection template. * SF:2992221 - bug fix to CrbBinaryObj::AppendData + * SF:3010110 - enhancement to support HTML 5 multiple file input. 17th April 2010 : Release 1.2.2 |
From: <whi...@li...> - 2010-06-01 19:40:04
|
Update of /cvsroot/whitebeam/whitebeam/presentation/XmlPageGen In directory sfp-cvsdas-4.v30.ch3.sourceforge.com:/tmp/cvs-serv3575 Modified Files: XmlProcessMultipartForm.cxx Log Message: When dealing with binary objects in post data go through CrbPageParameters::Append, not directly to m_Params.Append. HTML 5 allows: <input type="file" multiple="multiple"...> so when we receive multiple files with the same name we need to create a JavaScript array in the same way we do for selections. The previous implementation would only return the last file in the POST data. Index: XmlProcessMultipartForm.cxx =================================================================== RCS file: /cvsroot/whitebeam/whitebeam/presentation/XmlPageGen/XmlProcessMultipartForm.cxx,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** XmlProcessMultipartForm.cxx 23 Dec 2005 16:27:48 -0000 1.2 --- XmlProcessMultipartForm.cxx 1 Jun 2010 19:39:56 -0000 1.3 *************** *** 24,27 **** --- 24,37 ---- ********************************************************** $Log$ + Revision 1.3 2010/06/01 19:39:56 peterw8102 + When dealing with binary objects in post data go + through CrbPageParameters::Append, not directly to m_Params.Append. + HTML 5 allows: + <input type="file" multiple="multiple"...> + so when we receive multiple files with the same name we need to + create a JavaScript array in the same way we do for selections. + The previous implementation would only return the last file in + the POST data. + Revision 1.2 2005/12/23 16:27:48 one47 Resync after CVS reorg. Mainly: *************** *** 373,377 **** LOG_Message(XmlIf_CoreDebug, "Decode Param:%10s = %10s\n",(const char *)param->Name(), (const char *)param->Value()); ! m_Params.Append((void *)param); } --- 383,387 ---- LOG_Message(XmlIf_CoreDebug, "Decode Param:%10s = %10s\n",(const char *)param->Name(), (const char *)param->Value()); ! Append(param); } |