version 0.3.18
authorSomeDude <SomeDude@NuBL7aaJ6Cn4fB7GXFb9Zfi8w1FhPyW3oKgU9TweZMw>
Sat, 23 Aug 2008 08:23:00 +0000 (10:23 +0200)
committerDavid ‘Bombe’ Roden <bombe@freenetproject.org>
Sat, 23 Aug 2008 08:23:00 +0000 (10:23 +0200)
include/global.h
src/board.cpp
src/dbsetup.cpp
src/freenet/captcha/alternatecaptcha2.cpp
src/freenet/captcha/freeimage/bitmap.cpp
src/http/pages/homepage.cpp
src/http/pages/localidentitiespage.cpp
src/http/pages/peertrustpage.cpp
src/optionssetup.cpp

index 2a9478d..f2a9e56 100644 (file)
@@ -7,8 +7,10 @@
 \r
 #define VERSION_MAJOR          "0"\r
 #define VERSION_MINOR          "3"\r
-#define VERSION_RELEASE                "17"\r
+#define VERSION_RELEASE                "18"\r
 #define FMS_VERSION                    VERSION_MAJOR"."VERSION_MINOR"."VERSION_RELEASE\r
+#define FMS_FREESITE_USK       "USK@0npnMrqZNKRCRoGojZV93UNHCMN-6UU3rRSAmP6jNLE,~BG-edFtdCC1cSH4O3BWdeIYa8Sw5DfyrSV-TKdO5ec,AQACAAE/fms/78/"\r
+#define FMS_VERSION_EDITION    "19"\r
 \r
 typedef Poco::ScopedLock<Poco::FastMutex> Guard;\r
 \r
index e429c6c..2d05fed 100644 (file)
@@ -58,7 +58,9 @@ const bool Board::Load(const long boardid)
        m_messagecount=0;\r
        m_addedmethod="";\r
 \r
-       SQLite3DB::Statement st=m_db->Prepare("SELECT BoardName, BoardDescription, DateAdded, HighMessageID, LowMessageID, MessageCount, SaveReceivedMessages, AddedMethod FROM tblBoard LEFT JOIN vwBoardStats ON tblBoard.BoardID=vwBoardStats.BoardID WHERE tblBoard.BoardID=?;");\r
+       // Optimize query by not using vwBoardStats\r
+       //SQLite3DB::Statement st=m_db->Prepare("SELECT BoardName, BoardDescription, DateAdded, HighMessageID, LowMessageID, MessageCount, SaveReceivedMessages, AddedMethod FROM tblBoard LEFT JOIN vwBoardStats ON tblBoard.BoardID=vwBoardStats.BoardID WHERE tblBoard.BoardID=?;");\r
+       SQLite3DB::Statement st=m_db->Prepare("SELECT BoardName, BoardDescription, DateAdded, IFNULL(MAX(MessageID),'0') AS HighMessageID, IFNULL(MIN(MessageID),'0') AS LowMessageID, COUNT(MessageID) AS MessageCount, SaveReceivedMessages, AddedMethod FROM tblBoard LEFT JOIN tblMessageBoard ON tblBoard.BoardID=tblMessageBoard.BoardID WHERE tblBoard.BoardID=? AND (MessageID IS NULL OR MessageID>=0);");\r
        st.Bind(0,boardid);\r
        st.Step();\r
 \r
@@ -132,7 +134,9 @@ const bool Board::Load(const std::string &boardname)                // same as loading form bo
        int tempint=-1;\r
        m_addedmethod="";\r
 \r
-       SQLite3DB::Statement st=m_db->Prepare("SELECT BoardName, BoardDescription, DateAdded, HighMessageID, LowMessageID, MessageCount, SaveReceivedMessages, tblBoard.BoardID, AddedMethod FROM tblBoard LEFT JOIN vwBoardStats ON tblBoard.BoardID=vwBoardStats.BoardID WHERE tblBoard.BoardName=?;");\r
+       // Optimize query by not using vwBoardStats\r
+       //SQLite3DB::Statement st=m_db->Prepare("SELECT BoardName, BoardDescription, DateAdded, HighMessageID, LowMessageID, MessageCount, SaveReceivedMessages, tblBoard.BoardID, AddedMethod FROM tblBoard LEFT JOIN vwBoardStats ON tblBoard.BoardID=vwBoardStats.BoardID WHERE tblBoard.BoardName=?;");\r
+       SQLite3DB::Statement st=m_db->Prepare("SELECT BoardName, BoardDescription, DateAdded, IFNULL(MAX(MessageID),'0') AS HighMessageID, IFNULL(MIN(MessageID),'0') AS LowMessageID, COUNT(MessageID) AS MessageCount, SaveReceivedMessages, tblBoard.BoardID, AddedMethod FROM tblBoard LEFT JOIN tblMessageBoard ON tblBoard.BoardID=tblMessageBoard.BoardID WHERE tblBoard.BoardName=? AND (MessageID IS NULL OR MessageID>=0);");\r
        st.Bind(0,boardname);\r
        st.Step();\r
 \r
index b9f30be..2eb5403 100644 (file)
@@ -16,6 +16,7 @@ void SetupDB()
 \r
        db->Open("fms.db3");\r
        db->SetBusyTimeout(20000);              // set timeout to 20 seconds\r
+       db->Execute("PRAGMA synchronous = FULL;");\r
 \r
        db->Execute("CREATE TABLE IF NOT EXISTS tblDBVersion(\\r
                                Major                           INTEGER,\\r
index 7495f36..f63d525 100644 (file)
@@ -67,14 +67,14 @@ void AlternateCaptcha2::Generate()
        // rotate and skew the big bitmap a few times\r
        int lastrot=0;\r
        int thisrot=0;\r
-       int numrots=(rand()%4)+4;\r
+       int numrots=(rand()%3)+4;\r
        for(int i=0; i<numrots; i++)\r
        {\r
                thisrot=((rand()%180)-90);\r
                bigbmp.Rotate(-lastrot+thisrot,0,0,150,150);\r
                int offset=rand()%10000;\r
-               float freq=3.0+(float(rand()%7000)/1000.0);\r
-               float amp=1.0+(float(rand()%1000)/500.0);\r
+               float freq=5.0+(float(rand()%7000)/1000.0);\r
+               float amp=1.0+(float(rand()%500)/500.0);\r
                for(int y=0; y<bigbmp.Height(); y++)\r
                {\r
                        double shift=sin((double)(y+offset)/freq)*amp;\r
index 8e733b4..7cef8cb 100644 (file)
@@ -1,6 +1,7 @@
 #include "../../../../include/freenet/captcha/freeimage/bitmap.h"\r
 \r
 #include <cmath>\r
+#include <cstdlib>\r
 \r
 namespace FreeImage\r
 {\r
index 9264ca1..3ebe2f1 100644 (file)
@@ -71,7 +71,7 @@ const std::string HomePage::GeneratePage(const std::string &method, const std::m
 \r
        if(showgenericupdate)\r
        {\r
-               content+="Check for new versions at the <a href=\"http://"+fcphost+":"+fproxyport+"/USK@0npnMrqZNKRCRoGojZV93UNHCMN-6UU3rRSAmP6jNLE,~BG-edFtdCC1cSH4O3BWdeIYa8Sw5DfyrSV-TKdO5ec,AQACAAE/fms/76/\">FMS Freesite</a><br>";\r
+               content+="Check for new versions at the <a href=\"http://"+fcphost+":"+fproxyport+"/"+FMS_FREESITE_USK+"\">FMS Freesite</a><br>";\r
        }\r
 \r
        content+="Use these pages to administer your FMS installation.";\r
index d4e0d44..400260f 100644 (file)
@@ -37,6 +37,7 @@ const std::string LocalIdentitiesPage::GeneratePage(const std::string &method, c
 \r
        SQLite3DB::Statement st=m_db->Prepare("SELECT LocalIdentityID,tblLocalIdentity.Name,tblLocalIdentity.PublicKey,tbLLocalIdentity.PublishTrustList,tblLocalIdentity.SingleUse,tblLocalIdentity.PublishBoardList,tblIdentity.IdentityID,tblLocalIdentity.PublishFreesite,tblLocalIdentity.MinMessageDelay,tblLocalIdentity.MaxMessageDelay FROM tblLocalIdentity LEFT JOIN tblIdentity ON tblLocalIdentity.PublicKey=tblIdentity.PublicKey ORDER BY tblLocalIdentity.Name;");\r
        st.Step();\r
+       SQLite3DB::Statement st2=m_db->Prepare("SELECT IdentityID FROM tblIdentity WHERE PublicKey=?;");\r
 \r
        SQLite3DB::Statement trustst=m_db->Prepare("SELECT COUNT(*) FROM tblPeerTrust LEFT JOIN tblIdentity ON tblPeerTrust.TargetIdentityID=tblIdentity.IdentityID WHERE tblIdentity.PublicKey=? GROUP BY tblPeerTrust.TargetIdentityID;");\r
 \r
@@ -53,6 +54,7 @@ const std::string LocalIdentitiesPage::GeneratePage(const std::string &method, c
                std::string publishfreesite="";\r
                std::string minmessagedelay="0";\r
                std::string maxmessagedelay="0";\r
+               std::string identityidstr="";\r
 \r
                st.ResultText(0,id);\r
                st.ResultText(1,name);\r
@@ -64,8 +66,26 @@ const std::string LocalIdentitiesPage::GeneratePage(const std::string &method, c
                st.ResultText(8,minmessagedelay);\r
                st.ResultText(9,maxmessagedelay);\r
 \r
+               st2.Bind(0,publickey);\r
+               st2.Step();\r
+               if(st2.RowReturned())\r
+               {\r
+                       st2.ResultText(0,identityidstr);\r
+               }\r
+               st2.Reset();\r
+\r
                content+="<tr>";\r
-               content+="<td title=\""+publickey+"\"><form name=\"frmupdate\""+countstr+"\" method=\"POST\"><input type=\"hidden\" name=\"formaction\" value=\"update\">"+CreateFormPassword()+"<input type=\"hidden\" name=\"chkidentityid["+countstr+"]\" value=\""+id+"\">"+SanitizeOutput(CreateShortIdentityName(name,publickey))+"</td>";\r
+               content+="<td title=\""+publickey+"\"><form name=\"frmupdate\""+countstr+"\" method=\"POST\"><input type=\"hidden\" name=\"formaction\" value=\"update\">"+CreateFormPassword()+"<input type=\"hidden\" name=\"chkidentityid["+countstr+"]\" value=\""+id+"\">";\r
+               if(identityidstr!="")\r
+               {\r
+                       content+="<a href=\"peerdetails.htm?identityid="+identityidstr+"\">";\r
+               }\r
+               content+=SanitizeOutput(CreateShortIdentityName(name,publickey));\r
+               if(identityidstr!="")\r
+               {\r
+                       content+="</a>";\r
+               }\r
+               content+="</td>";\r
                content+="<td>"+CreateTrueFalseDropDown("singleuse["+countstr+"]",singleuse)+"</td>";\r
                content+="<td>"+CreateTrueFalseDropDown("publishtrustlist["+countstr+"]",publishtrustlist)+"</td>";\r
                content+="<td>"+CreateTrueFalseDropDown("publishboardlist["+countstr+"]",publishboardlist)+"</td>";\r
index 3fee7ac..fe03c91 100644 (file)
@@ -297,7 +297,7 @@ const std::string PeerTrustPage::GeneratePage(const std::string &method, const s
        \r
        // get count of identities we are showing\r
        sql="SELECT COUNT(*) FROM tblIdentity LEFT JOIN tblIdentityTrust ON tblIdentity.IdentityID=tblIdentityTrust.IdentityID ";\r
-       sql+="WHERE tblIdentity.Hidden='false' AND tblIdentityTrust.LocalIdentityID=?";\r
+       sql+="WHERE tblIdentityTrust.LocalIdentityID=? AND tblIdentity.Hidden='false'";\r
        if(namesearch!="")\r
        {\r
                sql+=" AND (Name LIKE '%' || ? || '%' OR PublicKey LIKE '%' || ? || '%')";\r
@@ -316,7 +316,7 @@ const std::string PeerTrustPage::GeneratePage(const std::string &method, const s
 \r
        sql="SELECT tblIdentity.IdentityID,Name,tblIdentityTrust.LocalMessageTrust,PeerMessageTrust,tblIdentityTrust.LocalTrustListTrust,PeerTrustListTrust,PublicKey,tblIdentityTrust.MessageTrustComment,tblIdentityTrust.TrustListTrustComment,COUNT(MessageID) AS 'MessageCount',tblIdentity.PublishTrustList ";\r
        sql+="FROM tblIdentity LEFT JOIN tblIdentityTrust ON tblIdentity.IdentityID=tblIdentityTrust.IdentityID LEFT JOIN tblMessage ON tblIdentity.IdentityID=tblMessage.IdentityID ";\r
-       sql+="WHERE tblIdentity.Hidden='false' AND tblIdentityTrust.LocalIdentityID=?";\r
+       sql+="WHERE tblIdentityTrust.LocalIdentityID=? AND tblIdentity.Hidden='false'";\r
        if(namesearch!="")\r
        {\r
                sql+=" AND (Name LIKE  '%' || ? || '%' OR PublicKey LIKE '%' || ? || '%')";\r
index 91ddcbc..1f3562f 100644 (file)
@@ -1,5 +1,6 @@
 #include "../include/optionssetup.h"\r
 #include "../include/db/sqlite3db.h"\r
+#include "../include/global.h"\r
 \r
 #include <Poco/Message.h>\r
 \r
@@ -68,7 +69,7 @@ void SetupDefaultOptions()
        upd.Reset();\r
 \r
        st.Bind(0,"FMSVersionEdition");\r
-       st.Bind(1,"19");\r
+       st.Bind(1,FMS_VERSION_EDITION);\r
        st.Step();\r
        st.Reset();\r
        upd.Bind(0,"Program");\r