You can subscribe to this list here.
2003 |
Jan
|
Feb
(160) |
Mar
(119) |
Apr
(111) |
May
(118) |
Jun
(101) |
Jul
(304) |
Aug
(113) |
Sep
(140) |
Oct
(137) |
Nov
(87) |
Dec
(122) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2004 |
Jan
(78) |
Feb
(125) |
Mar
(131) |
Apr
(59) |
May
(121) |
Jun
(166) |
Jul
(150) |
Aug
(137) |
Sep
(73) |
Oct
(58) |
Nov
(27) |
Dec
(60) |
2005 |
Jan
(131) |
Feb
(84) |
Mar
(36) |
Apr
(8) |
May
(28) |
Jun
(20) |
Jul
(10) |
Aug
(72) |
Sep
(76) |
Oct
(34) |
Nov
(3) |
Dec
(29) |
2006 |
Jan
(13) |
Feb
(92) |
Mar
(7) |
Apr
(1) |
May
(1) |
Jun
(2) |
Jul
(4) |
Aug
(17) |
Sep
(5) |
Oct
(2) |
Nov
(8) |
Dec
(12) |
2007 |
Jan
(28) |
Feb
(15) |
Mar
|
Apr
|
May
(8) |
Jun
(4) |
Jul
(5) |
Aug
(8) |
Sep
(20) |
Oct
(38) |
Nov
(65) |
Dec
(92) |
2008 |
Jan
(21) |
Feb
(56) |
Mar
(27) |
Apr
(174) |
May
(25) |
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: naoki i. <am...@us...> - 2008-03-30 10:22:35
|
Update of /cvsroot/popfile/engine/languages In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv5961/languages Modified Files: Nihongo.msg Log Message: Change Log 1. When the single user mode is disabled or enabled the UI will be refreshed UI/HTML.pm 2. Logout link now has the login username UI/HTML.pm skins/default/common-middle.thtml 3. Magnetized messages are now not able to be classified UI/HTML.pm skins/default/history-page.thtml 4. Removed old style error handling in the UI UI/HTML.pm skins/default/magnet-page.thtml skins/default/administration-page.thtml skins/default/advanced-page.thtml skins/default/corpus-page.thtml skins/default/style.css 5. Update language file languages/Nihongo.msg Index: Nihongo.msg =================================================================== RCS file: /cvsroot/popfile/engine/languages/Nihongo.msg,v retrieving revision 1.20 retrieving revision 1.21 diff -C2 -d -r1.20 -r1.21 *** Nihongo.msg 30 Mar 2008 05:33:58 -0000 1.20 --- Nihongo.msg 30 Mar 2008 10:22:38 -0000 1.21 *************** *** 194,198 **** Advanced_Error1 '%s' ¤Ï´û¤Ë̵»ë¤¹¤ëñ¸ì¤Î¥ê¥¹¥È¤Ë´Þ¤Þ¤ì¤Æ¤¤¤Þ¤¹¡£ ! Advanced_Error2 ̵¸ú¤Êʸ»ú¤¬»È¤ï¤ì¤Æ¤¤¤Þ¤¹¡£ºÆÅÙÆþÎϤ·¤Æ²¼¤µ¤¤¡£ Advanced_Error3 '%s' ¤ò̵»ë¤¹¤ëñ¸ì¤Î¥ê¥¹¥È¤ËÄɲä·¤Þ¤·¤¿¡£ Advanced_Error4 '%s' ¤Ï̵»ë¤¹¤ëñ¸ì¤Î¥ê¥¹¥È¤Ë´Þ¤Þ¤ì¤Æ¤¤¤Þ¤»¤ó¡£ --- 194,198 ---- Advanced_Error1 '%s' ¤Ï´û¤Ë̵»ë¤¹¤ëñ¸ì¤Î¥ê¥¹¥È¤Ë´Þ¤Þ¤ì¤Æ¤¤¤Þ¤¹¡£ ! Advanced_Error2 ̵»ë¤¹¤ëñ¸ì¤Ë̵¸ú¤Êʸ»ú¤¬»È¤ï¤ì¤Æ¤¤¤Þ¤¹¡£ºÆÅÙÆþÎϤ·¤Æ²¼¤µ¤¤¡£ Advanced_Error3 '%s' ¤ò̵»ë¤¹¤ëñ¸ì¤Î¥ê¥¹¥È¤ËÄɲä·¤Þ¤·¤¿¡£ Advanced_Error4 '%s' ¤Ï̵»ë¤¹¤ëñ¸ì¤Î¥ê¥¹¥È¤Ë´Þ¤Þ¤ì¤Æ¤¤¤Þ¤»¤ó¡£ *************** *** 280,284 **** Password_Enter ¥Ñ¥¹¥ï¡¼¥É¤òÆþÎϤ·¤Æ¤¯¤À¤µ¤¤ Password_Go ¥í¥°¥¤¥ó ! Password_Error1 ¥Ñ¥¹¥ï¡¼¥É¤¬´Ö°ã¤Ã¤Æ¤¤¤Þ¤¹ Security_Error1 ǧ¾Ú¥Ý¡¼¥ÈÈÖ¹æ¤Ï1¤«¤é65535¤Þ¤Ç¤Ë¤·¤Æ¤¯¤À¤µ¤¤¡£ --- 280,284 ---- Password_Enter ¥Ñ¥¹¥ï¡¼¥É¤òÆþÎϤ·¤Æ¤¯¤À¤µ¤¤ Password_Go ¥í¥°¥¤¥ó ! Password_Error1 ¥æ¡¼¥¶¡¼Ì¾¤Þ¤¿¤Ï¥Ñ¥¹¥ï¡¼¥É¤¬´Ö°ã¤Ã¤Æ¤¤¤Þ¤¹ Security_Error1 ǧ¾Ú¥Ý¡¼¥ÈÈÖ¹æ¤Ï1¤«¤é65535¤Þ¤Ç¤Ë¤·¤Æ¤¯¤À¤µ¤¤¡£ *************** *** 312,316 **** Magnet_Error1 ¥Þ¥°¥Í¥Ã¥È '%s' ¤Ë¤Ï´û¤Ë¥Ð¥±¥Ä '%s' ¤ò³ä¤êÅö¤Æ¤Æ¤¤¤Þ¤¹¡£ ! Magnet_Error2 ¿·µ¬¥Þ¥°¥Í¥Ã¥È '%s' ¤Ï´û¤Ë¤¢¤ë¥Þ¥°¥Í¥Ã¥È '%s' (¥Ð¥±¥Ä '%s' ¤¬³ä¤êÅö¤Æ¤é¤ì¤Æ¤¤¤Þ¤¹) ¤È¾×ÆÍ¤¹¤ë¤¿¤á¡¢Àµ¤·¤¤½èÍý¤ò¤ª¤³¤Ê¤¦¤³¤È¤¬¤Ç¤¤Þ¤»¤ó¡£¿·µ¬¥Þ¥°¥Í¥Ã¥È¤ÏÄɲä·¤Þ¤»¤ó¤Ç¤·¤¿¡£ Magnet_Error3 ¿·µ¬¥Þ¥°¥Í¥Ã¥È '%s' ¤Ë¥Ð¥±¥Ä '%s' ¤ò³ä¤êÅö¤Æ¤Þ¤·¤¿¡£ Magnet_CurrentMagnets ¸½ºß¤Î¥Þ¥°¥Í¥Ã¥È --- 312,316 ---- Magnet_Error1 ¥Þ¥°¥Í¥Ã¥È '%s' ¤Ë¤Ï´û¤Ë¥Ð¥±¥Ä '%s' ¤ò³ä¤êÅö¤Æ¤Æ¤¤¤Þ¤¹¡£ ! Magnet_Error2 ¿·µ¬¥Þ¥°¥Í¥Ã¥È '%s' ¤Ï´û¤Ë¤¢¤ë¥Þ¥°¥Í¥Ã¥È '%s' (¥Ð¥±¥Ä '%s' ¤¬³ä¤êÅö¤Æ¤é¤ì¤Æ¤¤¤Þ¤¹) ¤È¾×ÆÍ¤¹¤ë¤¿¤á¡¢Àµ¤·¤¤½èÍý¤ò¤ª¤³¤Ê¤¦¤³¤È¤¬¤Ç¤¤Þ¤»¤ó¡£¿·µ¬¥Þ¥°¥Í¥Ã¥È¤ÏÄɲ䵤ì¤Þ¤»¤ó¤Ç¤·¤¿¡£ Magnet_Error3 ¿·µ¬¥Þ¥°¥Í¥Ã¥È '%s' ¤Ë¥Ð¥±¥Ä '%s' ¤ò³ä¤êÅö¤Æ¤Þ¤·¤¿¡£ Magnet_CurrentMagnets ¸½ºß¤Î¥Þ¥°¥Í¥Ã¥È |
From: naoki i. <am...@us...> - 2008-03-30 10:22:35
|
Update of /cvsroot/popfile/engine/Classifier In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv5961/Classifier Modified Files: Bayes.pm Log Message: Change Log 1. When the single user mode is disabled or enabled the UI will be refreshed UI/HTML.pm 2. Logout link now has the login username UI/HTML.pm skins/default/common-middle.thtml 3. Magnetized messages are now not able to be classified UI/HTML.pm skins/default/history-page.thtml 4. Removed old style error handling in the UI UI/HTML.pm skins/default/magnet-page.thtml skins/default/administration-page.thtml skins/default/advanced-page.thtml skins/default/corpus-page.thtml skins/default/style.css 5. Update language file languages/Nihongo.msg Index: Bayes.pm =================================================================== RCS file: /cvsroot/popfile/engine/Classifier/Bayes.pm,v retrieving revision 1.358 retrieving revision 1.359 diff -C2 -d -r1.358 -r1.359 *** Bayes.pm 30 Mar 2008 05:33:57 -0000 1.358 --- Bayes.pm 30 Mar 2008 10:22:36 -0000 1.359 *************** *** 1651,1654 **** --- 1651,1675 ---- #---------------------------------------------------------------------------- # + # get_user_name_from_session + # + # $session A session key previously returned by get_session_key + # + # Returns the user name associated with a session + # + #---------------------------------------------------------------------------- + sub get_user_name_from_session + { + my ( $self, $session ) = @_; + + my $userid = $self->valid_session_key__( $session ); + if ( defined($userid) ) { + return $self->get_user_name_from_id( $session, $userid ); + } else { + return undef; + } + } + + #---------------------------------------------------------------------------- + # # release_session_key # *************** *** 2521,2524 **** --- 2542,2547 ---- my $quarantine = $self->get_bucket_parameter( $session, $classification, 'quarantine' ); + # TODO : Should we use user's configuration? + my $modification = $self->user_config_( 1, 'subject_mod_left' ) . $classification . $self->user_config_( 1, 'subject_mod_right' ); *************** *** 2549,2552 **** --- 2572,2577 ---- # Add the XPL header + # TODO : Should we use user's configuration? + my $xpl = $self->user_config_( 1, 'xpl_angle' )?'<':''; *************** *** 2557,2560 **** --- 2582,2587 ---- $xpl .= ":" . $self->module_config_( 'html', 'port' ) . "/jump_to_message?view=$slot"; + # TODO : Should we use user's configuration? + if ( $self->user_config_( 1, 'xpl_angle' ) ) { $xpl .= '>'; *************** *** 3867,3870 **** --- 3894,3924 ---- #---------------------------------------------------------------------------- # + # get_user_name_from_id + # + # Returns the name of a user + # + # $session A valid session ID + # $userid The ID of the user + # + #---------------------------------------------------------------------------- + sub get_user_name_from_id + { + my ( $self, $session, $id ) = @_; + + my $userid = $self->valid_session_key__( $session ); + return undef if ( !defined( $userid ) ); + + my $h = $self->db_()->prepare( "select name from users where id = $id;" ); + $h->execute; + if ( my $row = $h->fetchrow_arrayref ) { + $h->finish; + return $row->[0]; + } else { + return undef; + } + } + + #---------------------------------------------------------------------------- + # # set_bucket_parameter # *************** *** 4073,4078 **** } ! $self->db_()->do( # PROFILE BLOCK START ! "delete from buckets where buckets.userid = $userid and buckets.name = '$bucket';" ); # PROFILE BLOCK STOP $self->db_update_cache__( $session ); --- 4127,4135 ---- } ! $self->db_()->do( # PROFILE BLOCK START ! "delete from buckets where ! buckets.userid = $userid and ! buckets.name = '$bucket' and ! buckets.pseudo = 0;" ); # PROFILE BLOCK STOP $self->db_update_cache__( $session ); *************** *** 4511,4514 **** --- 4568,4573 ---- # Pass language parameter to add_stopword() + # TODO : hard-coded 1 + return $self->{parser__}->{mangle__}->add_stopword( $stopword, $self->user_module_config_( 1, 'html', 'language' ) ); } *************** *** 4523,4526 **** --- 4582,4587 ---- # Pass language parameter to remove_stopword() + # TODO : hard-coded 1 + return $self->{parser__}->{mangle__}->remove_stopword( $stopword, $self->user_module_config_( 1, 'html', 'language' ) ); } |
From: naoki i. <am...@us...> - 2008-03-30 10:22:35
|
Update of /cvsroot/popfile/engine/POPFile In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv5961/POPFile Modified Files: History.pm Log Message: Change Log 1. When the single user mode is disabled or enabled the UI will be refreshed UI/HTML.pm 2. Logout link now has the login username UI/HTML.pm skins/default/common-middle.thtml 3. Magnetized messages are now not able to be classified UI/HTML.pm skins/default/history-page.thtml 4. Removed old style error handling in the UI UI/HTML.pm skins/default/magnet-page.thtml skins/default/administration-page.thtml skins/default/advanced-page.thtml skins/default/corpus-page.thtml skins/default/style.css 5. Update language file languages/Nihongo.msg Index: History.pm =================================================================== RCS file: /cvsroot/popfile/engine/POPFile/History.pm,v retrieving revision 1.47 retrieving revision 1.48 diff -C2 -d -r1.47 -r1.48 *** History.pm 30 Mar 2008 05:33:58 -0000 1.47 --- History.pm 30 Mar 2008 10:22:37 -0000 1.48 *************** *** 993,997 **** # Add the sort option (if there is one) ! if ( $sort ne '' ) {print "$sort"; $sort =~ s/^(\-)//; my $direction = defined($1)?'desc':'asc'; --- 993,997 ---- # Add the sort option (if there is one) ! if ( $sort ne '' ) { $sort =~ s/^(\-)//; my $direction = defined($1)?'desc':'asc'; |
From: naoki i. <am...@us...> - 2008-03-30 10:22:34
|
Update of /cvsroot/popfile/engine/skins/default In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv5961/skins/default Modified Files: administration-page.thtml advanced-page.thtml common-middle.thtml corpus-page.thtml history-page.thtml magnet-page.thtml style.css Log Message: Change Log 1. When the single user mode is disabled or enabled the UI will be refreshed UI/HTML.pm 2. Logout link now has the login username UI/HTML.pm skins/default/common-middle.thtml 3. Magnetized messages are now not able to be classified UI/HTML.pm skins/default/history-page.thtml 4. Removed old style error handling in the UI UI/HTML.pm skins/default/magnet-page.thtml skins/default/administration-page.thtml skins/default/advanced-page.thtml skins/default/corpus-page.thtml skins/default/style.css 5. Update language file languages/Nihongo.msg Index: history-page.thtml =================================================================== RCS file: /cvsroot/popfile/engine/skins/default/history-page.thtml,v retrieving revision 1.74 retrieving revision 1.75 diff -C2 -d -r1.74 -r1.75 *** history-page.thtml 30 Mar 2008 05:33:58 -0000 1.74 --- history-page.thtml 30 Mar 2008 10:22:38 -0000 1.75 *************** *** 153,157 **** <TMPL_IF NAME="History_If_Magnetized"> ! </TMPL_IF> --- 153,157 ---- <TMPL_IF NAME="History_If_Magnetized"> ! <img title="<TMPL_VAR NAME="History_Magnet" ESCAPE=HTML>" alt="<TMPL_VAR NAME="History_Magnet" ESCAPE=HTML>" src="/skins/magnet.png"> </TMPL_IF> *************** *** 197,202 **** <TMPL_IF NAME="History_If_Magnetized"> ! <img title="<TMPL_VAR NAME="History_Magnet" ESCAPE=HTML>" alt="<TMPL_VAR NAME="History_Magnet" ESCAPE=HTML>" src="/skins/magnet.png"> ! <TMPL_ELSE> <select name="reclassify_<TMPL_VAR NAME="History_I">"> --- 197,202 ---- <TMPL_IF NAME="History_If_Magnetized"> ! <TMPL_VAR NAME="Localize_History_MagnetUsed"> ! <TMPL_ELSE> <select name="reclassify_<TMPL_VAR NAME="History_I">"> Index: common-middle.thtml =================================================================== RCS file: /cvsroot/popfile/engine/skins/default/common-middle.thtml,v retrieving revision 1.24 retrieving revision 1.25 diff -C2 -d -r1.24 -r1.25 *** common-middle.thtml 2 Dec 2007 12:07:24 -0000 1.24 --- common-middle.thtml 30 Mar 2008 10:22:38 -0000 1.25 *************** *** 12,16 **** <tr> <td class="head"><TMPL_VAR NAME="Localize_Header_Title"></td> ! <td class="headShutdown" align="right" valign="bottom"><TMPL_IF NAME="Header_If_Password"><TMPL_ELSE><TMPL_IF NAME="Header_If_SingleUser"><TMPL_ELSE><a class="logoutLink" href="/logout"><TMPL_VAR NAME="Localize_Logout"></a> </TMPL_IF><TMPL_IF NAME="Common_Middle_If_CanAdmin"><a class="shutdownLink" href="/shutdown"><TMPL_VAR NAME="Localize_Header_Shutdown"></a></TMPL_IF></TMPL_IF> </td> </tr> </table> --- 12,16 ---- <tr> <td class="head"><TMPL_VAR NAME="Localize_Header_Title"></td> ! <td class="headShutdown" align="right" valign="bottom"><TMPL_IF NAME="Header_If_Password"><TMPL_ELSE><TMPL_IF NAME="Header_If_SingleUser"><TMPL_ELSE><a class="logoutLink" href="/logout"><TMPL_VAR NAME="Localize_Logout"> (<TMPL_VAR NAME="Header_User_Name">)</a> </TMPL_IF><TMPL_IF NAME="Common_Middle_If_CanAdmin"><a class="shutdownLink" href="/shutdown"><TMPL_VAR NAME="Localize_Header_Shutdown"></a></TMPL_IF></TMPL_IF> </td> </tr> </table> *************** *** 26,34 **** <br /> <TMPL_IF NAME="Header_If_Message"> ! <table class="shellStatusMessage"><tr class="shellStatusRow"><td><TMPL_VAR NAME="Header_Message"></td></tr></table> <br /> </TMPL_IF> <TMPL_IF NAME="Header_If_Error"> ! <table class="shellErrorMessage"><tr class="shellErrorRow"><td><TMPL_VAR NAME="Header_Error"></td></tr></table> <br /> </TMPL_IF> --- 26,34 ---- <br /> <TMPL_IF NAME="Header_If_Message"> ! <table class="shellStatusMessage"><tr class="shellStatusRow"><td><TMPL_VAR NAME="Header_Message" ESCAPE=HTML></td></tr></table> <br /> </TMPL_IF> <TMPL_IF NAME="Header_If_Error"> ! <table class="shellErrorMessage"><tr class="shellErrorRow"><td><TMPL_VAR NAME="Header_Error" ESCAPE=HTML></td></tr></table> <br /> </TMPL_IF> Index: advanced-page.thtml =================================================================== RCS file: /cvsroot/popfile/engine/skins/default/advanced-page.thtml,v retrieving revision 1.16 retrieving revision 1.17 diff -C2 -d -r1.16 -r1.17 *** advanced-page.thtml 9 Sep 2005 23:00:42 -0000 1.16 --- advanced-page.thtml 30 Mar 2008 10:22:38 -0000 1.17 *************** *** 32,43 **** </form> - <TMPL_IF NAME="Advanced_If_Add_Message"> - - <blockquote> - <div class="error02"><b><TMPL_VAR NAME="Localize_Advanced_Error2"></b></div> - </blockquote> - - </TMPL_IF> - <form action="/advanced" method="post"> <label class="advancedLabel" for="advancedRemoveWordText"><TMPL_VAR NAME="Localize_Advanced_RemoveWord">:</label><br /> --- 32,35 ---- *************** *** 47,58 **** </form> - <TMPL_IF NAME="Advanced_If_Delete_Message"> - - <blockquote> - <div class="error02"><b><TMPL_VAR NAME="Localize_Advanced_Error2"></b></div> - </blockquote> - - </TMPL_IF> - </div> </td> --- 39,42 ---- Index: magnet-page.thtml =================================================================== RCS file: /cvsroot/popfile/engine/skins/default/magnet-page.thtml,v retrieving revision 1.17 retrieving revision 1.18 diff -C2 -d -r1.17 -r1.18 *** magnet-page.thtml 20 Feb 2006 09:36:35 -0000 1.17 --- magnet-page.thtml 30 Mar 2008 10:22:38 -0000 1.18 *************** *** 148,163 **** </form> - <TMPL_IF NAME="Magnet_If_Message"> - - <blockquote> - <div class="error02"> - <b> - <TMPL_VAR NAME="Magnet_Message"> - </b> - </div> - </blockquote> - - </TMPL_IF> - </div> --- 148,151 ---- Index: style.css =================================================================== RCS file: /cvsroot/popfile/engine/skins/default/style.css,v retrieving revision 1.25 retrieving revision 1.26 diff -C2 -d -r1.25 -r1.26 *** style.css 11 Feb 2006 09:07:34 -0000 1.25 --- style.css 30 Mar 2008 10:22:38 -0000 1.26 *************** *** 145,159 **** /* Messages */ - div.error01 { - background-color: transparent; - color: red; - font-size: larger; - } - - div.error02 { - background-color: transparent; - color: red; - } - div.helpMessage { background-color: #DFDFAF; --- 145,148 ---- Index: corpus-page.thtml =================================================================== RCS file: /cvsroot/popfile/engine/skins/default/corpus-page.thtml,v retrieving revision 1.27 retrieving revision 1.28 diff -C2 -d -r1.27 -r1.28 *** corpus-page.thtml 23 Feb 2006 12:18:01 -0000 1.27 --- corpus-page.thtml 30 Mar 2008 10:22:38 -0000 1.28 *************** *** 321,334 **** </TMPL_IF> - <TMPL_IF NAME="Corpus_If_Create_Error"> - - <blockquote> - <div class="error01"> - <TMPL_VAR NAME="Localize_Bucket_Error1"> - </div> - </blockquote> - - </TMPL_IF> - <form action="/buckets" method="post"> <label class="bucketsLabel" for="bucketsDeleteBucket" title="<TMPL_VAR NAME="Localize_tip_Bucket_Delete">"> --- 321,324 ---- *************** *** 351,364 **** </form> - <TMPL_IF NAME="Corpus_If_Delete_Message"> - - <blockquote> - <b> - <TMPL_VAR NAME="Corpus_Delete_Message"> - </b> - </blockquote> - - </TMPL_IF> - <form action="/buckets" method="post"> <label class="bucketsLabel" for="bucketsRenameBucketFrom" title="<TMPL_VAR NAME="Localize_tip_Bucket_Rename">"> --- 341,344 ---- *************** *** 385,408 **** </form> - <TMPL_IF NAME="Corpus_If_Rename_Message"> - - <blockquote> - <b> - <TMPL_VAR NAME="Corpus_Rename_Message"> - </b> - </blockquote> - - </TMPL_IF> - - <TMPL_IF NAME="Corpus_If_Rename_Error"> - - <blockquote> - <div class="error01"> - <TMPL_VAR NAME="Localize_Bucket_Error1"> - </div> - </blockquote> - - </TMPL_IF> - <br /> </div> --- 365,368 ---- Index: administration-page.thtml =================================================================== RCS file: /cvsroot/popfile/engine/skins/default/administration-page.thtml,v retrieving revision 1.14 retrieving revision 1.15 diff -C2 -d -r1.14 -r1.15 *** administration-page.thtml 30 Mar 2008 05:33:58 -0000 1.14 --- administration-page.thtml 30 Mar 2008 10:22:38 -0000 1.15 *************** *** 143,158 **** <input name="timeout" type="text" id="configTCPTimeout" value="<TMPL_VAR NAME="Configuration_TCP_Timeout">" /> - <TMPL_IF NAME="Configuration_If_TCP_Timeout_Error"> - - <blockquote> - <div class="error01"> - <TMPL_VAR NAME="Localize_Configuration_Error6"> - </div> - </blockquote> - - </TMPL_IF> - - <TMPL_VAR NAME="Configuration_TCP_Timeout_Updated"> - <br /><br /> <input type="submit" class="submit" name="update_modules" value="<TMPL_VAR NAME="Localize_Apply">" /> --- 143,146 ---- |
From: naoki i. <am...@us...> - 2008-03-30 10:22:34
|
Update of /cvsroot/popfile/engine/UI In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv5961/UI Modified Files: HTML.pm Log Message: Change Log 1. When the single user mode is disabled or enabled the UI will be refreshed UI/HTML.pm 2. Logout link now has the login username UI/HTML.pm skins/default/common-middle.thtml 3. Magnetized messages are now not able to be classified UI/HTML.pm skins/default/history-page.thtml 4. Removed old style error handling in the UI UI/HTML.pm skins/default/magnet-page.thtml skins/default/administration-page.thtml skins/default/advanced-page.thtml skins/default/corpus-page.thtml skins/default/style.css 5. Update language file languages/Nihongo.msg Index: HTML.pm =================================================================== RCS file: /cvsroot/popfile/engine/UI/HTML.pm,v retrieving revision 1.382 retrieving revision 1.383 diff -C2 -d -r1.382 -r1.383 *** HTML.pm 30 Mar 2008 05:33:58 -0000 1.382 --- HTML.pm 30 Mar 2008 10:22:37 -0000 1.383 *************** *** 874,877 **** --- 874,883 ---- } + # Show login user name on header in the multi-user mode + if ( !$self->global_config_( 'single_user' ) && defined( $session ) ) { + my $user = $self->classifier_()->get_user_name_from_session( $session ); + $templ->param( 'Header_User_Name' => $user ); + } + # Build an HTTP header for standard HTML *************** *** 1170,1173 **** --- 1176,1181 ---- my $user = $self->{sessions__}{$session}{user}; + my $single_user_mode_changed = 0; + # TODO: add status messages *************** *** 1175,1178 **** --- 1183,1187 ---- # Server / Stealth mode if ( defined $self->{form_}->{apply_stealth} ) { + my $current_single_user = $self->global_config_( 'single_user' ); $self->global_config_( 'single_user', $self->{form_}->{usermode} ? 1 : 0 ); *************** *** 1183,1186 **** --- 1192,1202 ---- $self->config_( 'local', 1 ); } + + # If the single user mode (POPFile classic) is enabled or disabled + # we should reflesh the UI + + if ( $current_single_user ne ( $self->{form_}->{usermode} ? 1 : 0 ) ) { + $single_user_mode_changed = 1; + } } # Privacy options *************** *** 1218,1222 **** } else { ! $self->error_message__( $self->{language__}{Configuration_Error6} ); delete $self->{form_}{timeout}; } --- 1234,1238 ---- } else { ! $self->error_message__( $templ, $self->{language__}{Configuration_Error6} ); delete $self->{form_}{timeout}; } *************** *** 1359,1362 **** --- 1375,1386 ---- } + # If the single user mode (POPFile classic) is enabled or disabled + # we should reflesh the UI + + if ( $single_user_mode_changed ) { + $self->http_redirect_( $client, "/administration", $session ); + return; + } + $self->http_ok( $client,$templ, 3, $session ); } *************** *** 1661,1665 **** $self->{form_}{newword} ); if ( $result == 0 ) { ! $templ->param( 'Advanced_If_Add_Message' => 1 ); } } --- 1685,1691 ---- $self->{form_}{newword} ); if ( $result == 0 ) { ! $self->error_message__( $templ, $self->{language__}{Advanced_Error2} ); ! } else { ! $self->status_message__( $templ, sprintf $self->{language__}{Advanced_Error3}, $self->{form_}{newword} ); } } *************** *** 1669,1673 **** $self->{form_}{word} ); if ( $result == 0 ) { ! $templ->param( 'Advanced_If_Delete_Message' => 1 ); } } --- 1695,1701 ---- $self->{form_}{word} ); if ( $result == 0 ) { ! $self->error_message__( $templ, $self->{language__}{Advanced_Error2} ); ! } else { ! $self->status_message__( $templ, sprintf $self->{language__}{Advanced_Error5}, $self->{form_}{word} ); } } *************** *** 1798,1802 **** $page, $session ); ! my $magnet_message = ''; if ( defined( $self->{form_}{delete} ) ) { --- 1826,1831 ---- $page, $session ); ! my $error_message = ''; ! my $status_message = ''; if ( defined( $self->{form_}{delete} ) ) { *************** *** 1871,1875 **** if ( exists( $magnets{$current_mtext} ) ) { $found = 1; ! $magnet_message .= sprintf( $self->{language__}{Magnet_Error1}, "$mtype: $current_mtext", $bucket ) . '<br>'; last; } --- 1900,1904 ---- if ( exists( $magnets{$current_mtext} ) ) { $found = 1; ! $error_message .= sprintf( $self->{language__}{Magnet_Error1}, "$mtype: $current_mtext", $bucket ) . '<br>'; last; } *************** *** 1884,1888 **** if ( ( $mtext =~ /\Q$from\E/ ) || ( $from =~ /\Q$mtext\E/ ) ) { $found = 1; ! $magnet_message .= sprintf( $self->{language__}{Magnet_Error2}, "$mtype: $current_mtext", "$mtype: $from", $bucket ) . '<br>'; last; } --- 1913,1917 ---- if ( ( $mtext =~ /\Q$from\E/ ) || ( $from =~ /\Q$mtext\E/ ) ) { $found = 1; ! $error_message .= sprintf( $self->{language__}{Magnet_Error2}, "$mtype: $current_mtext", "$mtype: $from", $bucket ) . '<br>'; last; } *************** *** 1916,1920 **** $self->classifier_()->create_magnet( $session, $mbucket, $mtype, $current_mtext ); if ( !defined( $self->{form_}{update} ) ) { ! $magnet_message .= sprintf( $self->{language__}{Magnet_Error3}, "$mtype: $current_mtext", $mbucket ) . '<br>'; } } --- 1945,1949 ---- $self->classifier_()->create_magnet( $session, $mbucket, $mtype, $current_mtext ); if ( !defined( $self->{form_}{update} ) ) { ! $status_message .= sprintf( $self->{language__}{Magnet_Error3}, "$mtype: $current_mtext", $mbucket ) . '<br>'; } } *************** *** 1924,1930 **** } ! if ( $magnet_message ne '' ) { ! $templ->param( 'Magnet_If_Message' => 1 ); ! $templ->param( 'Magnet_Message' => $magnet_message ); } --- 1953,1963 ---- } ! # Show error/status message ! ! if ( $error_message ne '' ) { ! $self->error_message__( $templ, $error_message ); ! } ! if ( $status_message ne '' ) { ! $self->status_message__( $templ, $status_message ); } *************** *** 2283,2296 **** if ( ( defined($self->{form_}{cname}) ) && ( $self->{form_}{cname} ne '' ) ) { if ( $self->{form_}{cname} =~ /$invalid_bucket_chars/ ) { ! $templ->param( 'Corpus_If_Create_Error' => 1 ); } else { if ( $self->classifier_()->is_bucket( $session, $self->{form_}{cname} ) || $self->classifier_()->is_pseudo_bucket( $session, $self->{form_}{cname} ) ) { ! $templ->param( 'Corpus_If_Create_Message' => 1 ); ! $templ->param( 'Corpus_Create_Message' => sprintf( $self->{language__}{Bucket_Error2}, $self->{form_}{cname} ) ); } else { $self->classifier_()->create_bucket( $session, $self->{form_}{cname} ); ! $templ->param( 'Corpus_If_Create_Message' => 1 ); ! $templ->param( 'Corpus_Create_Message' => sprintf( $self->{language__}{Bucket_Error3}, $self->{form_}{cname} ) ); } } --- 2316,2327 ---- if ( ( defined($self->{form_}{cname}) ) && ( $self->{form_}{cname} ne '' ) ) { if ( $self->{form_}{cname} =~ /$invalid_bucket_chars/ ) { ! $self->error_message__( $templ, $self->{language__}{Bucket_Error1} ); } else { if ( $self->classifier_()->is_bucket( $session, $self->{form_}{cname} ) || $self->classifier_()->is_pseudo_bucket( $session, $self->{form_}{cname} ) ) { ! $self->error_message__( $templ, sprintf( $self->{language__}{Bucket_Error2}, $self->{form_}{cname} ) ); } else { $self->classifier_()->create_bucket( $session, $self->{form_}{cname} ); ! $self->status_message__( $templ, sprintf( $self->{language__}{Bucket_Error3}, $self->{form_}{cname} ) ); } } *************** *** 2300,2305 **** $self->{form_}{name} = lc($self->{form_}{name}); $self->classifier_()->delete_bucket( $session, $self->{form_}{name} ); ! $templ->param( 'Corpus_If_Delete_Message' => 1 ); ! $templ->param( 'Corpus_Delete_Message' => sprintf( $self->{language__}{Bucket_Error6}, $self->{form_}{name} ) ); } --- 2331,2335 ---- $self->{form_}{name} = lc($self->{form_}{name}); $self->classifier_()->delete_bucket( $session, $self->{form_}{name} ); ! $self->status_message__( $templ, sprintf( $self->{language__}{Bucket_Error6}, $self->{form_}{name} ) ); } *************** *** 2308,2321 **** if ( ( $self->{form_}{newname} eq '' ) || ( $self->{form_}{newname} =~ /$invalid_bucket_chars/ ) ) { ! $templ->param( 'Corpus_If_Rename_Error' => 1 ); } else { $self->{form_}{oname} = lc($self->{form_}{oname}); $self->{form_}{newname} = lc($self->{form_}{newname}); if ( $self->classifier_()->rename_bucket( $session, $self->{form_}{oname}, $self->{form_}{newname} ) == 1 ) { ! $templ->param( 'Corpus_If_Rename_Message' => 1 ); ! $templ->param( 'Corpus_Rename_Message' => sprintf( $self->{language__}{Bucket_Error5}, $self->{form_}{oname}, $self->{form_}{newname} ) ); } else { ! $templ->param( 'Corpus_If_Rename_Message' => 1 ); ! $templ->param( 'Corpus_Rename_Message' => 'Internal error: rename failed' ); } } --- 2338,2349 ---- if ( ( $self->{form_}{newname} eq '' ) || ( $self->{form_}{newname} =~ /$invalid_bucket_chars/ ) ) { ! $self->error_message__( $templ, $self->{language__}{Bucket_Error1} ); } else { $self->{form_}{oname} = lc($self->{form_}{oname}); $self->{form_}{newname} = lc($self->{form_}{newname}); if ( $self->classifier_()->rename_bucket( $session, $self->{form_}{oname}, $self->{form_}{newname} ) == 1 ) { ! $self->status_message__( $templ, sprintf( $self->{language__}{Bucket_Error5}, $self->{form_}{oname}, $self->{form_}{newname} ) ); } else { ! $self->error_message__( $templ, 'Internal error: rename failed' ); } } *************** *** 3158,3161 **** --- 3186,3190 ---- $row_data{History_Loop_Loop_Cells} = \@column_data; $row_data{History_If_Reclassified} = ( $$row[9] != 0 ); + $row_data{History_If_Magnetized} = ( $$row[11] ne '' ); $row_data{History_I} = $$row[0]; $row_data{History_I1} = $$row[0]; |
From: naoki i. <am...@us...> - 2008-03-30 05:33:55
|
Update of /cvsroot/popfile/engine/languages In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv29156/languages Modified Files: English.msg Nihongo.msg Log Message: Change Log 1. Add an interface and a function to change/initialize user's password UI/HTML.pm Classifier/Bayes.pm skins/default/users-page.thtml languages/English.msg 2. Bucket parameters are now copied from cloned user's Classifier/Bayes.pm 3. Non admin users can't access the Administration, Users and Advanced tabs. UI/HTML.pm 4. The history messages are now stored per user. 5. Users can't see/remove other users' history messages. Classifier/Bayes.pm POPFile/History.pm UI/HTML.pm 6. Sorting history messages now work correctly UI/HTML.pm skins/default/history-page.thtml 7. Server Mode options for SMTP and NNTP proxy are saved correctly 8. Server Mode checkboxes are disabled if all the modules are local UI/HTML.pm Proxy/POP3.pm Proxy/SMTP.pm Proxy/NNTP.pm 9. The 'Config Bar' string is now localizable skins/default/configration-bar.thtml languages/English.msg 10. The 'Stealth Mode' and 'Server Mode' strings are now localizable skins/default/administration-page.thtml languages/English.msg 11. Update language files languages/English.msg languages/Nihongo.msg Index: Nihongo.msg =================================================================== RCS file: /cvsroot/popfile/engine/languages/Nihongo.msg,v retrieving revision 1.19 retrieving revision 1.20 diff -C2 -d -r1.19 -r1.20 *** Nihongo.msg 27 Jan 2008 06:08:13 -0000 1.19 --- Nihongo.msg 30 Mar 2008 05:33:58 -0000 1.20 *************** *** 27,37 **** # These are where to find the documents on the Wiki ! WikiLink ! FAQLink FAQ ! RequestFeatureLink RequestFeature ! MailingListLink POPFileAnnounce # Common words that are used on their own all over the interface Apply ŬÍÑ On ON Off OFF --- 27,39 ---- # These are where to find the documents on the Wiki ! WikiLink JP ! FAQLink JP:FAQ ! RequestFeatureLink JP:RequestFeature ! MailingListLink JP:POPFileAnnounce # Common words that are used on their own all over the interface + Account POP3 ¥¢¥«¥¦¥ó¥È Apply ŬÍÑ + ApplyChanges Êѹ¹¤òŬÍÑ On ON Off OFF *************** *** 78,81 **** --- 80,86 ---- Arrived ¼õ¿®Æü»þ Size ¥µ¥¤¥º + Go ¥¸¥ã¥ó¥× + Edit ÊÔ½¸ + Logout ¥í¥°¥¢¥¦¥È # This is a regular expression pattern that is used to convert *************** *** 104,108 **** --- 109,115 ---- Header_Advanced ¾ÜºÙÀßÄê Header_Security ¥»¥¥å¥ê¥Æ¥£ + Header_Administration ´ÉÍý Header_Magnets ¥Þ¥°¥Í¥Ã¥È + Header_Users ¥æ¡¼¥¶¡¼ Footer_HomePage POPFile ¥Û¡¼¥à¥Ú¡¼¥¸ *************** *** 172,175 **** --- 179,195 ---- Configuration_SOCKSServerUpdate SOCKS V ¥×¥í¥¥·¤Î¥µ¡¼¥Ð¤ò %s ¤ËÊѹ¹¤·¤Þ¤·¤¿¡£ Configuration_Fields ÍúÎò¥¿¥Ö¤Ëɽ¼¨¤¹¤ë¹àÌÜ + Configuration_ChangePassword ¥Ñ¥¹¥ï¡¼¥É¤ÎÊѹ¹ + Configuration_OldPassword µì¥Ñ¥¹¥ï¡¼¥É + Configuration_NewPassword ¿·¥Ñ¥¹¥ï¡¼¥É + Configuration_ConfirmPassword ¿·¥Ñ¥¹¥ï¡¼¥É¤Î³Îǧ + Configuration_Password_Mismatch ¿·¥Ñ¥¹¥ï¡¼¥É¤È¿·¥Ñ¥¹¥ï¡¼¥É¤Î³Îǧ¤ÏƱ°ì¤Ç¤Ê¤¯¤Æ¤Ï¤Ê¤ê¤Þ¤»¤ó + Configuration_Password_Bad ÆþÎϤµ¤ì¤¿µì¥Ñ¥¹¥ï¡¼¥É¤¬´Ö°ã¤Ã¤Æ¤¤¤Þ¤¹ + Configuration_Password_Fail ¿·¤·¤¤¥Ñ¥¹¥ï¡¼¥É¤ËÀßÄê¤Ç¤¤Þ¤»¤ó¤Ç¤·¤¿ + Configuration_Set_Password ¿·¤·¤¤¥Ñ¥¹¥ï¡¼¥É¤¬ÀßÄꤵ¤ì¤Þ¤·¤¿ + Configuration_ConfigBar ÀßÄê¥Ð¡¼ + Configuration_Logger_Level0 Äã + Configuration_Logger_Level1 Ãæ + Configuration_Logger_Level2 ¹â + Configuration_Logger_Level ¥í¥°¥ì¥Ù¥ë: Advanced_Error1 '%s' ¤Ï´û¤Ë̵»ë¤¹¤ëñ¸ì¤Î¥ê¥¹¥È¤Ë´Þ¤Þ¤ì¤Æ¤¤¤Þ¤¹¡£ *************** *** 188,191 **** --- 208,242 ---- Advanced_ConfigFile ÀßÄê¥Õ¥¡¥¤¥ë: + Users_Create ¿·¤·¤¤¥æ¡¼¥¶¡¼¤ÎºîÀ® + Users_Remove ´û¸¥æ¡¼¥¶¡¼¤Îºï½ü + Users_Edit ¥æ¡¼¥¶¡¼ÀßÄê¤ÎÊÔ½¸ + Users_Change_Password ¥æ¡¼¥¶¡¼¥Ñ¥¹¥ï¡¼¥É¤ÎÊѹ¹/½é´ü²½ + Users_CopyFrom ÀßÄê¤ò¥³¥Ô¡¼¤¹¤ë¥æ¡¼¥¶¡¼ + Users_RemoveUser ¥æ¡¼¥¶¡¼¤Îºï½ü + Users_CreateUser ¥æ¡¼¥¶¡¼¤ÎºîÀ® + Users_EditUser ÊÔ½¸¤¹¤ë¥æ¡¼¥¶¡¼ + Users_ChangePasswordUser ¥Ñ¥¹¥ï¡¼¥É¤òÊѹ¹¤¹¤ë¥æ¡¼¥¶¡¼ + Users_ResetPassword ¥Ñ¥¹¥ï¡¼¥É¤Î½é´ü²½ + Users_Parameters ¥Ñ¥é¥á¡¼¥¿¡¼ + Users_Created ¥æ¡¼¥¶¡¼ '%s' ¤òºîÀ®¤·¤Þ¤·¤¿¡Ê½é´ü¥Ñ¥¹¥ï¡¼¥É¤Ï '%s'¡Ë + Users_Not_Created ¥æ¡¼¥¶¡¼ '%s' ¤òºîÀ®¤Ç¤¤Þ¤»¤ó¤Ç¤·¤¿ + Users_Created_And_Cloned ¥æ¡¼¥¶¡¼ '%s' ¤ò '%s' ¤ÎÀßÄê¤ò¥³¥Ô¡¼¤·¤ÆºîÀ®¤·¤Þ¤·¤¿¡Ê½é´ü¥Ñ¥¹¥ï¡¼¥É¤Ï '%s'¡Ë + Users_Not_Created_Exists ¥æ¡¼¥¶¡¼ '%s' ¤ÏºîÀ®¤Ç¤¤Þ¤»¤ó¤Ç¤·¤¿¡£¤¹¤Ç¤Ë¸ºß¤·¤Æ¤¤¤Þ¤¹ + Users_Created_Not_Cloned ¥æ¡¼¥¶¡¼ '%s' ¤òºîÀ®¤·¤Þ¤·¤¿¤¬¡¢'%s' ¤ÎÀßÄê¤Ï¥³¥Ô¡¼¤Ç¤¤Þ¤»¤ó¤Ç¤·¤¿¡Ê½é´ü¥Ñ¥¹¥ï¡¼¥É¤Ï '%s'¡Ë + Users_Removed ¥æ¡¼¥¶¡¼ '%s' ¤òºï½ü¤·¤Þ¤·¤¿ + Users_Removed_Failed ¥æ¡¼¥¶¡¼ '%s' ¤òºï½ü¤Ç¤¤Þ¤»¤ó¤Ç¤·¤¿ + Users_Removed_Failed_Admin ¥æ¡¼¥¶¡¼ '%s' ¤òºï½ü¤Ç¤¤Þ¤»¤ó¤Ç¤·¤¿¡£Àè¤Ë´ÉÍý¼Ô¸¢¸Â¤ò̵¸ú¤Ë¤·¤Æ¤¯¤À¤µ¤¤ + Users_Changed_Password ¥æ¡¼¥¶¡¼ '%s' ¤Î¥Ñ¥¹¥ï¡¼¥É¤òÊѹ¹¤·¤Þ¤·¤¿ + Users_Change_Password_Failed ¥æ¡¼¥¶¡¼ '%s' ¤Î¥Ñ¥¹¥ï¡¼¥É¤¬Êѹ¹¤Ç¤¤Þ¤»¤ó¤Ç¤·¤¿ + Users_Change_Password_Failed_Mismatch ¥æ¡¼¥¶¡¼ '%s' ¤Î¥Ñ¥¹¥ï¡¼¥É¤¬Êѹ¹¤Ç¤¤Þ¤»¤ó¤Ç¤·¤¿¡£ ¿·¥Ñ¥¹¥ï¡¼¥É¤È¿·¥Ñ¥¹¥ï¡¼¥É¤Î³Îǧ¤ÏƱ°ì¤Ç¤Ê¤¯¤Æ¤Ï¤Ê¤ê¤Þ¤»¤ó + Users_Reset_Password ¥æ¡¼¥¶¡¼ '%s' ¤Î¥Ñ¥¹¥ï¡¼¥É¤ò½é´ü²½¤·¤Þ¤·¤¿¡Ê¿·¤·¤¤½é´ü¥Ñ¥¹¥ï¡¼¥É¤Ï '%s'¡Ë + Users_Reset_Password_Failed ¥æ¡¼¥¶¡¼ '%s' ¤Î¥Ñ¥¹¥ï¡¼¥É¤¬½é´ü²½¤Ç¤¤Þ¤»¤ó¤Ç¤·¤¿ + Users_SingleUserMode ¥·¥ó¥°¥ë¥æ¡¼¥¶¡¼¥â¡¼¥É¡ÊPOPFile ¥¯¥é¥·¥Ã¥¯¡Ë + Users_Accounts ´ØÏ¢¤Å¤±¤é¤ì¤¿ POP3 ¥¢¥«¥¦¥ó¥È + Users_AddAccount POP3 ¥¢¥«¥¦¥ó¥È¤ÎÄɲáʥۥ¹¥È̾:¥æ¡¼¥¶¡¼Ì¾¡Ë + Users_Bad_Account ¿·¤·¤¤¥¢¥«¥¦¥ó¥È̾¤Ï¡Ö¥Û¥¹¥È̾:¥æ¡¼¥¶¡¼Ì¾¡×¤Î·Á¼°¤Ç¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó + Users_Duplicate_Account ¥¢¥«¥¦¥ó¥È¤òÄɲäǤ¤Þ¤»¤ó¤Ç¤·¤¿¡£Ê̤Υ桼¥¶¡¼¤Ë´ØÏ¢¤Å¤±¤é¤ì¤Æ¤¤¤Þ¤¹ + Users_Failed_Account ¥¢¥«¥¦¥ó¥È¤òÄɲäǤ¤Þ¤»¤ó¤Ç¤·¤¿¡£ + History_Filter (<font color="%s">%s </font>¥Ð¥±¥Ä¤Î¤ß¤òɽ¼¨) History_FilterBy ¥Õ¥£¥ë¥¿¥ê¥ó¥° *************** *** 225,228 **** --- 276,281 ---- Password_Title ¥Ñ¥¹¥ï¡¼¥É + Password_Password ¥Ñ¥¹¥ï¡¼¥É + Password_Username ¥æ¡¼¥¶¡¼Ì¾ Password_Enter ¥Ñ¥¹¥ï¡¼¥É¤òÆþÎϤ·¤Æ¤¯¤À¤µ¤¤ Password_Go ¥í¥°¥¤¥ó *************** *** 232,236 **** Security_Stealth ¥¹¥Æ¥ë¥¹¥â¡¼¥É/¥µ¡¼¥Ð¡¼¥ª¥Ú¥ì¡¼¥·¥ç¥ó Security_NoStealthMode ¤¤¤¤¤¨ (¥¹¥Æ¥ë¥¹¥â¡¼¥É) ! Security_StealthMode (¥¹¥Æ¥ë¥¹¥â¡¼¥É) Security_ExplainStats (POPFile ¤ÏËèÆü°ì²ó¡¢°Ê²¼¤Î»°¤Ä¤Î¥Ç¡¼¥¿¤ò www.usethesource.com ¾å¤Î¥¹¥¯¥ê¥×¥È¤ËÁ÷¤ê¤Þ¤¹¡£: bc (¥Ð¥±¥Ä¤ÎÁí¿ô)¡¢mc (POPFile ¤¬Ê¬Îष¤¿¥á¥Ã¥»¡¼¥¸¤ÎÁí¿ô)¡¢ec (ʬÎ२¥é¡¼¤ÎÁí¿ô)¡£¤³¤ì¤é¤Ï¥Õ¥¡¥¤¥ë¤ËµÏ¿¤µ¤ì¡¢POPFile ¤¬¤É¤Î¤è¤¦¤Ë»ÈÍѤµ¤ì¡¢¤É¤ÎÄøÅ٤θú²Ì¤ò¤¢¤²¤Æ¤¤¤ë¤Î¤«¤ò¼¨¤¹Åý·×¾ðÊó¤È¤·¤Æ¸ø³«¤µ¤»¤Æ¤¤¤¿¤À¤¤Þ¤¹¡£»ÈÍѤ·¤Æ¤¤¤Þ¤¹ Web ¥µ¡¼¥Ð¡¼¤Ï¤³¤ì¤é¤Î¥í¥°¥Õ¥¡¥¤¥ë¤òÌó¸ÞÆü´ÖÊݸ¤·¤¿¤¢¤È¡¢ºï½ü¤·¤Þ¤¹¡£¤³¤ì¤é¤ÎÅý·×Ãͤò IP ¥¢¥É¥ì¥¹¤È´ØÏ¢ÉÕ¤±¤ÆÊݸ¤·¤¿¤ê¤Ï¤¤¤Ã¤µ¤¤¤¤¤¿¤·¤Þ¤»¤ó¡£) Security_ExplainUpdate (POPFile ¤ÏËèÆü°ì²ó¡¢°Ê²¼¤Î»°¤Ä¤Î¥Ç¡¼¥¿¤ò www.usethesource.com ¾å¤Î¥¹¥¯¥ê¥×¥È¤ËÁ÷¤ê¤Þ¤¹¡£: ma (¥¤¥ó¥¹¥È¡¼¥ë¤µ¤ì¤Æ¤¤¤ë POPFile ¤Î¥á¥¸¥ã¡¼¥Ð¡¼¥¸¥ç¥óÈÖ¹æ)¡¢mi (¥¤¥ó¥¹¥È¡¼¥ë¤µ¤ì¤Æ¤¤¤ë POPFile ¤Î¥Þ¥¤¥Ê¡¼¥Ð¡¼¥¸¥ç¥óÈÖ¹æ)¡¢bn (¥¤¥ó¥¹¥È¡¼¥ë¤µ¤ì¤Æ¤¤¤ë POPFile ¤Î¥Ó¥ë¥ÉÈÖ¹æ)¡£¿·¤·¤¤¥Ð¡¼¥¸¥ç¥ó¤¬¥ê¥ê¡¼¥¹¤µ¤ì¤ë¤È¡¢POPFile ¤Ï¤½¤Î¾ðÊó¤ò¼õ¤±¤Æ¥Ú¡¼¥¸¤Î¾åÉô¤Ë¥°¥é¥Õ¥£¥Ã¥¯¤òɽ¼¨¤·¤Æ¤ªÃΤ餻¤·¤Þ¤¹¡£»ÈÍѤ·¤Æ¤¤¤Þ¤¹ Web ¥µ¡¼¥Ð¡¼¤Ï¤³¤ì¤é¤Î¥í¥°¥Õ¥¡¥¤¥ë¤òÌó¸ÞÆü´ÖÊݸ¤·¤¿¤¢¤È¡¢ºï½ü¤·¤Þ¤¹¡£¤³¤ì¤é¤Î¹¹¿·¥Á¥§¥Ã¥¯¤Ë»ÈÍѤ·¤¿¥Ç¡¼¥¿¤ò IP ¥¢¥É¥ì¥¹¤È´ØÏ¢ÉÕ¤±¤ÆÊݸ¤·¤¿¤ê¤Ï¤¤¤Ã¤µ¤¤¤¤¤¿¤·¤Þ¤»¤ó¡£) --- 285,290 ---- Security_Stealth ¥¹¥Æ¥ë¥¹¥â¡¼¥É/¥µ¡¼¥Ð¡¼¥ª¥Ú¥ì¡¼¥·¥ç¥ó Security_NoStealthMode ¤¤¤¤¤¨ (¥¹¥Æ¥ë¥¹¥â¡¼¥É) ! Security_StealthMode ¥¹¥Æ¥ë¥¹¥â¡¼¥É (¥ê¥â¡¼¥È¤«¤é¤ÎÀܳ¤ò¶Ø»ß) ! Security_ServerMode ¥µ¡¼¥Ð¡¼¥â¡¼¥É (¥ê¥â¡¼¥È¤«¤é¤ÎÀܳ¤òµö²Ä) Security_ExplainStats (POPFile ¤ÏËèÆü°ì²ó¡¢°Ê²¼¤Î»°¤Ä¤Î¥Ç¡¼¥¿¤ò www.usethesource.com ¾å¤Î¥¹¥¯¥ê¥×¥È¤ËÁ÷¤ê¤Þ¤¹¡£: bc (¥Ð¥±¥Ä¤ÎÁí¿ô)¡¢mc (POPFile ¤¬Ê¬Îष¤¿¥á¥Ã¥»¡¼¥¸¤ÎÁí¿ô)¡¢ec (ʬÎ२¥é¡¼¤ÎÁí¿ô)¡£¤³¤ì¤é¤Ï¥Õ¥¡¥¤¥ë¤ËµÏ¿¤µ¤ì¡¢POPFile ¤¬¤É¤Î¤è¤¦¤Ë»ÈÍѤµ¤ì¡¢¤É¤ÎÄøÅ٤θú²Ì¤ò¤¢¤²¤Æ¤¤¤ë¤Î¤«¤ò¼¨¤¹Åý·×¾ðÊó¤È¤·¤Æ¸ø³«¤µ¤»¤Æ¤¤¤¿¤À¤¤Þ¤¹¡£»ÈÍѤ·¤Æ¤¤¤Þ¤¹ Web ¥µ¡¼¥Ð¡¼¤Ï¤³¤ì¤é¤Î¥í¥°¥Õ¥¡¥¤¥ë¤òÌó¸ÞÆü´ÖÊݸ¤·¤¿¤¢¤È¡¢ºï½ü¤·¤Þ¤¹¡£¤³¤ì¤é¤ÎÅý·×Ãͤò IP ¥¢¥É¥ì¥¹¤È´ØÏ¢ÉÕ¤±¤ÆÊݸ¤·¤¿¤ê¤Ï¤¤¤Ã¤µ¤¤¤¤¤¿¤·¤Þ¤»¤ó¡£) Security_ExplainUpdate (POPFile ¤ÏËèÆü°ì²ó¡¢°Ê²¼¤Î»°¤Ä¤Î¥Ç¡¼¥¿¤ò www.usethesource.com ¾å¤Î¥¹¥¯¥ê¥×¥È¤ËÁ÷¤ê¤Þ¤¹¡£: ma (¥¤¥ó¥¹¥È¡¼¥ë¤µ¤ì¤Æ¤¤¤ë POPFile ¤Î¥á¥¸¥ã¡¼¥Ð¡¼¥¸¥ç¥óÈÖ¹æ)¡¢mi (¥¤¥ó¥¹¥È¡¼¥ë¤µ¤ì¤Æ¤¤¤ë POPFile ¤Î¥Þ¥¤¥Ê¡¼¥Ð¡¼¥¸¥ç¥óÈÖ¹æ)¡¢bn (¥¤¥ó¥¹¥È¡¼¥ë¤µ¤ì¤Æ¤¤¤ë POPFile ¤Î¥Ó¥ë¥ÉÈÖ¹æ)¡£¿·¤·¤¤¥Ð¡¼¥¸¥ç¥ó¤¬¥ê¥ê¡¼¥¹¤µ¤ì¤ë¤È¡¢POPFile ¤Ï¤½¤Î¾ðÊó¤ò¼õ¤±¤Æ¥Ú¡¼¥¸¤Î¾åÉô¤Ë¥°¥é¥Õ¥£¥Ã¥¯¤òɽ¼¨¤·¤Æ¤ªÃΤ餻¤·¤Þ¤¹¡£»ÈÍѤ·¤Æ¤¤¤Þ¤¹ Web ¥µ¡¼¥Ð¡¼¤Ï¤³¤ì¤é¤Î¥í¥°¥Õ¥¡¥¤¥ë¤òÌó¸ÞÆü´ÖÊݸ¤·¤¿¤¢¤È¡¢ºï½ü¤·¤Þ¤¹¡£¤³¤ì¤é¤Î¹¹¿·¥Á¥§¥Ã¥¯¤Ë»ÈÍѤ·¤¿¥Ç¡¼¥¿¤ò IP ¥¢¥É¥ì¥¹¤È´ØÏ¢ÉÕ¤±¤ÆÊݸ¤·¤¿¤ê¤Ï¤¤¤Ã¤µ¤¤¤¤¤¿¤·¤Þ¤»¤ó¡£) *************** *** 253,257 **** Security_XMLRPC ¥ê¥â¡¼¥È¥Þ¥·¥ó¤«¤é¤Î XML-RPC Àܳ¤òǧ¤á¤ë (POPFile ¤ÎºÆµ¯Æ°¤¬É¬Í×) Security_UpdateTitle ¹¹¿·¼«Æ°¥Á¥§¥Ã¥¯ ! Security_Update POPFile ¤¬¹¹¿·¤µ¤ì¤Æ¤¤¤ë¤«¤É¤¦¤«ËèÆü¥Á¥§¥Ã¥¯¤·¤Þ¤¹ Security_StatsTitle Åý·×¾ðÊó¥ì¥Ý¡¼¥È Security_Stats Åý·×¾ðÊó¤òËèÆüÁ÷¤ë --- 307,311 ---- Security_XMLRPC ¥ê¥â¡¼¥È¥Þ¥·¥ó¤«¤é¤Î XML-RPC Àܳ¤òǧ¤á¤ë (POPFile ¤ÎºÆµ¯Æ°¤¬É¬Í×) Security_UpdateTitle ¹¹¿·¼«Æ°¥Á¥§¥Ã¥¯ ! Security_Update POPFile ¤¬¹¹¿·¤µ¤ì¤Æ¤¤¤ë¤«¤É¤¦¤«ËèÆü¥Á¥§¥Ã¥¯¤¹¤ë Security_StatsTitle Åý·×¾ðÊó¥ì¥Ý¡¼¥È Security_Stats Åý·×¾ðÊó¤òËèÆüÁ÷¤ë *************** *** 268,271 **** --- 322,326 ---- Magnet_Always ʬÎàÀè¤Î¥Ð¥±¥Ä Magnet_Jump ¥Þ¥°¥Í¥Ã¥È¥Ú¡¼¥¸¤Ë¥¸¥ã¥ó¥× + Magnet_Note ¥Þ¥°¥Í¥Ã¥È¤Ï POPFile ¤Î³Ø½¬¥×¥í¥»¥¹¤ò¥Ð¥¤¥Ñ¥¹¤¹¤ë¤³¤È¤Ë¤Ê¤ë¤¿¤á¡¢¿µ½Å¤Ë»È¤¦¤Ù¤¤Ç¤¹¡£¥Þ¥°¥Í¥Ã¥È¤ò»ÈÍѤ¹¤ë¤³¤È¤Ë¤è¤ê¡¢POPFile ¤¬¹â¤¤ÀºÅÙ¤Ë㤹¤ë¤Þ¤Ç¤Ë¤è¤êŤ¤»þ´Ö¤¬¤«¤«¤ë¤³¤È¤Ë¤Ê¤ë¤Ç¤·¤ç¤¦¡£<br /><br >¥Þ¥°¥Í¥Ã¥È¤Ë¤Ä¤¤¤Æ¤Î¾ÜºÙ¤Ï<a href="http://popfile.sourceforge.net/wiki/jp:glossary:amagnet">POPFile ¥É¥¥å¥á¥ó¥Æ¡¼¥·¥ç¥ó¥×¥í¥¸¥§¥¯¥È</a>¤ò¤ªÆÉ¤ß¤¯¤À¤µ¤¤¡£ Bucket_Error1 ¥Ð¥±¥Ä̾¤Ë¤Ï¥¢¥ë¥Õ¥¡¥Ù¥Ã¥È¤Î¾®Ê¸»ú(a ¤«¤é z ¤Þ¤Ç)¤« - (¥Ï¥¤¥Õ¥ó)¡¢¤Þ¤¿¤Ï _ (¥¢¥ó¥À¡¼¥¹¥³¥¢)¤·¤«»È¤¨¤Þ¤»¤ó¡£ *************** *** 293,296 **** --- 348,352 ---- Bucket_ResetStatistics ¥ê¥»¥Ã¥È Bucket_LastReset ºÇ¸å¤Î¥ê¥»¥Ã¥È + Bucket_MessagesPerDay 1 Æü¤¢¤¿¤ê¤Î¥á¡¼¥ë¿ô Bucket_CurrentColor %s ¸½ºß¤Î¿§¤Ï %s Bucket_SetColorTo %s ¤Î¿§¤ò %s ¤ËÀßÄê *************** *** 331,336 **** View_DownloadMessage ¥á¥Ã¥»¡¼¥¸¤ò¥À¥¦¥ó¥í¡¼¥É ! Windows_TrayIcon POPFile ¤Î¥¢¥¤¥³¥ó¤ò Windows ¥·¥¹¥Æ¥à¥È¥ì¥¤¤Ëɽ¼¨¤·¤Þ¤¹¤«¡© ! Windows_Console POPFile ¤Î¥á¥Ã¥»¡¼¥¸¤ò¥³¥ó¥½¡¼¥ë¥¦¥£¥ó¥É¥¦¤Ë½ÐÎϤ·¤Þ¤¹¤«¡© Windows_NextTime <p><font color="red">¤³¤ÎÊѹ¹¤Ï POPFile ¤ò¼¡²óµ¯Æ°¤¹¤ë¤Þ¤Ç͸ú¤Ë¤Ê¤ê¤Þ¤»¤ó¡£</font> --- 387,392 ---- View_DownloadMessage ¥á¥Ã¥»¡¼¥¸¤ò¥À¥¦¥ó¥í¡¼¥É ! Windows_TrayIcon POPFile ¤Î¥¢¥¤¥³¥ó¤ò Windows ¥·¥¹¥Æ¥à¥È¥ì¥¤¤Ëɽ¼¨¤¹¤ë ! Windows_Console POPFile ¤Î¥á¥Ã¥»¡¼¥¸¤ò¥³¥ó¥½¡¼¥ë¥¦¥£¥ó¥É¥¦¤Ë½ÐÎϤ¹¤ë Windows_NextTime <p><font color="red">¤³¤ÎÊѹ¹¤Ï POPFile ¤ò¼¡²óµ¯Æ°¤¹¤ë¤Þ¤Ç͸ú¤Ë¤Ê¤ê¤Þ¤»¤ó¡£</font> *************** *** 350,356 **** --- 406,414 ---- Security_MainTableSummary This table provides sets of controls that affect the security of the overall configuration of POPFile, whether it should automatically check for updates to the program, and whether statistics about POPFile's performance should be sent to the central datastore of the program's author for general information. Advanced_MainTableSummary This table provides a list of words that POPFile ignores when classifying email due to their relative frequency in email in general. They are organized per row according to the first letter of the words. + Users_AccountTableSummary This table provides a list of POP3 accounts that are associated with the user being edited. Imap_Bucket2Folder <b>%s</b> ¥Ð¥±¥Ä¤ËʬÎव¤ì¤¿¥á¡¼¥ë¤Î°ÜưÀè Imap_MapError Ê£¿ô¤Î¥Ð¥±¥Ä¤ò¤Ò¤È¤Ä¤Î¥Õ¥©¥ë¥À¤ËÂбþÉÕ¤±¤¹¤ë¤³¤È¤Ï¤Ç¤¤Þ¤»¤ó¡£ + Imap_MapUpdated ¥Ð¥±¥Ä '%s' ¤ò ¥Õ¥©¥ë¥À '%s' ¤ËÂбþÉÕ¤±¤Þ¤·¤¿¡£ Imap_Server IMAP ¥µ¡¼¥Ð ¥Û¥¹¥È̾: Imap_ServerNameError ¥µ¡¼¥Ð¤Î¥Û¥¹¥È̾¤òÆþÎϤ·¤Æ¤¯¤À¤µ¤¤¡£ *************** *** 361,367 **** --- 419,427 ---- Imap_Password IMAP ¥¢¥«¥¦¥ó¥È¤Î¥Ñ¥¹¥ï¡¼¥É: Imap_PasswordError ¥µ¡¼¥Ð¤ËÂФ¹¤ë¥Ñ¥¹¥ï¡¼¥É¤òÆþÎϤ·¤Æ¤¯¤À¤µ¤¤¡£ + Imap_ConnectionDetailsUpdated IMAP ¤ÎÀܳÀßÄ꤬¹¹¿·¤µ¤ì¤Þ¤·¤¿¡£¼¡¤Ï¥Õ¥©¥ë¥À¥ê¥¹¥È¤ò¹¹¿·¤·¤Æ¤¯¤À¤µ¤¤¡£ Imap_Expunge ´Æ»ë¥Õ¥©¥ë¥À¤«¤é°Üư¤µ¤ì¤¿¥á¥Ã¥»¡¼¥¸¤òºï½ü¤¹¤ë¡£ Imap_Interval ¹¹¿·¤Î´Ö³Ö¡ÊÉáË: Imap_IntervalError ¹¹¿·´Ö³Ö¤Ï10É䫤é3600ÉÃ¤Î´Ö¤ÇÆþÎϤ·¤Æ¤¯¤À¤µ¤¤¡£ + Imap_OptionsUpdated IMAP ¤Î¥ª¥×¥·¥ç¥ó¤ÏÀµ¾ï¤Ë¹¹¿·¤µ¤ì¤Þ¤·¤¿¡£ Imap_Bytelimit ʬÎà¤Î¤¿¤á¤Ë»ÈÍѤ¹¤ë¥á¥Ã¥»¡¼¥¸¤Î¥Ð¥¤¥È¿ô¡£0¡Ê¶õÇò¡Ë¤Î¾ì¹ç¡¢¥á¥Ã¥»¡¼¥¸¤ÎÁ´ÂΤò»ÈÍѤ·¤Þ¤¹: Imap_BytelimitError ¿ô»ú¤òÆþÎϤ·¤Æ¤¯¤À¤µ¤¤¡£ *************** *** 371,381 **** Imap_UpdateError2 ¥µ¡¼¥Ð¤ËÀܳ¤Ç¤¤Þ¤»¤ó¡£¥Û¥¹¥È̾¤È¥Ý¡¼¥ÈÈÖ¹æ¤ò³Îǧ¤¹¤ë¤È¤È¤â¤Ë¡¢¥¤¥ó¥¿¡¼¥Í¥Ã¥È¤ËÀܳ¤µ¤ì¤Æ¤¤¤ë¤«¤É¤¦¤«¤ò³Îǧ¤·¤Æ¤¯¤À¤µ¤¤¡£ Imap_UpdateError3 ¥µ¡¼¥Ð¤ËÀܳ¤¹¤ë¤¿¤á¤Î¾ðÊó¤òÀè¤ËÀßÄꤷ¤Æ¤¯¤À¤µ¤¤¡£ Imap_NoConnectionMessage ¥µ¡¼¥Ð¤ËÀܳ¤¹¤ë¤¿¤á¤Î¾ðÊó¤òÀè¤ËÀßÄꤷ¤Æ¤¯¤À¤µ¤¤¡£¤½¤¦¤¹¤ë¤È¡¢¤µ¤é¤Ë¿¤¯¤Î¥ª¥×¥·¥ç¥ó¤¬ÀßÄê¤Ç¤¤ë¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£ Imap_WatchMore ´Æ»ë¥Õ¥©¥ë¥À¥ê¥¹¥È¤Ë¥Õ¥©¥ë¥À¤òÄɲà Imap_WatchedFolder ´Æ»ë¥Õ¥©¥ë¥À Shutdown_Message POPFile ¤Ï½ªÎ»¤·¤Þ¤·¤¿¡£ ! Help_Training POPFile ¤ò¤³¤ì¤«¤é»È¤¤»Ï¤á¤ë¾ì¹ç¡¢¤¢¤ëÄøÅ٤Υȥ졼¥Ë¥ó¥°¤¬É¬ÍפȤʤê¤Þ¤¹¡£¤½¤ì¤Ï¡¢POPFile ¤Ï¤É¤Î¥á¡¼¥ë¤¬É¬Íפʥ᡼¥ë¤Ç¤É¤Î¥á¡¼¥ë¤¬ÉÔÍפʥ᡼¥ë¤«¤Ë¤Ä¤¤¤Æ¤Ê¤Ë¤âÃΤé¤Ê¤¤¤«¤é¤Ç¤¹¡£¥È¥ì¡¼¥Ë¥ó¥°¤Ï¤½¤ì¤¾¤ì¤Î¥Ð¥±¥Ä¤Ë¤Ä¤¤¤Æ¹Ô¤¦É¬Íפ¬¤¢¤ê¡ÊºÇÄã¤Ç¤â£±¤Ä¤Î¥Ð¥±¥Ä¤Ë¤Ä¤¤¤Æ¡¢£±¤Ä°Ê¾å¤Î¥á¥Ã¥»¡¼¥¸¤òºÆÊ¬Îह¤ë¡Ë¡¢POPFile ¤¬Ê¬Îà¤ò´Ö°ã¤¨¤¿¥á¥Ã¥»¡¼¥¸¤òÀµ¤·¤¤¥Ð¥±¥Ä¤ËºÆÊ¬Îह¤ë¡ÊÍúÎò¤Î±¦Â¦¤Ë¤¢¤ë¥á¥Ë¥å¡¼¤«¤éÀµ¤·¤¤Ê¬ÎàÀè¤òÁªÂò¤·¤Æ¡ÖºÆÊ¬Îà¡×¥Ü¥¿¥ó¤ò¥¯¥ê¥Ã¥¯¤¹¤ë¡Ë¤³¤È¤Ë¤è¤Ã¤Æ¥È¥ì¡¼¥Ë¥ó¥°¤¹¤ë¤³¤È¤¬¤Ç¤¤Þ¤¹¡£¤Þ¤¿¡¢POPFile ¤¬¹Ô¤Ã¤¿Ê¬Îà¤Ë¤¢¤ï¤»¤Æ¥Õ¥©¥ë¥À¤Ë°Üư¤¹¤ë¤Ê¤É¡¢¥á¡¼¥ë¥¯¥é¥¤¥¢¥ó¥È¤òÀßÄꤹ¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£¥á¡¼¥ë¥¯¥é¥¤¥¢¥ó¥È¤ÎÀßÄê¤Ë¤Ä¤¤¤Æ¤Ï¡¢<a href="http://popfile.sourceforge.net/cgi-bin/wiki.pl?JP_FrequentlyAskedQuestions/EmailSorting">POPFile ¥É¥¥å¥á¥ó¥Æ¡¼¥·¥ç¥ó¥×¥í¥¸¥§¥¯¥È</a>¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£ Help_Bucket_Setup POPFile ¤Ç¤Ï¡¢¤â¤È¤â¤È¤¢¤ë unclassified ¤È¤¤¤¦²¾ÁÛŪ¤Ê¥Ð¥±¥Ä°Ê³°¤Ë¡¢ºÇÄã¤Ç¤â£²¤Ä¤Î¥Ð¥±¥Ä¤òºîÀ®¤¹¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£POPFile ¤ÎÆÃħ¤Ï¡¢¡Ê¥á¡¼¥ë¤ò spam ¤È¤½¤ì°Ê³°¤ËʬÎह¤ë¤È¤¤¤¦¤À¤±¤Ç¤Ï¤Ê¤¯¡Ë¤¤¤¯¤Ä¤Ç¤â¥Ð¥±¥Ä¤òºîÀ®¤·¡¢¤½¤ì¤é¤Ë¥á¡¼¥ë¤òʬÎह¤ë¤³¤È¤¬¤Ç¤¤ë¤³¤È¤Ç¤¹¡£´Êñ¤ÊÀßÄê¤Ç¤Ï¡¢"spam"¡¢"personal"¡¢"work" ¤È¤¤¤Ã¤¿¥Ð¥±¥Ä¤òÀßÄꤹ¤ë¤³¤È¤Ë¤Ê¤ë¤Ç¤·¤ç¤¦¡£ Help_No_More ¼¡²ó¤«¤éɽ¼¨¤·¤Ê¤¤¡£ --- 431,540 ---- Imap_UpdateError2 ¥µ¡¼¥Ð¤ËÀܳ¤Ç¤¤Þ¤»¤ó¡£¥Û¥¹¥È̾¤È¥Ý¡¼¥ÈÈÖ¹æ¤ò³Îǧ¤¹¤ë¤È¤È¤â¤Ë¡¢¥¤¥ó¥¿¡¼¥Í¥Ã¥È¤ËÀܳ¤µ¤ì¤Æ¤¤¤ë¤«¤É¤¦¤«¤ò³Îǧ¤·¤Æ¤¯¤À¤µ¤¤¡£ Imap_UpdateError3 ¥µ¡¼¥Ð¤ËÀܳ¤¹¤ë¤¿¤á¤Î¾ðÊó¤òÀè¤ËÀßÄꤷ¤Æ¤¯¤À¤µ¤¤¡£ + Imap_UpdateOK Successfully read the list of mailboxes/folders on the server. Imap_NoConnectionMessage ¥µ¡¼¥Ð¤ËÀܳ¤¹¤ë¤¿¤á¤Î¾ðÊó¤òÀè¤ËÀßÄꤷ¤Æ¤¯¤À¤µ¤¤¡£¤½¤¦¤¹¤ë¤È¡¢¤µ¤é¤Ë¿¤¯¤Î¥ª¥×¥·¥ç¥ó¤¬ÀßÄê¤Ç¤¤ë¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£ Imap_WatchMore ´Æ»ë¥Õ¥©¥ë¥À¥ê¥¹¥È¤Ë¥Õ¥©¥ë¥À¤òÄɲà + Imap_WatchedFolderAdded ´Æ»ë¥Õ¥©¥ë¥À¥ê¥¹¥È¤Î¹àÌܤò¤Ò¤È¤ÄÁý¤ä¤·¤Þ¤·¤¿¡£´Æ»ë¤·¤¿¤¤¥Õ¥©¥ë¥À¤òÁª¤ó¤Ç¤¯¤À¤µ¤¤¡£ Imap_WatchedFolder ´Æ»ë¥Õ¥©¥ë¥À + Imap_WatchedFoldersUpdated ´Æ»ë¥Õ¥©¥ë¥À¤Î¥ê¥¹¥È¤ò¹¹¿·¤·¤Þ¤·¤¿ + Imap_WatchedFolderRemoved ´Æ»ë¥Õ¥©¥ë¥À¤Î¥ê¥¹¥È¤«¤é¥Õ¥©¥ë¥À '%' ¤òºï½ü¤·¤Þ¤·¤¿ + Imap_DoingTraining IMAP ¥â¥¸¥å¡¼¥ë¤Ï¤³¤ì¤«¤é¥á¥Ã¥»¡¼¥¸¥¢¡¼¥«¥¤¥Ö¤«¤é³Ø½¬¤ò»Ï¤á¤ë¤È¤³¤í¤Ç¤¹¡£³Ø½¬¤¬½ª¤ï¤ë¤Þ¤Ç¤Î´Ö POPFile ¤Î UI ¤ÏÈ¿±þ¤·¤Ê¤¯¤Ê¤ê¤Þ¤¹¡£¥¢¡¼¥«¥¤¥Ö¤ÎÂ礤µ¤ä IMAP ¥µ¡¼¥Ð¤È¤ÎÀܳ®Å٤ˤâ¤è¤ê¤Þ¤¹¤¬¡¢¤³¤Î½èÍý¤Ë¤Ï¤·¤Ð¤é¤¯¤«¤«¤ê¤Þ¤¹¡£ + Imap_DoTraining ´û¸¤Î¥á¡¼¥ë¥¢¡¼¥«¥¤¥Ö¤«¤é³Ø½¬¤·¤Þ¤¹¡£ + Imap_Use_SSL SSL »ÈÍÑ Shutdown_Message POPFile ¤Ï½ªÎ»¤·¤Þ¤·¤¿¡£ ! Help_Training POPFile ¤ò¤³¤ì¤«¤é»È¤¤»Ï¤á¤ë¾ì¹ç¡¢¤¢¤ëÄøÅ٤Υȥ졼¥Ë¥ó¥°¤¬É¬ÍפȤʤê¤Þ¤¹¡£¤½¤ì¤Ï¡¢POPFile ¤Ï¤É¤Î¥á¡¼¥ë¤¬É¬Íפʥ᡼¥ë¤Ç¤É¤Î¥á¡¼¥ë¤¬ÉÔÍפʥ᡼¥ë¤«¤Ë¤Ä¤¤¤Æ¤Ê¤Ë¤âÃΤé¤Ê¤¤¤«¤é¤Ç¤¹¡£¥È¥ì¡¼¥Ë¥ó¥°¤Ï¤½¤ì¤¾¤ì¤Î¥Ð¥±¥Ä¤Ë¤Ä¤¤¤Æ¹Ô¤¦É¬Íפ¬¤¢¤ê¡ÊºÇÄã¤Ç¤â£±¤Ä¤Î¥Ð¥±¥Ä¤Ë¤Ä¤¤¤Æ¡¢£±¤Ä°Ê¾å¤Î¥á¥Ã¥»¡¼¥¸¤òºÆÊ¬Îह¤ë¡Ë¡¢POPFile ¤¬Ê¬Îà¤ò´Ö°ã¤¨¤¿¥á¥Ã¥»¡¼¥¸¤òÀµ¤·¤¤¥Ð¥±¥Ä¤ËºÆÊ¬Îह¤ë¤³¤È¤Ë¤è¤Ã¤Æ¥È¥ì¡¼¥Ë¥ó¥°¤¹¤ë¤³¤È¤¬¤Ç¤¤Þ¤¹¡£¤Þ¤¿¡¢POPFile ¤¬¹Ô¤Ã¤¿Ê¬Îà¤Ë¤¢¤ï¤»¤Æ¥Õ¥©¥ë¥À¤Ë°Üư¤¹¤ë¤Ê¤É¡¢¥á¡¼¥ë¥¯¥é¥¤¥¢¥ó¥È¤òÀßÄꤹ¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£¥á¡¼¥ë¥¯¥é¥¤¥¢¥ó¥È¤ÎÀßÄê¤Ë¤Ä¤¤¤Æ¤Ï¡¢<a href="http://popfile.sourceforge.net/wiki/JP:FAQ:EmailSorting">POPFile ¥É¥¥å¥á¥ó¥Æ¡¼¥·¥ç¥ó¥×¥í¥¸¥§¥¯¥È</a>¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£ Help_Bucket_Setup POPFile ¤Ç¤Ï¡¢¤â¤È¤â¤È¤¢¤ë unclassified ¤È¤¤¤¦²¾ÁÛŪ¤Ê¥Ð¥±¥Ä°Ê³°¤Ë¡¢ºÇÄã¤Ç¤â£²¤Ä¤Î¥Ð¥±¥Ä¤òºîÀ®¤¹¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£POPFile ¤ÎÆÃħ¤Ï¡¢¡Ê¥á¡¼¥ë¤ò spam ¤È¤½¤ì°Ê³°¤ËʬÎह¤ë¤È¤¤¤¦¤À¤±¤Ç¤Ï¤Ê¤¯¡Ë¤¤¤¯¤Ä¤Ç¤â¥Ð¥±¥Ä¤òºîÀ®¤·¡¢¤½¤ì¤é¤Ë¥á¡¼¥ë¤òʬÎह¤ë¤³¤È¤¬¤Ç¤¤ë¤³¤È¤Ç¤¹¡£´Êñ¤ÊÀßÄê¤Ç¤Ï¡¢"spam"¡¢"personal"¡¢"work" ¤È¤¤¤Ã¤¿¥Ð¥±¥Ä¤òÀßÄꤹ¤ë¤³¤È¤Ë¤Ê¤ë¤Ç¤·¤ç¤¦¡£ Help_No_More ¼¡²ó¤«¤éɽ¼¨¤·¤Ê¤¤¡£ + + # Tooltips used in title attribute of parts of the UI + tip_Menu_History POPFile ¤¬½èÍý¤·¤¿¥á¡¼¥ë¤ò³Îǧ¤·¡¢ºÆÊ¬Îष¤Þ¤¹ + tip_Menu_Buckets ¥Ð¥±¥Ä¤ò´ÉÍý¤·¤¿¤ê¡¢Ê¬Îà¤ÎÅý·×¾ðÊó¤ò³Îǧ¤·¤Þ¤¹ + tip_Menu_Magnets ¥Ù¥¤¥¸¥¢¥ó¥Õ¥£¥ë¥¿¥·¥¹¥Æ¥à¤ò¥Ð¥¤¥Ñ¥¹¤¹¤ëñ½ã¤Ê¥Õ¥£¥ë¥¿¤ò´ÉÍý¤·¤Þ¤¹ + tip_Menu_Admin ¥ª¥×¥·¥ç¥óÀßÄê¤òÊѹ¹¤·¤Þ¤¹ + tip_Menu_Users ¥æ¡¼¥¶¡¼¤ò´ÉÍý¤·¤Þ¤¹ + tip_Menu_Advanced ¹âÅÙ¤ÊÀßÄê¤òÊѹ¹¤·¤Þ¤¹ + + tip_History_RecentNum Number of messages matching current Search and Filter + tip_History_Reclassify ʬÎàÀè¥Ð¥±¥Ä¤Î½¤Àµ¤ò¹Ô¤¤¤Þ¤¹ + tip_History_Search Find matches in the From address or Subject + tip_History_Filter Limit the view to the items in the selected bucket + tip_History_SearchNegate Invert both the Search and Filter + tip_History_SearchSubmit Submit Search and Filter + tip_History_SearchReset Clear Search and Filter + tip_History_RemoveAll Remove all messages from history (matching Search and Filter) + tip_History_RemoveChecked Remove selected messages from history + tip_History_RemovePage Remove messages on this page from history + tip_History_RemoveColumn Îó¤òºï½ü¤·¤Þ¤¹ + tip_History_MoveLeft º¸¤Ø°Üư¤·¤Þ¤¹ + tip_History_MoveRight ±¦¤Ø°Üư¤·¤Þ¤¹ + tip_History_Sort ¤³¤ÎÎó¤ÇʤÓÂØ¤¨¤Þ¤¹ + + tip_Bucket_BucketName View bucket details + tip_Bucket_Unique Unique words in each bucket + tip_Bucket_SubjectMod Insert bucket name to begining of the subject + tip_Bucket_XTCHeader Insert header that most mail clients can use to filter based on POPFile's classification + tip_Bucket_XPLHeader Insert a header with a link to the message to allow for quickly reclassifing a message + tip_Bucket_Quarantine Islolate potentially dangerous email by placing it in attachment + tip_Bucket_Color Select a color for each bucket + tip_Bucket_Lookup Look up the probability and frequency of a word in all buckets + tip_Bucket_Accuracy Overall classification accuracy + tip_Bucket_Classified Bucket statistics and accuracy + tip_Bucket_WordCount Number and percentage of total words in each bucket + tip_Bucket_Create ¿·¤·¤¤¥Ð¥±¥Ä¤òºîÀ®¤·¤Þ¤¹ + tip_Bucket_Delete ¥Ð¥±¥Ä¤È¤³¤Î¥Ð¥±¥Ä¤Ø¤Î³Ø½¬ÆâÍÆ¤òºï½ü¤·¤Þ¤¹ + tip_Bucket_Rename ¥Ð¥±¥Ä¤Î̾Á°¤òÊѹ¹¤·¤Þ¤¹ + tip_Bucket_FalsePos ¸í¤Ã¤Æ¤³¤Î¥Ð¥±¥Ä¤ËʬÎव¤ì¤¿¥á¥Ã¥»¡¼¥¸ + tip_Bucket_FalseNeg ¸í¤Ã¤Æ¤³¤Î¥Ð¥±¥Ä¤ËʬÎà<b>¤µ¤ì¤Ê¤«¤Ã¤¿</b>¥á¥Ã¥»¡¼¥¸ + tip_Bucket_ResetStats ʬÎàÀºÅÙ¤ÎÅý·×¾ðÊó¤ò½é´ü²½¤·¤Þ¤¹ + + tip_Magnet_Type Message header to match + tip_Magnet_Value Text or address to match + tip_Magnet_Bucket Bucket to send matches to + + tip_Config_Skin Change the look of POPFile + tip_Config_Language Change the interface language + tip_Config_HistoryColumns Add columns you want to display in message history + tip_Config_PageSize Number of messages to display per page + tip_Config_Days Number of days to keep messages in history + tip_Config_Purge Purge older messages now + tip_Config_HistoryWidth Adjust size of history columns + tip_Config_ColumnIncrease Increase width of columns + tip_Config_ColumnDecrease Decrease width of columns + tip_Config_ColumnAuto Reset column width based on current columns + tip_Config_HideBar Hide configuration bar + tip_Config_ShowBar Show configuration bar + tip_Config_Password Change password for accessing POPFile's Control Center + + tip_Admin_AcceptRemoteHTTP Allow UI access from another machine + tip_Admin_AcceptRemotePOP3 Allow POP3 mail dowload from another machine + tip_Admin_Password Add a password to limit access to POPFile + tip_Admin_UpdateCheck 0.22 text should be put back + tip_Admin_ReportStats 0.22 text should be put back + + tip_Users_Remove POPFile ¤«¤é¥æ¡¼¥¶¡¼¤òºï½ü¤·¤Þ¤¹ + + tip_Footer_HomePage POPFile ¥Û¡¼¥à¥Ú¡¼¥¸¤ËÀܳ¤·¤Þ¤¹ + tip_Footer_Manual The original POPFile documentation (slightly outdated) + tip_Footer_Wiki POPFile's documentation wiki + tip_Footer_FAQ POPFile Frequently Asked Questions + tip_Footer_Version POPFile version number + tip_Footer_Login Date and time last accessed by this user + tip_Footer_RFE Have an idea to improve POPFile? Let us know. + tip_Footer_MailingList Want to hear about changes to POPFile? Sign up. + tip_Footer_FeedMe Like POPFile? Contribute to making it more successful. + + # Jim's Bucket Stats stuff + Words ñ¸ì + Percent ¥Ñ¡¼¥»¥ó¥È + Header_ConfigurationShort ÀßÄê + Footer_HomePage_short ¥Û¡¼¥à¥Ú¡¼¥¸ + Footer_QuickStart ¥¯¥¤¥Ã¥¯¥¹¥¿¡¼¥È + Footer_WikiShort ¥É¥¥å¥á¥ó¥È + Bucket_BreakEmailsClassifiedUpper ʬÎव¤ì¤¿<br>¥á¥Ã¥»¡¼¥¸ + Bucket_ClassificationErrorsUpper ʬÎà¥ß¥¹ + Bucket_BreakClassificationFP ¸í¸¡½Ð + Bucket_BreakClassificationFN ¸«Æ¨¤· + Bucket_HitRate À®¸ùΨ + Bucket_StrikeRate ¼ºÇÔΨ + Index: English.msg =================================================================== RCS file: /cvsroot/popfile/engine/languages/English.msg,v retrieving revision 1.107 retrieving revision 1.108 diff -C2 -d -r1.107 -r1.108 *** English.msg 27 Jan 2008 04:55:21 -0000 1.107 --- English.msg 30 Mar 2008 05:33:58 -0000 1.108 *************** *** 186,189 **** --- 186,190 ---- Configuration_Password_Fail Failed to set new password Configuration_Set_Password New password has been set + Configuration_ConfigBar Config Bar Configuration_Logger_Level0 Low Configuration_Logger_Level1 Medium *************** *** 209,216 **** --- 210,220 ---- Users_Remove Remove Existing User Users_Edit Edit User Settings + Users_Change_Password Change/Initialize User's Password Users_CopyFrom Copying settings from user Users_RemoveUser Remove user Users_CreateUser Create user named Users_EditUser Edit user + Users_ChangePasswordUser Change Password for user + Users_ResetPassword Initialize Password Users_Parameters Parameters Users_Created Created user '%s' (initial password '%s') *************** *** 222,225 **** --- 226,234 ---- Users_Removed_Failed Failed to remove user '%s' Users_Removed_Failed_Admin Failed to remove user '%s': disable admin rights first + Users_Changed_Password Changed password for user '%s' + Users_Change_Password_Failed Failed to change password for user '%s' + Users_Change_Password_Failed_Mismatch Failed to change password for user '%s': The new password must by identical in the New and Confirm New boxes + Users_Reset_Password Initialized password for user '%s' (new initial password '%s') + Users_Reset_Password_Failed Failed to initialize password for user '%s' Users_SingleUserMode Single user mode (POPFile Classic) Users_Accounts Associated POP3 Accounts *************** *** 273,277 **** Security_Stealth Stealth Mode/Server Operation Security_NoStealthMode No (Stealth Mode) ! Security_StealthMode (Stealth Mode) Security_ExplainStats (With this turned on POPFile sends once per day the following three values to a script on www.usethesource.com: bc (the total number of buckets that you have), mc (the total number of messages that POPFile has classified) and ec (the total number of classification errors). These get stored in a file and I will use this to publish some statistics about how people use POPFile and how well it works. My web server keeps its log files for about 5 days and then they get deleted; I am not storing any connection between the statistics and individual IP addresses.) Security_ExplainUpdate (With this turned on POPFile sends once per day the following three values to a script on www.usethesource.com: ma (the major version number of your installed POPFile), mi (the minor version number of your installed POPFile) and bn (the build number of your installed POPFile). POPFile receives a response in the form of a graphic that appears at the top of the page if a new version is available. My web server keeps its log files for about 5 days and then they get deleted; I am not storing any connection between the update checks and individual IP addresses.) --- 282,287 ---- Security_Stealth Stealth Mode/Server Operation Security_NoStealthMode No (Stealth Mode) ! Security_StealthMode Stealth Mode (disable remote connections) ! Security_ServerMode Server Mode (allow remote connections) Security_ExplainStats (With this turned on POPFile sends once per day the following three values to a script on www.usethesource.com: bc (the total number of buckets that you have), mc (the total number of messages that POPFile has classified) and ec (the total number of classification errors). These get stored in a file and I will use this to publish some statistics about how people use POPFile and how well it works. My web server keeps its log files for about 5 days and then they get deleted; I am not storing any connection between the statistics and individual IP addresses.) Security_ExplainUpdate (With this turned on POPFile sends once per day the following three values to a script on www.usethesource.com: ma (the major version number of your installed POPFile), mi (the minor version number of your installed POPFile) and bn (the build number of your installed POPFile). POPFile receives a response in the form of a graphic that appears at the top of the page if a new version is available. My web server keeps its log files for about 5 days and then they get deleted; I am not storing any connection between the update checks and individual IP addresses.) *************** *** 499,502 **** --- 509,513 ---- tip_Users_Remove Delete user from POPFile + tip_Users_Change_Password Change user's password tip_Footer_HomePage Visit the POPFile home page |
From: naoki i. <am...@us...> - 2008-03-30 05:33:55
|
Update of /cvsroot/popfile/engine/skins/oceanblue In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv29156/skins/oceanblue Modified Files: common-bottom.thtml Log Message: Change Log 1. Add an interface and a function to change/initialize user's password UI/HTML.pm Classifier/Bayes.pm skins/default/users-page.thtml languages/English.msg 2. Bucket parameters are now copied from cloned user's Classifier/Bayes.pm 3. Non admin users can't access the Administration, Users and Advanced tabs. UI/HTML.pm 4. The history messages are now stored per user. 5. Users can't see/remove other users' history messages. Classifier/Bayes.pm POPFile/History.pm UI/HTML.pm 6. Sorting history messages now work correctly UI/HTML.pm skins/default/history-page.thtml 7. Server Mode options for SMTP and NNTP proxy are saved correctly 8. Server Mode checkboxes are disabled if all the modules are local UI/HTML.pm Proxy/POP3.pm Proxy/SMTP.pm Proxy/NNTP.pm 9. The 'Config Bar' string is now localizable skins/default/configration-bar.thtml languages/English.msg 10. The 'Stealth Mode' and 'Server Mode' strings are now localizable skins/default/administration-page.thtml languages/English.msg 11. Update language files languages/English.msg languages/Nihongo.msg Index: common-bottom.thtml =================================================================== RCS file: /cvsroot/popfile/engine/skins/oceanblue/common-bottom.thtml,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** common-bottom.thtml 1 Jun 2005 09:47:47 -0000 1.2 --- common-bottom.thtml 30 Mar 2008 05:33:58 -0000 1.3 *************** *** 15,30 **** <ul> <li class="footerBody"> ! <a class="bottomLink" href="http://popfile.sourceforge.net/"><TMPL_VAR NAME="Localize_Footer_HomePage"></a> </li> <li class="footerBody"> ! <a class="bottomLink" href="http://popfile.sourceforge.net/manual/<TMPL_VAR NAME="Localize_ManualLanguage">/manual.html"> <TMPL_VAR NAME="Localize_Footer_Manual"></a> </li> <li class="footerBody"> ! <a class="bottomLink" href="http://popfile.sourceforge.net/cgi-bin/wiki.pl"> <TMPL_VAR NAME="Localize_Footer_Wiki"></a> </li> ! <li class="footerBody"> ! <a class="bottomLink" href="http://popfile.sourceforge.net/cgi-bin/wiki.pl?FrequentlyAskedQuestions"><TMPL_VAR NAME="Localize_FAQ"></a> </li> <li class="footerBody"> --- 15,31 ---- <ul> <li class="footerBody"> ! <a class="bottomLink" href="http://getpopfile.org/" title="<TMPL_VAR NAME="Localize_tip_Footer_HomePage">"> ! <TMPL_VAR NAME="Localize_Footer_HomePage"></a> </li> <li class="footerBody"> ! <a class="bottomLink" href="http://getpopfile.org/manual/<TMPL_VAR NAME="Localize_ManualLanguage">/manual.html" title="<TMPL_VAR NAME="Localize_tip_Footer_Manual">"> <TMPL_VAR NAME="Localize_Footer_Manual"></a> </li> <li class="footerBody"> ! <a class="bottomLink" href="http://getpopfile.org/wiki/<TMPL_VAR NAME="Localize_WikiLink">" title="<TMPL_VAR NAME="Localize_tip_Footer_Wiki">"> <TMPL_VAR NAME="Localize_Footer_Wiki"></a> </li> ! <a class="bottomLink" href="http://getpopfile.org/wiki/<TMPL_VAR NAME="Localize_FAQLink">" title="<TMPL_VAR NAME="Localize_tip_Footer_FAQ">"> ! <TMPL_VAR NAME="Localize_FAQ"></a> </li> <li class="footerBody"> *************** *** 41,51 **** </li> <li class="footerBody"> ! <a class="bottomLink" href="http://sourceforge.net/tracker/index.php?group_id=63137&atid=502959"><TMPL_VAR NAME="Localize_Footer_RequestFeature"></a> </li> <li class="footerBody"> ! <a class="bottomLink" href="http://lists.sourceforge.net/lists/listinfo/popfile-announce"><TMPL_VAR NAME="Localize_Footer_MailingList"></a> </li> <li class="footerBody"> ! <a class="bottomLink" href="http://sourceforge.net/forum/forum.php?forum_id=213876"><TMPL_VAR NAME="Localize_Footer_FeedMe"></a> </li> </ul> --- 42,55 ---- </li> <li class="footerBody"> ! <a class="bottomLink" href="http://getpopfile.org/wiki/<TMPL_VAR NAME="Localize_RequestFeatureLink">" title="<TMPL_VAR NAME="Localize_tip_Footer_RFE">"> ! <TMPL_VAR NAME="Localize_Footer_RequestFeature"></a> </li> <li class="footerBody"> ! <a class="bottomLink" href="http://getpopfile.org/wiki/<TMPL_VAR NAME="Localize_MailingListLink">" title="<TMPL_VAR NAME="Localize_tip_Footer_MailingList">"> ! <TMPL_VAR NAME="Localize_Footer_MailingList"></a> </li> <li class="footerBody"> ! <a class="bottomLink" href="http://sourceforge.net/forum/forum.php?forum_id=213876" title="<TMPL_VAR NAME="Localize_tip_Footer_FeedMe">"> ! <TMPL_VAR NAME="Localize_Footer_FeedMe"></a> </li> </ul> |
From: naoki i. <am...@us...> - 2008-03-30 05:33:55
|
Update of /cvsroot/popfile/engine/skins/default In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv29156/skins/default Modified Files: administration-page.thtml configuration-bar.thtml history-page.thtml nntp-configuration.thtml pop3-configuration-panel.thtml smtp-configuration.thtml users-page.thtml Log Message: Change Log 1. Add an interface and a function to change/initialize user's password UI/HTML.pm Classifier/Bayes.pm skins/default/users-page.thtml languages/English.msg 2. Bucket parameters are now copied from cloned user's Classifier/Bayes.pm 3. Non admin users can't access the Administration, Users and Advanced tabs. UI/HTML.pm 4. The history messages are now stored per user. 5. Users can't see/remove other users' history messages. Classifier/Bayes.pm POPFile/History.pm UI/HTML.pm 6. Sorting history messages now work correctly UI/HTML.pm skins/default/history-page.thtml 7. Server Mode options for SMTP and NNTP proxy are saved correctly 8. Server Mode checkboxes are disabled if all the modules are local UI/HTML.pm Proxy/POP3.pm Proxy/SMTP.pm Proxy/NNTP.pm 9. The 'Config Bar' string is now localizable skins/default/configration-bar.thtml languages/English.msg 10. The 'Stealth Mode' and 'Server Mode' strings are now localizable skins/default/administration-page.thtml languages/English.msg 11. Update language files languages/English.msg languages/Nihongo.msg Index: pop3-configuration-panel.thtml =================================================================== RCS file: /cvsroot/popfile/engine/skins/default/pop3-configuration-panel.thtml,v retrieving revision 1.10 retrieving revision 1.11 diff -C2 -d -r1.10 -r1.11 *** pop3-configuration-panel.thtml 22 May 2005 11:13:50 -0000 1.10 --- pop3-configuration-panel.thtml 30 Mar 2008 05:33:58 -0000 1.11 *************** *** 50,51 **** --- 50,52 ---- </tr> </table> + <br /> Index: nntp-configuration.thtml =================================================================== RCS file: /cvsroot/popfile/engine/skins/default/nntp-configuration.thtml,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** nntp-configuration.thtml 2 Mar 2006 09:56:17 -0000 1.1 --- nntp-configuration.thtml 30 Mar 2008 05:33:58 -0000 1.2 *************** *** 8,11 **** --- 8,20 ---- </form> + <form action="<TMPL_VAR NAME="Configuration_Action">" method="post"> + <label class="configurationLabel" for="configNntpSeparator"> + <TMPL_VAR NAME="Localize_Configuration_NNTPSeparator">: + </label> + <br /> + <input name="nntp_separator" id="configNntpSeparator" type="text" value="<TMPL_VAR NAME="nntp_separator">" /> + <input type="submit" class="submit" name="update_nntp_separator" value="<TMPL_VAR NAME="Localize_Apply">" /> + </form> + <label class="configurationLabel" for="nntpForceFork"> <TMPL_VAR NAME="Localize_Configuration_NNTPFork">: *************** *** 39,74 **** </tr> </table> ! ! <form action="<TMPL_VAR NAME="Configuration_Action">" method="post"> ! <label class="configurationLabel" for="configNntpSeparator"> ! <TMPL_VAR NAME="Localize_Configuration_NNTPSeparator">: ! </label> ! <br /> ! <input name="nntp_separator" id="configNntpSeparator" type="text" value="<TMPL_VAR NAME="nntp_separator">" /> ! <input type="submit" class="submit" name="update_nntp_separator" value="<TMPL_VAR NAME="Localize_Apply">" /> ! </form> ! ! <form class="securitySwitch" action="<TMPL_VAR NAME="Configuration_Action">" method="post"> ! <div class="securityLabel"> ! <TMPL_VAR NAME="Localize_Security_NNTP">: ! </div> ! ! <TMPL_IF NAME="nntp_if_local"> ! ! <span class="securityWidgetStateOff"> ! <TMPL_VAR NAME="Localize_Security_NoStealthMode"> ! </span> ! <input type="submit" class="toggleOn" id="securityAcceptNNTPOn" name="toggle" value="<TMPL_VAR NAME="Localize_ChangeToYes">" /> ! <input type="hidden" name="nntp_local" value="0" /> ! ! <TMPL_ELSE> ! ! <span class="securityWidgetStateOn"> ! <TMPL_VAR NAME="Localize_Yes"> ! </span> ! <input type="submit" class="toggleOff" id="securitycceptNNTPOff" name="toggle" value="<TMPL_VAR NAME="Localize_ChangeToNo"> <TMPL_VAR NAME="Localize_Security_StealthMode">" /> ! <input type="hidden" name="nntp_local" value="1" /> ! ! </TMPL_IF> ! ! </form> --- 48,50 ---- </tr> </table> ! <br /> Index: users-page.thtml =================================================================== RCS file: /cvsroot/popfile/engine/skins/default/users-page.thtml,v retrieving revision 1.9 retrieving revision 1.10 diff -C2 -d -r1.9 -r1.10 *** users-page.thtml 20 Feb 2006 09:36:35 -0000 1.9 --- users-page.thtml 30 Mar 2008 05:33:58 -0000 1.10 *************** *** 2,5 **** --- 2,7 ---- <TMPL_INCLUDE NAME="common-middle.thtml"> + <!-- TODO : Script to disable user's password box if Initialize Password checkbox is checked --> + <table cellpadding="10%" cellspacing="0" class="settingsTable" width="100%" summary=""> <tr> *************** *** 38,41 **** --- 40,73 ---- </form> </TMPL_IF> + <br /> + <TMPL_IF NAME="Users_If_Remove"> + <hr /> + <h2 class="users"><TMPL_VAR NAME="Localize_Users_Change_Password"></h2> + + <form action="/users" method="post"> + <TMPL_VAR NAME="Localize_Users_ChangePasswordUser">: + <select name="tochangepassword"> + <option value=""> </option> + <TMPL_LOOP NAME="Users_Loop_ChangePassword"> + <option><TMPL_VAR NAME="Users_Name"></option> + </TMPL_LOOP> + </select> + <br /> + + <input type="checkbox" name="users_reset_password" id="usersResetPassword" /> + <label class="usersLabel" for="usersResetPassword"> + <TMPL_VAR NAME="Localize_Users_ResetPassword"> + </label> + <br /> + + <TMPL_VAR NAME="Localize_Configuration_NewPassword">: + <input type="password" name="users_new_password" size="10" /> + <TMPL_VAR NAME="Localize_Configuration_ConfirmPassword">: + <input type="password" name="users_confirm_password" size="10" /> + <br /> + + <input type="submit" class="submit" name="users_change_password" onClick="return confirmClick('<TMPL_VAR NAME="Localize_tip_Users_Change_Password">')" value="<TMPL_VAR NAME="Localize_Update">" /> + </form> + </TMPL_IF> </td> <td class="settingsPanel" valign="top"> Index: configuration-bar.thtml =================================================================== RCS file: /cvsroot/popfile/engine/skins/default/configuration-bar.thtml,v retrieving revision 1.22 retrieving revision 1.23 diff -C2 -d -r1.22 -r1.23 *** configuration-bar.thtml 23 Feb 2006 12:15:13 -0000 1.22 --- configuration-bar.thtml 30 Mar 2008 05:33:58 -0000 1.23 *************** *** 4,8 **** <h2 class="configBarTitle"> ! <a name="configBar" title="<TMPL_VAR NAME="Localize_tip_Config_HideBar">" href="<TMPL_VAR NAME="Configuration_Action">?hide_configbar=1">Config Bar</a> </h2> --- 4,8 ---- <h2 class="configBarTitle"> ! <a name="configBar" title="<TMPL_VAR NAME="Localize_tip_Config_HideBar">" href="<TMPL_VAR NAME="Configuration_Action">?hide_configbar=1"><TMPL_VAR NAME="Localize_Configuration_ConfigBar"></a> </h2> *************** *** 112,116 **** <div class="configBarHidden"> <h2 class="configBarTitle"> ! <a title="<TMPL_VAR NAME="Localize_tip_Config_ShowBar">" href="<TMPL_VAR NAME="Configuration_Action">?show_configbar=1#configBar">Config Bar</a> </h2> </div> --- 112,116 ---- <div class="configBarHidden"> <h2 class="configBarTitle"> ! <a title="<TMPL_VAR NAME="Localize_tip_Config_ShowBar">" href="<TMPL_VAR NAME="Configuration_Action">?show_configbar=1#configBar"><TMPL_VAR NAME="Localize_Configuration_ConfigBar"></a> </h2> </div> Index: history-page.thtml =================================================================== RCS file: /cvsroot/popfile/engine/skins/default/history-page.thtml,v retrieving revision 1.73 retrieving revision 1.74 diff -C2 -d -r1.73 -r1.74 *** history-page.thtml 20 Feb 2006 09:36:35 -0000 1.73 --- history-page.thtml 30 Mar 2008 05:33:58 -0000 1.74 *************** *** 82,86 **** </td> <th class="historyLabel"> ! <a href="/history?<TMPL_VAR NAME="History_Fields">&setsort=<TMPL_VAR NAME="History_Sort"><TMPL_VAR NAME="History_Header">" title="<TMPL_VAR NAME="Localize_tip_History_Sort">"> <TMPL_IF NAME="History_If_Sorted"> --- 82,86 ---- </td> <th class="historyLabel"> ! <a href="/history?setsort=<TMPL_VAR NAME="History_Sort"><TMPL_VAR NAME="History_Header"><TMPL_VAR NAME="History_Fields">" title="<TMPL_VAR NAME="Localize_tip_History_Sort">"> <TMPL_IF NAME="History_If_Sorted"> Index: smtp-configuration.thtml =================================================================== RCS file: /cvsroot/popfile/engine/skins/default/smtp-configuration.thtml,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** smtp-configuration.thtml 22 May 2005 11:13:50 -0000 1.7 --- smtp-configuration.thtml 30 Mar 2008 05:33:58 -0000 1.8 *************** *** 1,2 **** --- 1,16 ---- + <label class="configurationLabel" for="configSMTPPort"> + <TMPL_VAR NAME="Localize_Configuration_SMTPPort">: + </label> + <table border="0" cellpadding="0" cellspacing="0" summary=""> + <tr> + <td> + <form action="<TMPL_VAR NAME="Configuration_Action">" method="post"> + <input name="smtp_port" type="text" id="configSMTPPort" value="<TMPL_VAR NAME="smtp_port">" /> + <input type="submit" class="submit" name="update_smtp_port" value="<TMPL_VAR NAME="Localize_Apply">" /> + </form> + </td> + </tr> + </table> + <label class="configurationLabel" for="smtpForceFork"> <TMPL_VAR NAME="Localize_Configuration_SMTPFork">: *************** *** 30,44 **** </table> <br /> - <label class="configurationLabel" for="configSMTPPort"> - <TMPL_VAR NAME="Localize_Configuration_SMTPPort">: - </label> - <table border="0" cellpadding="0" cellspacing="0" summary=""> - <tr> - <td> - <form action="<TMPL_VAR NAME="Configuration_Action">" method="post"> - <input name="smtp_port" type="text" id="configSMTPPort" value="<TMPL_VAR NAME="smtp_port">" /> - <input type="submit" class="submit" name="update_smtp_port" value="<TMPL_VAR NAME="Localize_Apply">" /> - </form> - </td> - </tr> - </table> --- 44,45 ---- Index: administration-page.thtml =================================================================== RCS file: /cvsroot/popfile/engine/skins/default/administration-page.thtml,v retrieving revision 1.13 retrieving revision 1.14 diff -C2 -d -r1.13 -r1.14 *** administration-page.thtml 3 Dec 2007 12:58:41 -0000 1.13 --- administration-page.thtml 30 Mar 2008 05:33:58 -0000 1.14 *************** *** 27,36 **** <input type="radio" name="servermode" id="StealthMode" value="StealthMode" onClick="serverMode(false)" <TMPL_IF NAME="Security_If_Local">checked="checked"</TMPL_IF> /> <label class="administrationLabel" for="StealthMode"> ! Stealth Mode (disable remote connections) </label> <br /> <input type="radio" name="servermode" id="ServerMode" value="ServerMode" onClick="serverMode(true)" <TMPL_UNLESS NAME="Security_If_Local">checked="checked"</TMPL_UNLESS> /> <label class="administrationLabel" for="ServerMode"> ! Server Mode (allow remote connections) </label> <br /> --- 27,36 ---- <input type="radio" name="servermode" id="StealthMode" value="StealthMode" onClick="serverMode(false)" <TMPL_IF NAME="Security_If_Local">checked="checked"</TMPL_IF> /> <label class="administrationLabel" for="StealthMode"> ! <TMPL_VAR NAME="Localize_Security_StealthMode"> </label> <br /> <input type="radio" name="servermode" id="ServerMode" value="ServerMode" onClick="serverMode(true)" <TMPL_UNLESS NAME="Security_If_Local">checked="checked"</TMPL_UNLESS> /> <label class="administrationLabel" for="ServerMode"> ! <TMPL_VAR NAME="Localize_Security_ServerMode"> </label> <br /> |
From: naoki i. <am...@us...> - 2008-03-30 05:33:53
|
Update of /cvsroot/popfile/engine/UI In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv29156/UI Modified Files: HTML.pm Log Message: Change Log 1. Add an interface and a function to change/initialize user's password UI/HTML.pm Classifier/Bayes.pm skins/default/users-page.thtml languages/English.msg 2. Bucket parameters are now copied from cloned user's Classifier/Bayes.pm 3. Non admin users can't access the Administration, Users and Advanced tabs. UI/HTML.pm 4. The history messages are now stored per user. 5. Users can't see/remove other users' history messages. Classifier/Bayes.pm POPFile/History.pm UI/HTML.pm 6. Sorting history messages now work correctly UI/HTML.pm skins/default/history-page.thtml 7. Server Mode options for SMTP and NNTP proxy are saved correctly 8. Server Mode checkboxes are disabled if all the modules are local UI/HTML.pm Proxy/POP3.pm Proxy/SMTP.pm Proxy/NNTP.pm 9. The 'Config Bar' string is now localizable skins/default/configration-bar.thtml languages/English.msg 10. The 'Stealth Mode' and 'Server Mode' strings are now localizable skins/default/administration-page.thtml languages/English.msg 11. Update language files languages/English.msg languages/Nihongo.msg Index: HTML.pm =================================================================== RCS file: /cvsroot/popfile/engine/UI/HTML.pm,v retrieving revision 1.381 retrieving revision 1.382 diff -C2 -d -r1.381 -r1.382 *** HTML.pm 29 Jan 2008 15:03:29 -0000 1.381 --- HTML.pm 30 Mar 2008 05:33:58 -0000 1.382 *************** *** 611,615 **** if ( ( $slot =~ /^\d+$/ ) && ! ( $self->history_()->is_valid_slot( $slot ) ) ) { $self->http_redirect_( $client, "/view?view=$slot", $session ); --- 611,615 ---- if ( ( $slot =~ /^\d+$/ ) && ! ( $self->history_()->is_valid_slot( $slot, $session ) ) ) { $self->http_redirect_( $client, "/view?view=$slot", $session ); *************** *** 724,730 **** if ( !$self->user_global_config_( $self->{sessions__}{$session}{user}, 'can_admin' ) ) { ! delete $url_table{administration}; ! delete $url_table{advanced}; ! delete $url_table{users}; } --- 724,730 ---- if ( !$self->user_global_config_( $self->{sessions__}{$session}{user}, 'can_admin' ) ) { ! delete $url_table{'/administration'}; ! delete $url_table{'/advanced'}; ! delete $url_table{'/users'}; } *************** *** 1228,1232 **** $templ->param( 'Configuration_UI_Port' => $self->config_( 'port' ) ); $templ->param( 'If_Single_User' => $self->global_config_( 'single_user' ) ); - $templ->param( 'Security_If_Local_Http' => $self->config_( 'local') ); $templ->param( 'Security_If_Send_Stats' => $self->user_config_( $user, 'send_stats' ) ); $templ->param( 'Security_If_Update_Check' => $self->user_config_( $user, 'update_check' ) ); --- 1228,1231 ---- *************** *** 1235,1242 **** $templ->param( 'Configuration_Debug_' . ( $self->global_config_( 'debug' ) + 1 ) . '_Selected' => 'selected="selected"' ); ! #my $all_local = 1; ! $templ->param( "Security_If_Local_html" => $self->config_( 'local') ); ! #$templ->param( 'Security_If_Local' => $all_local ); ! my ($status_message, $error_message); --- 1234,1239 ---- $templ->param( 'Configuration_Debug_' . ( $self->global_config_( 'debug' ) + 1 ) . '_Selected' => 'selected="selected"' ); ! $templ->param( "Security_If_Local_html" => $self->config_( 'local' ) ); ! my $all_local = $self->config_( 'local' ); my ($status_message, $error_message); *************** *** 1271,1285 **** $self->status_message__($templ,$status_message) if ( defined( $status_message )); $self->error_message__($templ, $error_message) if ( defined( $error_message )); - } my $security_html = ''; for my $name (sort keys %{$self->{dynamic_ui__}{security}}) { ! $self->{dynamic_ui__}{security}{$name}{object}->configure_item( $name, $security_templates{$name}, \%{$self->{language__}} ); $security_html .= $security_templates{$name}->output; } my $chain_html = ''; --- 1268,1292 ---- $self->status_message__($templ,$status_message) if ( defined( $status_message )); $self->error_message__($templ, $error_message) if ( defined( $error_message )); } + # Build Securty panel + my $security_html = ''; for my $name (sort keys %{$self->{dynamic_ui__}{security}}) { ! my $local = $self->{dynamic_ui__}{security}{$name}{object}->configure_item( $name, $security_templates{$name}, \%{$self->{language__}} ); + $all_local &&= $local; + } + + # If all modules are local, disable checkboxes + + for my $name (sort keys %{$self->{dynamic_ui__}{security}}) { + $security_templates{$name}->param( 'Security_If_Local' => $all_local ); $security_html .= $security_templates{$name}->output; } + $templ->param( 'Security_If_Local' => $all_local ); + my $chain_html = ''; *************** *** 1475,1478 **** --- 1482,1522 ---- } + # Handle changing/initializing user's password + + if ( exists( $self->{form_}{users_change_password} ) && + ( $self->{form_}{tochangepassword} ne '' ) ) { + + my $initialize_password = $self->{form_}{users_reset_password}; + + if ( $initialize_password ) { + # Initialize user's password + my ($result, $new_password) = $self->classifier_()->initialize_users_password( $session, $self->{form_}{tochangepassword} ); + if ( $result == 0 ) { + $self->status_message__( $templ, sprintf( $self->{language__}{Users_Reset_Password}, $self->{form_}{tochangepassword}, $new_password ) ); + } + if ( $result == 1 ) { + $self->error_message__( $templ, sprintf( $self->{language__}{Users_Reset_Password_Failed}, $self->{form_}{tochangepassword} ) ); + } + + } else { + # Change user's password + + my $new_password = $self->{form_}{users_new_password}; + my $confirm_password = $self->{form_}{users_confirm_password}; + + if ( $new_password eq $confirm_password ) { + my $result = $self->classifier_()->change_users_password( $session, $self->{form_}{tochangepassword}, $new_password ); + if ( $result == 0 ) { + $self->status_message__( $templ, sprintf( $self->{language__}{Users_Changed_Password}, $self->{form_}{tochangepassword} ) ); + } + if ( $result == 1 ) { + $self->error_message__( $templ, sprintf( $self->{language__}{Users_Change_Password_Failed}, $self->{form_}{tochangepassword} ) ); + } + } else { + $self->error_message__( $templ, sprintf( $self->{language__}{Users_Change_Password_Failed_Mismatch}, $self->{form_}{tochangepassword} ) ); + } + } + } + # Handle editing the parameters of a user *************** *** 1520,1524 **** my @user_loop; my @remove_user_loop; ! foreach my $user (@$users) { my %row_data; $row_data{Users_Name} = $user; --- 1564,1568 ---- my @user_loop; my @remove_user_loop; ! foreach my $user (values %$users) { my %row_data; $row_data{Users_Name} = $user; *************** *** 1534,1537 **** --- 1578,1582 ---- $templ->param( 'Users_Loop_Edit' => \@user_loop ); $templ->param( 'Users_Loop_Copy' => \@user_loop ); + $templ->param( 'Users_Loop_ChangePassword' => \@user_loop ); if ( exists( $self->{form_}{edituser} ) && *************** *** 2668,2672 **** if ( $key =~ /^undo_([0-9]+)$/ ) { my $slot = $1; ! my @fields = $self->history_()->get_slot_fields( $slot ); my $bucket = $fields[8]; my $newbucket = $self->classifier_()->get_bucket_name( --- 2713,2717 ---- if ( $key =~ /^undo_([0-9]+)$/ ) { my $slot = $1; ! my @fields = $self->history_()->get_slot_fields( $slot, $session ); my $bucket = $fields[8]; my $newbucket = $self->classifier_()->get_bucket_name( *************** *** 2709,2713 **** if ( $destination <= $maximum && $destination > 0 ) { return $self->http_redirect_( $client, "/history?start_message=$destination&" ! . $self->print_form_fields_(1,0,('filter','search','sort','session','negate') ), $session ); } } --- 2754,2758 ---- if ( $destination <= $maximum && $destination > 0 ) { return $self->http_redirect_( $client, "/history?start_message=$destination&" ! . $self->print_form_fields_(1,0,('filter','search','sort','negate') ), $session ); } } *************** *** 2818,2823 **** if ( defined( $self->{form_}{clearpage} ) ) { ! # Remove the list of marked messages using the array of ! # "remove" checkboxes $self->history_()->start_deleting(); --- 2863,2867 ---- if ( defined( $self->{form_}{clearpage} ) ) { ! # Remove the list of messages on the current page $self->history_()->start_deleting(); *************** *** 2825,2829 **** if ( $i =~ /^rowid_(\d+)$/ ) { $self->log_( 1, "clearpage $i" ); ! $self->history_()->delete_slot( $1, 1 ); } } --- 2869,2873 ---- if ( $i =~ /^rowid_(\d+)$/ ) { $self->log_( 1, "clearpage $i" ); ! $self->history_()->delete_slot( $1, 1, $session, 0 ); } } *************** *** 2842,2846 **** if ( $self->{form_}{$i} ne '' ) { $self->log_( 1, "clearchecked $i" ); ! $self->history_()->delete_slot( $slot ); } } --- 2886,2890 ---- if ( $self->{form_}{$i} ne '' ) { $self->log_( 1, "clearchecked $i" ); ! $self->history_()->delete_slot( $slot, 0, $session, 0 ); } } *************** *** 2855,2859 **** if ( defined( $self->{form_}{clearall} ) ) { ! $self->history_()->delete_query( $q ); } --- 2899,2903 ---- if ( defined( $self->{form_}{clearall} ) ) { ! $self->history_()->delete_query( $q, $session ); } *************** *** 2870,2874 **** defined( $self->{form_}{undo} ) || defined( $self->{form_}{reclassify} ) ) { # PROFILE BLOCK STOP ! return $self->http_redirect_( $client, "/history?" . $self->print_form_fields_(1,0,('start_message','filter','search','sort','session','negate') ), $session ); } --- 2914,2918 ---- defined( $self->{form_}{undo} ) || defined( $self->{form_}{reclassify} ) ) { # PROFILE BLOCK STOP ! return $self->http_redirect_( $client, "/history?" . $self->print_form_fields_(1,0,('start_message','filter','search','sort','negate') ), $session ); } *************** *** 2946,2950 **** $row_data{History_Fields} = $self->print_form_fields_(1,1, ! ('filter','session','search','negate')); $row_data{History_Sort} = ( $self->{form_}{sort} eq $header )?'-':''; --- 2990,2994 ---- $row_data{History_Fields} = $self->print_form_fields_(1,1, ! ('filter','search','negate')); $row_data{History_Sort} = ( $self->{form_}{sort} eq $header )?'-':''; *************** *** 3061,3065 **** $col_data{History_Fields} = $self->print_form_fields_(0,1, ! ('start_message','session','filter','search', 'sort','negate' ) ); push ( @column_data, \%col_data ); --- 3105,3109 ---- $col_data{History_Fields} = $self->print_form_fields_(0,1, ! ('start_message','filter','search', 'sort','negate' ) ); push ( @column_data, \%col_data ); *************** *** 3198,3207 **** my ( $self, $client, $templ, $template, $page, $session ) = @_; - my $mail_file = $self->history_()->get_slot_file( $self->{form_}{view} ); - my $start_message = $self->{form_}{start_message} || 0; - my ( $id, $from, $to, $cc, $subject, $date, $hash, $inserted, $bucket, $reclassified, $bucketid, $magnet ) = ! $self->history_()->get_slot_fields( $self->{form_}{view} ); my $color = $self->classifier_()->get_bucket_color( --- 3242,3256 ---- my ( $self, $client, $templ, $template, $page, $session ) = @_; my ( $id, $from, $to, $cc, $subject, $date, $hash, $inserted, $bucket, $reclassified, $bucketid, $magnet ) = ! $self->history_()->get_slot_fields( $self->{form_}{view}, $session ); ! ! if ( !defined($id) ) { ! $self->http_redirect_( $client, "/history", $session ); ! return 1; ! } ! ! my $mail_file = $self->history_()->get_slot_file( $self->{form_}{view} ); ! my $start_message = $self->{form_}{start_message} || 0; my $color = $self->classifier_()->get_bucket_color( *************** *** 3230,3234 **** my $index = $self->{form_}{view}; ! $templ->param( 'View_All_Fields' => $self->print_form_fields_(1,1,('start_message','filter','session','search','sort','negate'))); $templ->param( 'View_Field_Search' => $self->{form_}{search} ); $templ->param( 'View_Field_Negate' => $self->{form_}{negate} ); --- 3279,3283 ---- my $index = $self->{form_}{view}; ! $templ->param( 'View_All_Fields' => $self->print_form_fields_(1,1,('start_message','filter','search','sort','negate'))); $templ->param( 'View_Field_Search' => $self->{form_}{search} ); $templ->param( 'View_Field_Negate' => $self->{form_}{negate} ); |
From: naoki i. <am...@us...> - 2008-03-30 05:33:53
|
Update of /cvsroot/popfile/engine/Proxy In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv29156/Proxy Modified Files: NNTP.pm POP3.pm SMTP.pm Log Message: Change Log 1. Add an interface and a function to change/initialize user's password UI/HTML.pm Classifier/Bayes.pm skins/default/users-page.thtml languages/English.msg 2. Bucket parameters are now copied from cloned user's Classifier/Bayes.pm 3. Non admin users can't access the Administration, Users and Advanced tabs. UI/HTML.pm 4. The history messages are now stored per user. 5. Users can't see/remove other users' history messages. Classifier/Bayes.pm POPFile/History.pm UI/HTML.pm 6. Sorting history messages now work correctly UI/HTML.pm skins/default/history-page.thtml 7. Server Mode options for SMTP and NNTP proxy are saved correctly 8. Server Mode checkboxes are disabled if all the modules are local UI/HTML.pm Proxy/POP3.pm Proxy/SMTP.pm Proxy/NNTP.pm 9. The 'Config Bar' string is now localizable skins/default/configration-bar.thtml languages/English.msg 10. The 'Stealth Mode' and 'Server Mode' strings are now localizable skins/default/administration-page.thtml languages/English.msg 11. Update language files languages/English.msg languages/Nihongo.msg Index: POP3.pm =================================================================== RCS file: /cvsroot/popfile/engine/Proxy/POP3.pm,v retrieving revision 1.115 retrieving revision 1.116 diff -C2 -d -r1.115 -r1.116 *** POP3.pm 3 Dec 2007 12:58:41 -0000 1.115 --- POP3.pm 30 Mar 2008 05:33:58 -0000 1.116 *************** *** 701,709 **** # $language Current language # # ---------------------------------------------------------------------------- sub configure_item { ! my ( $self, $name, $templ, $language ) = @_; if ( $name eq 'pop3_configuration' ) { --- 701,711 ---- # $language Current language # + # Returns 1 if pop3_local is 1 + # # ---------------------------------------------------------------------------- sub configure_item { ! my ( $self, $name, $templ, $language, $all_local ) = @_; if ( $name eq 'pop3_configuration' ) { *************** *** 714,717 **** --- 716,720 ---- if ( $name eq 'pop3_security' ) { $templ->param( 'POP3_Security_Local' => ( $self->config_( 'local' ) == 1 ) ); + return ( $self->config_( 'local' ) == 1 ); } else { if ( $name eq 'pop3_chain' ) { Index: NNTP.pm =================================================================== RCS file: /cvsroot/popfile/engine/Proxy/NNTP.pm,v retrieving revision 1.42 retrieving revision 1.43 diff -C2 -d -r1.42 -r1.43 *** NNTP.pm 2 Mar 2006 10:07:46 -0000 1.42 --- NNTP.pm 30 Mar 2008 05:33:58 -0000 1.43 *************** *** 411,414 **** --- 411,416 ---- # $language Current language # + # Returns 1 if nntp_local is 1 + # # ---------------------------------------------------------------------------- *************** *** 425,428 **** --- 427,431 ---- if ( $name eq 'nntp_local' ) { $templ->param( 'nntp_if_local' => $self->config_( 'local' ) ); + return $self->config_( 'local' ); } *************** *** 476,481 **** if ( $name eq 'nntp_local' ) { ! if ( defined $$form{nntp_local} ) { ! $self->config_( 'local', $$form{nntp_local} ); } return( undef, undef); --- 479,486 ---- if ( $name eq 'nntp_local' ) { ! if ( $form->{serveropt_nntp} ) { ! $self->config_( 'local', 0 ); ! } else { ! $self->config_( 'local', 1 ); } return( undef, undef); Index: SMTP.pm =================================================================== RCS file: /cvsroot/popfile/engine/Proxy/SMTP.pm,v retrieving revision 1.43 retrieving revision 1.44 diff -C2 -d -r1.43 -r1.44 *** SMTP.pm 20 Feb 2006 02:14:29 -0000 1.43 --- SMTP.pm 30 Mar 2008 05:33:58 -0000 1.44 *************** *** 331,334 **** --- 331,336 ---- # $language Current language # + # Returns 1 if smtp_local is 1 + # # ---------------------------------------------------------------------------- *************** *** 344,347 **** --- 346,350 ---- if ( $name eq 'smtp_local' ) { $templ->param( 'smtp_local_on' => $self->config_( 'local' ) ); + return $self->config_( 'local' ); } *************** *** 394,399 **** if ( $name eq 'smtp_local' ) { ! if ( defined $$form{smtp_local} ) { ! $self->config_( 'local', $$form{smtp_local} ); } return ( $status, $error ); --- 397,404 ---- if ( $name eq 'smtp_local' ) { ! if ( $form->{serveropt_smtp} ) { ! $self->config_( 'local', 0 ); ! } else { ! $self->config_( 'local', 1 ); } return ( $status, $error ); |
From: naoki i. <am...@us...> - 2008-03-30 05:33:53
|
Update of /cvsroot/popfile/engine/Classifier In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv29156/Classifier Modified Files: Bayes.pm Log Message: Change Log 1. Add an interface and a function to change/initialize user's password UI/HTML.pm Classifier/Bayes.pm skins/default/users-page.thtml languages/English.msg 2. Bucket parameters are now copied from cloned user's Classifier/Bayes.pm 3. Non admin users can't access the Administration, Users and Advanced tabs. UI/HTML.pm 4. The history messages are now stored per user. 5. Users can't see/remove other users' history messages. Classifier/Bayes.pm POPFile/History.pm UI/HTML.pm 6. Sorting history messages now work correctly UI/HTML.pm skins/default/history-page.thtml 7. Server Mode options for SMTP and NNTP proxy are saved correctly 8. Server Mode checkboxes are disabled if all the modules are local UI/HTML.pm Proxy/POP3.pm Proxy/SMTP.pm Proxy/NNTP.pm 9. The 'Config Bar' string is now localizable skins/default/configration-bar.thtml languages/English.msg 10. The 'Stealth Mode' and 'Server Mode' strings are now localizable skins/default/administration-page.thtml languages/English.msg 11. Update language files languages/English.msg languages/Nihongo.msg Index: Bayes.pm =================================================================== RCS file: /cvsroot/popfile/engine/Classifier/Bayes.pm,v retrieving revision 1.357 retrieving revision 1.358 diff -C2 -d -r1.357 -r1.358 *** Bayes.pm 2 Dec 2007 17:27:47 -0000 1.357 --- Bayes.pm 30 Mar 2008 05:33:57 -0000 1.358 *************** *** 2384,2388 **** if ( $class eq '' ) { $self->{parser__}->start_parse(); ! ( $slot, $msg_file ) = $self->history_()->reserve_slot(); } else { $msg_file = $self->history_()->get_slot_file( $slot ); --- 2384,2389 ---- if ( $class eq '' ) { $self->{parser__}->start_parse(); ! my $userid = $self->valid_session_key__( $session ); ! ( $slot, $msg_file ) = $self->history_()->reserve_slot( $session, $userid ); } else { $msg_file = $self->history_()->get_slot_file( $slot ); *************** *** 2751,2755 **** push @{$work{$newbucket}}, $self->history_()->get_slot_file( $slot ); ! my @fields = $self->history_()->get_slot_fields( $slot); my $bucket = $fields[8]; $self->classifier_()->reclassified( --- 2752,2756 ---- push @{$work{$newbucket}}, $self->history_()->get_slot_file( $slot ); ! my @fields = $self->history_()->get_slot_fields( $slot, $session ); my $bucket = $fields[8]; $self->classifier_()->reclassified( *************** *** 3358,3371 **** } ! my $password = ''; ! my @chars = split( //,'abcdefghijklmnopqurstuvwxyz0123456789' ); ! ! while ( length( $password ) < 8 ) { ! my $c = $chars[int(rand($#chars+1))]; ! if ( int(rand(2)) == 1 ) { ! $c = uc($c); ! } ! $password .= $c; ! } my $password_hash = md5_hex( $new_user . '__popfile__' . $password ); --- 3359,3363 ---- } ! my $password = $self->generate_users_password(); my $password_hash = md5_hex( $new_user . '__popfile__' . $password ); *************** *** 3411,3415 **** } ! # TODO clone bucket parameters } else { --- 3403,3443 ---- } ! # Fetch new bucket ids and cloned bucket ids ! ! $h = $self->db_()->prepare( ! "select bucket1.id, bucket2.id from buckets as bucket1, buckets as bucket2 ! where bucket1.userid = $id and bucket1.name = bucket2.name and bucket2.userid = $clid;" ); ! $h->execute; ! my %new_buckets; ! while ( my $row = $h->fetchrow_arrayref ) { ! $new_buckets{$row->[1]} = $row->[0]; ! } ! $h->finish; ! ! # Clone bucket parameters ! ! $h = $self->db_()->prepare( ! "select bucketid, btid, val from buckets, bucket_params ! where userid = $clid and buckets.id = bucket_params.bucketid;" ); ! $h->execute; ! my %bucket_params; ! while (my $row = $h->fetchrow_arrayref ) { ! $bucket_params{$new_buckets{$row->[0]}}{$row->[1]} = $row->[2]; ! } ! $h->finish; ! ! foreach my $bucketid ( keys %bucket_params ) { ! foreach my $btid ( keys %{$bucket_params{$bucketid}} ) { ! my $val = $self->db_()->quote( $bucket_params{$bucketid}{$btid} ); ! $self->db_()->do( ! "insert into bucket_params ( bucketid, btid, val ) ! values ( $bucketid, $btid, $val );" ); ! } ! } ! ! # TODO : Clone magnets ! ! # TODO : Clone corpus data (optional) ! } else { *************** *** 3425,3428 **** --- 3453,3478 ---- #---------------------------------------------------------------------------- # + # generate_users_password + # + # Generates user's initial password + # + #---------------------------------------------------------------------------- + sub generate_users_password + { + my $password = ''; + my @chars = split( //,'abcdefghijklmnopqurstuvwxyz0123456789' ); + + while ( length( $password ) < 8 ) { + my $c = $chars[int(rand($#chars+1))]; + if ( int(rand(2)) == 1 ) { + $c = uc($c); + } + $password .= $c; + } + return $password; + } + + #---------------------------------------------------------------------------- + # # remove_user (ADMIN ONLY) # *************** *** 3470,3473 **** --- 3520,3605 ---- #---------------------------------------------------------------------------- # + # initialize_users_password (ADMIN ONLY) + # + # Initializes the password for the specified user + # + # $session A valid session ID for an administrator + # $user The name of the user to change password + # + # Returns 0 for success, undef for wrong permissions and 1 for user + # does not exist + # + # ---------------------------------------------------------------------------- + sub initialize_users_password + { + my ( $self, $session, $user ) = @_; + + my $userid = $self->valid_session_key__( $session ); + return undef if ( !defined( $userid ) ); + + # Check that this user is an administrator + + my $can_admin = $self->get_user_parameter( $session, 'GLOBAL_can_admin' ); + + if ( $can_admin != 1 ) { + return undef; + } + + my $id = $self->get_user_id( $session, $user ); + my $password = $self->generate_users_password(); + + if ( defined( $id ) ) { + my $result = $self->set_password_for_user( $session, $id, $password ); + if ( $result == 1 ) { + return (0, $password); + } + } + + return 1; + } + + #---------------------------------------------------------------------------- + # + # change_users_password (ADMIN ONLY) + # + # Changes the password for the specified user + # + # $session A valid session ID for an administrator + # $user The name of the user to change password + # $password The new password + # + # Returns 0 for success, undef for wrong permissions and 1 for user + # does not exist + # + # ---------------------------------------------------------------------------- + sub change_users_password + { + my ( $self, $session, $user, $password ) = @_; + + my $userid = $self->valid_session_key__( $session ); + return undef if ( !defined( $userid ) ); + + # Check that this user is an administrator + + my $can_admin = $self->get_user_parameter( $session, 'GLOBAL_can_admin' ); + + if ( $can_admin != 1 ) { + return undef; + } + + my $id = $self->get_user_id( $session, $user ); + + if ( defined( $id ) ) { + my $result = $self->set_password_for_user( $session, $id, $password ); + if ( $result == 1 ) { + return 0; + } + } + + return 1; + } + + #---------------------------------------------------------------------------- + # # validate_password # *************** *** 3523,3530 **** my ( $self, $session, $password ) = @_; # Lookup the user name from the session key my $user; ! my $h = $self->db_()->prepare( "select name from users where id = $self->{api_sessions__}{$session};" ); $h->execute; if ( my $row = $h->fetchrow_arrayref ) { --- 3655,3684 ---- my ( $self, $session, $password ) = @_; + my $userid = $self->{api_sessions__}{$session}; + + return $self->set_password_for_user( $session, $userid, $password ); + } + + #---------------------------------------------------------------------------- + # + # set_password_for_user + # + # Sets the password for the current user + # + # $session A valid session ID + # $userid A user's id for change password + # $password The new password + # + # Returns 1 if the password was updated, 0 if not + # + # ---------------------------------------------------------------------------- + sub set_password_for_user + { + my ( $self, $session, $userid, $password ) = @_; + # Lookup the user name from the session key my $user; ! my $h = $self->db_()->prepare( "select name from users where id = $userid;" ); $h->execute; if ( my $row = $h->fetchrow_arrayref ) { *************** *** 3537,3541 **** my $hash = md5_hex( $user . '__popfile__' . $password ); ! $self->db_()->do( "update users set password = '$hash' where id = $self->{api_sessions__}{$session};" ); return 1; --- 3691,3695 ---- my $hash = md5_hex( $user . '__popfile__' . $password ); ! $self->db_()->do( "update users set password = '$hash' where id = $userid;" ); return 1; *************** *** 3566,3576 **** } ! my @users; $self->{db_get_user_list__}->execute(); while ( my $row = $self->{db_get_user_list__}->fetchrow_arrayref ) { ! push @users, $row->[1]; } ! return \@users; } --- 3720,3730 ---- } ! my %users; $self->{db_get_user_list__}->execute(); while ( my $row = $self->{db_get_user_list__}->fetchrow_arrayref ) { ! $users{$row->[0]} = $row->[1]; } ! return \%users; } |
From: naoki i. <am...@us...> - 2008-03-30 05:33:53
|
Update of /cvsroot/popfile/engine/POPFile In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv29156/POPFile Modified Files: Database.pm History.pm Log Message: Change Log 1. Add an interface and a function to change/initialize user's password UI/HTML.pm Classifier/Bayes.pm skins/default/users-page.thtml languages/English.msg 2. Bucket parameters are now copied from cloned user's Classifier/Bayes.pm 3. Non admin users can't access the Administration, Users and Advanced tabs. UI/HTML.pm 4. The history messages are now stored per user. 5. Users can't see/remove other users' history messages. Classifier/Bayes.pm POPFile/History.pm UI/HTML.pm 6. Sorting history messages now work correctly UI/HTML.pm skins/default/history-page.thtml 7. Server Mode options for SMTP and NNTP proxy are saved correctly 8. Server Mode checkboxes are disabled if all the modules are local UI/HTML.pm Proxy/POP3.pm Proxy/SMTP.pm Proxy/NNTP.pm 9. The 'Config Bar' string is now localizable skins/default/configration-bar.thtml languages/English.msg 10. The 'Stealth Mode' and 'Server Mode' strings are now localizable skins/default/administration-page.thtml languages/English.msg 11. Update language files languages/English.msg languages/Nihongo.msg Index: History.pm =================================================================== RCS file: /cvsroot/popfile/engine/POPFile/History.pm,v retrieving revision 1.46 retrieving revision 1.47 diff -C2 -d -r1.46 -r1.47 *** History.pm 9 Feb 2008 09:05:39 -0000 1.46 --- History.pm 30 Mar 2008 05:33:58 -0000 1.47 *************** *** 237,241 **** sub reserve_slot { ! my ( $self ) = @_; my $r; --- 237,244 ---- sub reserve_slot { ! my ( $self, $session ) = @_; ! ! my $userid = $self->classifier_()->valid_session_key__( $session ); ! return undef if ( !defined( $userid ) ); my $r; *************** *** 268,272 **** my $now = time; $self->db_()->do( ! "insert into history ( userid, committed, inserted ) values ( 1, $r, $now );" ); last; } --- 271,275 ---- my $now = time; $self->db_()->do( ! "insert into history ( userid, committed, inserted ) values ( $userid, $r, $now );" ); last; } *************** *** 381,385 **** my $oldbucketid = 0; if ( !$undo ) { ! my @fields = $self->get_slot_fields( $slot ); $oldbucketid = $fields[10]; } --- 384,388 ---- my $oldbucketid = 0; if ( !$undo ) { ! my @fields = $self->get_slot_fields( $slot, $session ); $oldbucketid = $fields[10]; } *************** *** 399,409 **** # # slot The slot to update # #---------------------------------------------------------------------------- sub revert_slot_classification { ! my ( $self, $slot ) = @_; ! my @fields = $self->get_slot_fields( $slot ); my $oldbucketid = $fields[9]; --- 402,413 ---- # # slot The slot to update + # session A valid API session # #---------------------------------------------------------------------------- sub revert_slot_classification { ! my ( $self, $slot, $session ) = @_; ! my @fields = $self->get_slot_fields( $slot, $session ); my $oldbucketid = $fields[9]; *************** *** 426,436 **** sub get_slot_fields { ! my ( $self, $slot ) = @_; return $self->db_()->selectrow_array( "select $fields_slot from history, buckets, magnets ! where history.id = $slot and ! buckets.id = history.bucketid and ! magnets.id = magnetid;" ); } --- 430,444 ---- sub get_slot_fields { ! my ( $self, $slot, $session ) = @_; ! ! my $userid = $self->classifier_()->valid_session_key__( $session ); ! return undef if ( !defined($userid) ); return $self->db_()->selectrow_array( "select $fields_slot from history, buckets, magnets ! where history.id = $slot and ! history.userid = $userid and ! buckets.id = history.bucketid and ! magnets.id = magnetid;" ); } *************** *** 442,453 **** # # slot The slot id # #--------------------------------------------------------------------------- sub is_valid_slot { ! my ( $self, $slot ) = @_; my @row = $self->db_()->selectrow_array( ! "select id from history where history.id = $slot;" ); return ( ( @row ) && ( $row[0] == $slot ) ); --- 450,467 ---- # # slot The slot id + # session A valid API session # #--------------------------------------------------------------------------- sub is_valid_slot { ! my ( $self, $slot, $session ) = @_; ! ! my $userid = $self->classifier_()->valid_session_key__( $session ); ! return 0 if ( !defined($userid) ); my @row = $self->db_()->selectrow_array( ! "select id from history ! where history.id = $slot and ! history.userid = $userid;" ); return ( ( @row ) && ( $row[0] == $slot ) ); *************** *** 633,644 **** # $slot The slot ID # $archive 1 if it's OK to archive this entry # # --------------------------------------------------------------------------- sub delete_slot { ! my ( $self, $slot, $archive ) = @_; my $file = $self->get_slot_file( $slot ); ! $self->log_( 2, "delete_slot called for slot $slot, file $file" ); if ( $archive && $self->config_( 'archive' ) ) { --- 647,681 ---- # $slot The slot ID # $archive 1 if it's OK to archive this entry + # $session A valid API session + # $cleanup 1 if force delete this entry + # ( from cleanup_history only ) # # --------------------------------------------------------------------------- sub delete_slot { ! my ( $self, $slot, $archive, $session, $cleanup ) = @_; ! ! my $userid = $self->classifier_()->valid_session_key__( $session ); ! return if ( !defined($userid) ); ! ! my @b; ! if ( $cleanup ) { ! @b = $self->db_()->selectrow_array( ! "select buckets.name from history, buckets ! where history.bucketid = buckets.id and ! history.id = $slot;" ); ! } else { ! @b = $self->db_()->selectrow_array( ! "select buckets.name from history, buckets ! where history.bucketid = buckets.id and ! history.userid = $userid and ! history.id = $slot;" ); ! } my $file = $self->get_slot_file( $slot ); ! $self->log_( 2, "delete_slot called for slot $slot, file $file from userid $userid" ); ! ! my $bucket = $b[0]; ! return if ( !defined($bucket) ); if ( $archive && $self->config_( 'archive' ) ) { *************** *** 647,657 **** $self->make_directory__( $path ); - my @b = $self->db_()->selectrow_array( - "select buckets.name from history, buckets - where history.bucketid = buckets.id and - history.id = $slot;" ); - - my $bucket = $b[0]; - if ( ( $bucket ne 'unclassified' ) && ( $bucket ne 'unknown class' ) ) { --- 684,687 ---- *************** *** 963,967 **** # Add the sort option (if there is one) ! if ( $sort ne '' ) { $sort =~ s/^(\-)//; my $direction = defined($1)?'desc':'asc'; --- 993,997 ---- # Add the sort option (if there is one) ! if ( $sort ne '' ) {print "$sort"; $sort =~ s/^(\-)//; my $direction = defined($1)?'desc':'asc'; *************** *** 1009,1017 **** # # id The ID returned by start_query # #---------------------------------------------------------------------------- sub delete_query { ! my ( $self, $id ) = @_; $self->start_deleting(); --- 1039,1048 ---- # # id The ID returned by start_query + # session A valid API session # #---------------------------------------------------------------------------- sub delete_query { ! my ( $self, $id, $session ) = @_; $self->start_deleting(); *************** *** 1027,1031 **** } foreach my $id (@ids) { ! $self->delete_slot( $id, 1 ); } --- 1058,1062 ---- } foreach my $id (@ids) { ! $self->delete_slot( $id, 1, $session, 0 ); } *************** *** 1263,1278 **** my ( $self ) = @_; my $seconds_per_day = 24 * 60 * 60; ! my $old = time - $self->user_config_( 1, 'history_days' )*$seconds_per_day; ! my $d = $self->db_()->prepare( "select id from history ! where inserted < $old;" ); ! $d->execute; ! my @row; my @ids; ! while ( @row = $d->fetchrow_array ) { ! push ( @ids, $row[0] ); } foreach my $id (@ids) { ! $self->delete_slot( $id, 1 ); } } --- 1294,1317 ---- my ( $self ) = @_; + # TODO : multi-user support + my $session = $self->classifier_()->get_administrator_session_key(); + my $users = $self->classifier_()->get_user_list( $session ); + my $seconds_per_day = 24 * 60 * 60; ! my @ids; ! foreach my $userid ( keys %$users ) { ! my $old = time - $self->user_config_( $userid, 'history_days' )*$seconds_per_day; ! my $d = $self->db_()->prepare( "select id from history ! where userid = $userid and ! inserted < $old;" ); ! $d->execute; ! my @row; ! while ( @row = $d->fetchrow_array ) { ! push ( @ids, $row[0] ); ! } } foreach my $id (@ids) { ! $self->delete_slot( $id, 1, $session, 1 ); } } Index: Database.pm =================================================================== RCS file: /cvsroot/popfile/engine/POPFile/Database.pm,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** Database.pm 20 Feb 2006 02:01:57 -0000 1.7 --- Database.pm 30 Mar 2008 05:33:58 -0000 1.8 *************** *** 83,87 **** # database parameter above. ! $self->config_( 'dbconnect', 'dbi:SQLite:dbname=$dbname' ); $self->config_( 'dbuser', '' ); $self->config_( 'dbauth', '' ); --- 83,87 ---- # database parameter above. ! $self->config_( 'dbconnect', 'dbi:SQLite2:dbname=$dbname' ); $self->config_( 'dbuser', '' ); $self->config_( 'dbauth', '' ); |
From: Manni H. <man...@us...> - 2008-03-06 08:52:43
|
Update of /cvsroot/popfile/engine/Classifier In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv11121/Classifier Modified Files: Tag: b0_22_2 Bayes.pm Log Message: make sure the null-byte gets logged when we find one in db_quote() Index: Bayes.pm =================================================================== RCS file: /cvsroot/popfile/engine/Classifier/Bayes.pm,v retrieving revision 1.327.4.15 retrieving revision 1.327.4.16 diff -C2 -d -r1.327.4.15 -r1.327.4.16 *** Bayes.pm 5 Mar 2008 07:46:28 -0000 1.327.4.15 --- Bayes.pm 6 Mar 2008 08:52:46 -0000 1.327.4.16 *************** *** 3953,3959 **** my $string = shift; if ( $string =~ s/\x00//g ) { my ( $package, $file, $line ) = caller; ! $self->log_( 0, "Found null-byte in string $string. Called from package '$package' ($file), line $line." ); } --- 3953,3960 ---- my $string = shift; + my $backup = $string; if ( $string =~ s/\x00//g ) { my ( $package, $file, $line ) = caller; ! $self->log_( 0, "Found null-byte in string '$backup'. Called from package '$package' ($file), line $line." ); } |
From: Brian S. <xue...@us...> - 2008-03-05 18:44:39
|
Update of /cvsroot/popfile/engine In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv20331 Modified Files: Tag: b0_22_2 Makefile vars.mak Log Message: Make it easier to change the copyright date for the Windows executables (the popfile*.exe files) and mention the trademark in their VersionInfo section. Ensure popfile.exe gets given the same version number as the other Windows executables. All of the NSIS-based programs already have the copyright date updated automatically so no Makefile changes are required for them. Index: vars.mak =================================================================== RCS file: /cvsroot/popfile/engine/vars.mak,v retrieving revision 1.11.4.5 retrieving revision 1.11.4.6 diff -C2 -d -r1.11.4.5 -r1.11.4.6 *** vars.mak 27 Nov 2007 07:54:36 -0000 1.11.4.5 --- vars.mak 5 Mar 2008 18:44:42 -0000 1.11.4.6 *************** *** 4,12 **** # and for testing # ! # Copyright (c) 2003-2006 John Graham-Cumming export POPFILE_MAJOR_VERSION=1 export POPFILE_MINOR_VERSION=0 ! export POPFILE_REVISION=0 export POPFILE_VERSION:=$(POPFILE_MAJOR_VERSION).$(POPFILE_MINOR_VERSION).$(POPFILE_REVISION) POPFILE_VERSION_FILE=POPFile/popfile_version --- 4,14 ---- # and for testing # ! # Copyright (c) 2003-2008 John Graham-Cumming ! ! export POPFILE_BUILD_YEAR=2008 export POPFILE_MAJOR_VERSION=1 export POPFILE_MINOR_VERSION=0 ! export POPFILE_REVISION=1 export POPFILE_VERSION:=$(POPFILE_MAJOR_VERSION).$(POPFILE_MINOR_VERSION).$(POPFILE_REVISION) POPFILE_VERSION_FILE=POPFile/popfile_version Index: Makefile =================================================================== RCS file: /cvsroot/popfile/engine/Makefile,v retrieving revision 1.41.4.5 retrieving revision 1.41.4.6 diff -C2 -d -r1.41.4.5 -r1.41.4.6 *** Makefile 14 Dec 2007 09:05:45 -0000 1.41.4.5 --- Makefile 5 Mar 2008 18:44:42 -0000 1.41.4.6 *************** *** 4,8 **** # and for testing # ! # Copyright (c) 2003-2006 John Graham-Cumming include vars.mak --- 4,8 ---- # and for testing # ! # Copyright (c) 2003-2008 John Graham-Cumming include vars.mak *************** *** 71,75 **** winexe: popfile.exe popfileb.exe popfilef.exe popfileib.exe popfileif.exe trayicon.ico ../windows/POPFileIcon/popfile.ico popfile-service.exe ! COMMON_EXE_OPTIONS = --exe $@ --force --clean --dependent --xclude --icon ../windows/POPFileIcon/popfile.ico --icon trayicon.ico --script $< --info CompanyName="The POPFile Project" --info LegalCopyright="Copyright (c) 2006 John Graham-Cumming" --info ProductName=POPFile --info ProductVersion=$(POPFILE_VERSION).0 --info FileDescription=POPFile --info FileVersion=$(POPFILE_VERSION).0 ifeq ($(EXE_DEBUG),1) COMMON_EXE_OPTIONS += --debug --- 71,75 ---- winexe: popfile.exe popfileb.exe popfilef.exe popfileib.exe popfileif.exe trayicon.ico ../windows/POPFileIcon/popfile.ico popfile-service.exe ! COMMON_EXE_OPTIONS = --exe $@ --force --clean --dependent --xclude --icon ../windows/POPFileIcon/popfile.ico --icon trayicon.ico --script $< --info CompanyName="The POPFile Project" --info LegalCopyright="Copyright (c) $(POPFILE_BUILD_YEAR) John Graham-Cumming" --info LegalTrademarks="POPFile is a registered trademark of John Graham-Cumming" --info ProductName=POPFile --info ProductVersion=$(POPFILE_VERSION).0 --info FileDescription=POPFile --info FileVersion=$(POPFILE_VERSION).0 ifeq ($(EXE_DEBUG),1) COMMON_EXE_OPTIONS += --debug *************** *** 78,82 **** TRAY_OPTIONS = $(COMMON_EXE_OPTIONS) ! popfile.exe: popfile-windows.pl perlapp --gui $(TRAY_OPTIONS) --- 78,82 ---- TRAY_OPTIONS = $(COMMON_EXE_OPTIONS) ! popfile.exe: popfile-windows.pl $(POPFILE_VERSION_FILE) perlapp --gui $(TRAY_OPTIONS) |
From: Manni H. <man...@us...> - 2008-03-05 07:46:26
|
Update of /cvsroot/popfile/engine/Classifier In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv1814/Classifier Modified Files: Tag: b0_22_2 Bayes.pm Log Message: Always do the tests FIRST! Index: Bayes.pm =================================================================== RCS file: /cvsroot/popfile/engine/Classifier/Bayes.pm,v retrieving revision 1.327.4.14 retrieving revision 1.327.4.15 diff -C2 -d -r1.327.4.14 -r1.327.4.15 *** Bayes.pm 5 Mar 2008 07:39:44 -0000 1.327.4.14 --- Bayes.pm 5 Mar 2008 07:46:28 -0000 1.327.4.15 *************** *** 3955,3959 **** if ( $string =~ s/\x00//g ) { my ( $package, $file, $line ) = caller; ! $self->log( 0, "Found null-byte in string $string. Called from package '$package' ($file), line $line." ); } --- 3955,3959 ---- if ( $string =~ s/\x00//g ) { my ( $package, $file, $line ) = caller; ! $self->log_( 0, "Found null-byte in string $string. Called from package '$package' ($file), line $line." ); } |
From: Manni H. <man...@us...> - 2008-03-05 07:46:26
|
Update of /cvsroot/popfile/engine/tests In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv1814/tests Modified Files: Tag: b0_22_2 TestBayes.tst Log Message: Always do the tests FIRST! Index: TestBayes.tst =================================================================== RCS file: /cvsroot/popfile/engine/tests/TestBayes.tst,v retrieving revision 1.56.6.3 retrieving revision 1.56.6.4 diff -C2 -d -r1.56.6.3 -r1.56.6.4 *** TestBayes.tst 4 Mar 2008 13:23:29 -0000 1.56.6.3 --- TestBayes.tst 5 Mar 2008 07:46:28 -0000 1.56.6.4 *************** *** 200,203 **** --- 200,205 ---- test_assert_equal( scalar @{$sth->fetchall_arrayref}, 2 ); + test_assert_equal( $b->db_quote("foo\x00bar" ), "'foobar'" ); + # get_unique_word_count |
From: Manni H. <man...@us...> - 2008-03-05 07:39:40
|
Update of /cvsroot/popfile/engine/Classifier In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv31717/Classifier Modified Files: Tag: b0_22_2 Bayes.pm Log Message: copy-and-paste will kill me one fine day. Index: Bayes.pm =================================================================== RCS file: /cvsroot/popfile/engine/Classifier/Bayes.pm,v retrieving revision 1.327.4.13 retrieving revision 1.327.4.14 diff -C2 -d -r1.327.4.13 -r1.327.4.14 *** Bayes.pm 5 Mar 2008 07:34:07 -0000 1.327.4.13 --- Bayes.pm 5 Mar 2008 07:39:44 -0000 1.327.4.14 *************** *** 3954,3958 **** if ( $string =~ s/\x00//g ) { ! my ( $package, $file, $line ) = caller( 1 ); $self->log( 0, "Found null-byte in string $string. Called from package '$package' ($file), line $line." ); } --- 3954,3958 ---- if ( $string =~ s/\x00//g ) { ! my ( $package, $file, $line ) = caller; $self->log( 0, "Found null-byte in string $string. Called from package '$package' ($file), line $line." ); } |
From: Manni H. <man...@us...> - 2008-03-05 07:34:03
|
Update of /cvsroot/popfile/engine/Classifier In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv29772/Classifier Modified Files: Tag: b0_22_2 Bayes.pm Log Message: Add yet another method to deal with possible null-bytes: db_quote(). Call this function instead of the DBI version if you are going to execute your sql with do(). Index: Bayes.pm =================================================================== RCS file: /cvsroot/popfile/engine/Classifier/Bayes.pm,v retrieving revision 1.327.4.12 retrieving revision 1.327.4.13 diff -C2 -d -r1.327.4.12 -r1.327.4.13 *** Bayes.pm 4 Mar 2008 13:23:14 -0000 1.327.4.12 --- Bayes.pm 5 Mar 2008 07:34:07 -0000 1.327.4.13 *************** *** 867,871 **** if ( $t->{TYPE}->[$i] !~ /^int/i ) { $val = '' if ( !defined( $val ) ); ! $val = $self->{db__}->quote( $val ); } else { $val = 'NULL' if ( !defined( $val ) ); --- 867,871 ---- if ( $t->{TYPE}->[$i] !~ /^int/i ) { $val = '' if ( !defined( $val ) ); ! $val = $self->db_quote( $val ); } else { $val = 'NULL' if ( !defined( $val ) ); *************** *** 1187,1191 **** # word), the bucket id in the buckets table (which must exist) ! $word = $self->{db__}->quote($word); my $result = $self->{db__}->selectrow_arrayref( --- 1187,1191 ---- # word), the bucket id in the buckets table (which must exist) ! $word = $self->db_quote($word); my $result = $self->{db__}->selectrow_arrayref( *************** *** 3940,3943 **** --- 3940,3967 ---- #---------------------------------------------------------------------------- # + # db_quote + # + # Quote a string for use in a sql statement. Before calling DBI::quote on the + # string the string is also checked for any null-bytes. + # + # $string The string that should be quoted. + # + # returns the quoted string without any possible null-bytes + #---------------------------------------------------------------------------- + sub db_quote { + my $self = shift; + my $string = shift; + + if ( $string =~ s/\x00//g ) { + my ( $package, $file, $line ) = caller( 1 ); + $self->log( 0, "Found null-byte in string $string. Called from package '$package' ($file), line $line." ); + } + + return $self->{db__}->quote( $string ); + } + + + #---------------------------------------------------------------------------- + # # validate_sql_prepare_and_execute # |
From: Brian S. <xue...@us...> - 2008-03-04 14:55:07
|
Update of /cvsroot/popfile/windows In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv24779 Modified Files: Tag: b0_22_2 getssl.nsh Log Message: Update the "POPFile SSL Setup" wizard to make it use the appropriate POPFile Patch Control File if it is used to add or upgrade SSL Support for POPFile 0.22.5 or a later release. Update the history of the SSL patches and the instructions for making them, including the need to pay attention to the end-of-line sequences. Index: getssl.nsh =================================================================== RCS file: /cvsroot/popfile/windows/getssl.nsh,v retrieving revision 1.6.2.22 retrieving revision 1.6.2.23 diff -C2 -d -r1.6.2.22 -r1.6.2.23 *** getssl.nsh 14 Feb 2008 17:42:42 -0000 1.6.2.22 --- getssl.nsh 4 Mar 2008 14:55:01 -0000 1.6.2.23 *************** *** 9,16 **** # programs download and install the same SSL files. # ! # Starting with the 1.0.0 release the POPFile program's "Add/Remove Program" entry ! # now shows a "Change" button which can be used to add SSL support to the existing ! # POPFile installation. This is an alternative to re-running the installer with ! # /SSL specified on the command-line. # # Copyright (c) 2005-2008 John Graham-Cumming --- 9,16 ---- # programs download and install the same SSL files. # ! # Starting with the 1.0.0 release the POPFile program's "Add/Remove Program" ! # entry now shows a "Change" button which can be used to add SSL support to ! # the existing POPFile installation. This is an alternative to re-running the ! # installer with /SSL specified on the command-line. # # Copyright (c) 2005-2008 John Graham-Cumming *************** *** 93,117 **** ; On 18 July 2006 the University of Winnipeg repository was updated to provide ! ; IO::Socket::SSL v0.99 which is not compatible with POPFile so a patch will be ! ; applied to downgrade the SSL.pm file to the compatible v0.97 version. ; ; On 18 August 2006 the University of Winnipeg repository was updated to supply ! ; IO::Socket::SSL v0.999 which is not compatible with POPFile so a patch will ! ; be applied to downgrade the SSL.pm file to the compatible v0.97 version. ; ; On 13 September 2006 the University of Winnipeg repository was updated to ! ; supply IO::Socket::SSL v1.01 which is not compatible with POPFile so a patch ! ; will be applied to downgrade the SSL.pm file to the compatible v0.97 version. ; ! ; POPFile 0.22.5 uses a new minimal Perl and at the time of its release there ! ; was no need to patch any of the SSL Support files from the University of ! ; Winnipeg repository. ; ! ; Starting with the 0.22.5 release any patches required to make the SSL Support ! ; files compatible with POPFile will be downloaded from the POPFile web site. ! ; This will avoid the need to rebuild the installer and the 'SSL Setup' wizard ! ; every time the SSL Support files get changed. However the current patches, ! ; if any, will be incorporated in each build so they can be used if the POPFile ! ; web site is down. ;------------------------------------------------ --- 93,125 ---- ; On 18 July 2006 the University of Winnipeg repository was updated to provide ! ; IO::Socket::SSL v0.99 which was not compatible with the then current version ! ; of POPFile (0.22.4) so a patch was created to downgrade the SSL.pm file to ! ; the compatible v0.97 version. This patch is also used for POPFile 0.22.3. ; ; On 18 August 2006 the University of Winnipeg repository was updated to supply ! ; IO::Socket::SSL v0.999 which was not compatible with the then current version ! ; of POPFile (0.22.4) so a patch was created to downgrade the SSL.pm file to ! ; the compatible v0.97 version. This patch is also used for POPFile 0.22.3. ; ; On 13 September 2006 the University of Winnipeg repository was updated to ! ; supply IO::Socket::SSL v1.01 which was not compatible with the then current ! ; version of POPFile (0.22.4) so a patch was created to downgrade the SSL.pm ! ; file to the compatible v0.97 version. This patch is also used for POPFile 0.22.3. ; ! ; POPFile 0.22.5 uses a new minimal Perl and at the time of its release (June 2007) ! ; there was no need to patch any of the SSL Support files from the University of ! ; Winnipeg repository for use with POPFile 0.22.5. ; ! ; On 31 August 2007 the University of Winnipeg repository was updated to ! ; supply IO::Socket::SSL v1.08 which is not compatible with POPFile 0.22.4 or ! ; 0.22.3 so a patch will be applied to downgrade the SSL.pm file to the compatible ! ; v0.97 version when SSL Support is added to POPFile 0.22.4 or 0.22.3. ! ; ! ; Starting with the 0.22.5 release any patches required to make the SSL Support files ! ; compatible with POPFile will be downloaded from the POPFile web site. This will avoid ! ; the need to rebuild the installer and the 'SSL Setup' wizard every time the SSL Support ! ; files become incompatible with the 0.22.5 or any later releases of POPFile. However the ! ; current patches, if any, will always be incorporated into each build of the installer ! ; so they can be used if the POPFile web site is not available when the installer is run. ;------------------------------------------------ *************** *** 121,126 **** ; The patch used to downgrade SSL.pm v0.99, SSL.pm v0.999, SSL.pm v1.01 or SSL.pm v1.08 ; to SSL.pm v0.97 was created using the VPATCH package which is supplied with NSIS. The ! ; following commands were used to create the patch file: ; ; GenPat.exe SSL_0.99.pm SSL_0.97.pm SSL_pm.pat ; GenPat.exe SSL_0.999.pm SSL_0.97.pm SSL_pm.pat --- 129,135 ---- ; The patch used to downgrade SSL.pm v0.99, SSL.pm v0.999, SSL.pm v1.01 or SSL.pm v1.08 ; to SSL.pm v0.97 was created using the VPATCH package which is supplied with NSIS. The ! ; following MS-DOS commands were used to create the patch file: ; + ; if exist SSL_pm.pat del SSL_pm.pat ; GenPat.exe SSL_0.99.pm SSL_0.97.pm SSL_pm.pat ; GenPat.exe SSL_0.999.pm SSL_0.97.pm SSL_pm.pat *************** *** 134,142 **** ; and SSL_1.08.pm was the SSL.pm file from v1.08 of the IO::Socket:SSL module ; ! ; The resulting SSL_pm.pat file can be used to downgrade v0.99, v0.999, v1.01 or v1.08 of SSL.pm. ; ! ; NOTE: When preparing the patch make sure that these Perl files use LF and not CRLF ! ; for the end-of-line sequence otherwise the resulting SSL_pm.pat file will not work ! ; (a "no suitable patches found" error will be displayed) #-------------------------------------------------------------------------- --- 143,154 ---- ; and SSL_1.08.pm was the SSL.pm file from v1.08 of the IO::Socket:SSL module ; ! ; The resulting SSL_pm.pat file is able to downgrade v0.99, v0.999, v1.01 or v1.08 of SSL.pm. ; ! ; NOTE: It is important that the various SSL.pm files used to generate this patch use ! ; the correct end-of-line sequences. When the untgz plugin extracts SSL.pm the ! ; output file uses LF therefore the files used to generate this patch must also ! ; use LF instead of the normal CRLF sequence used on Windows systems. If files ! ; with CRLF are used to make the patch then the SSL.pm file will _not_ be patched ! ; (a "no suitable patches found" error will be reported by the 'vpatch' plugin). #-------------------------------------------------------------------------- *************** *** 159,164 **** # # The patch control file, any patches and the file containing the MD5 sums of the ! # patch control file and any patches are all stored in the same directory on the ! # POPFile web site. #-------------------------------------------------------------------------- --- 171,176 ---- # # The patch control file, any patches and the file containing the MD5 sums of the ! # patch control file and the available patches are all stored in the same directory ! # on the POPFile web site. #-------------------------------------------------------------------------- *************** *** 218,222 **** !ifdef ADDSSL ! Var G_PLS_FIELD_2 ; used to customise translated text strings !endif --- 230,234 ---- !ifdef ADDSSL ! Var G_PLS_FIELD_2 ; used to customise translated text strings !endif *************** *** 227,230 **** --- 239,244 ---- ; (the possible values are either ${C_BUILTIN} or ${C_INTERNET}) + Var G_PATCH_CTRL_FILE ; the name of the appropriate Patch Control File (e.g. 0.22.x.pcf, 0.22.5.pcf, etc) + ; Values used for the $G_PATCH_SOURCE and $G_SSL_SOURCE flags ; (constants are used for these values to make maintenance easier) *************** *** 275,278 **** --- 289,303 ---- !ifdef ADDSSL + ; We only check the first 3 fields in the version number (X.Y.Z), ignoring the BUILD number + ; (NOTE: This means ActivePerl 5.8.8.820 and 5.8.8.822 are not handled differently ) + + !define L_VER_X $R3 ; version number's MAJOR field + !define L_VER_Y $R4 ; version number's MINOR field + !define L_VER_Z $R5 ; version number's REVISION field + + Push ${L_VER_X} + Push ${L_VER_Y} + Push ${L_VER_Z} + ; Assume we will use the built-in SSL files which are compatible with pre-0.22.3 releases ; (these SSL support files do not require any patches to make them POPFile-compatible) *************** *** 296,300 **** StrCmp ${L_RESULT} "/BUILTIN" 0 look_for_minimal_Perl DetailPrint "The '/BUILTIN' option was supplied on the command-line" ! Goto assume_pre_0_22_3 look_for_minimal_Perl: --- 321,325 ---- StrCmp ${L_RESULT} "/BUILTIN" 0 look_for_minimal_Perl DetailPrint "The '/BUILTIN' option was supplied on the command-line" ! Goto pre_0_22_3 look_for_minimal_Perl: *************** *** 307,322 **** IfFileExists "$G_ROOTDIR\perl58.dll" check_Perl_version DetailPrint "Assume pre-0.22.3 installation (perl58.dll not found in '$G_ROOTDIR' folder)" ! Goto assume_pre_0_22_3 check_Perl_version: - - !define L_VER_X $R1 ; We check only the first three fields in the version number - !define L_VER_Y $R2 ; but the code could be further simplified by merely testing - !define L_VER_Z $R3 ; the 'build number' field (the field we currently ignore) - - Push ${L_VER_X} - Push ${L_VER_Y} - Push ${L_VER_Z} - GetDllVersion "$G_ROOTDIR\perl58.dll" ${L_VER_Y} ${L_VER_Z} IntOp ${L_VER_X} ${L_VER_Y} / 0x00010000 --- 332,338 ---- IfFileExists "$G_ROOTDIR\perl58.dll" check_Perl_version DetailPrint "Assume pre-0.22.3 installation (perl58.dll not found in '$G_ROOTDIR' folder)" ! Goto pre_0_22_3 check_Perl_version: GetDllVersion "$G_ROOTDIR\perl58.dll" ${L_VER_Y} ${L_VER_Z} IntOp ${L_VER_X} ${L_VER_Y} / 0x00010000 *************** *** 327,349 **** ; Only download the SSL files if the minimal Perl version is 5.8.7 or higher ! IntCmp ${L_VER_X} 5 0 restore_vars set_download_flag ! IntCmp ${L_VER_Y} 8 0 restore_vars set_download_flag ! IntCmp ${L_VER_Z} 7 0 restore_vars set_download_flag set_download_flag: StrCpy $G_SSL_SOURCE "${C_INTERNET}" ! restore_vars: ! Pop ${L_VER_Z} ! Pop ${L_VER_Y} ! Pop ${L_VER_X} ! ! !undef L_VER_X ! !undef L_VER_Y ! !undef L_VER_Z ! ! StrCmp $G_SSL_SOURCE "${C_INTERNET}" download_ssl ! ! assume_pre_0_22_3: ; Pretend we've just downloaded the SSL archives and OpenSSL DLLs from the Internet --- 343,355 ---- ; Only download the SSL files if the minimal Perl version is 5.8.7 or higher ! IntCmp ${L_VER_X} 5 0 pre_0_22_3 set_download_flag ! IntCmp ${L_VER_Y} 8 0 pre_0_22_3 set_download_flag ! IntCmp ${L_VER_Z} 7 0 pre_0_22_3 set_download_flag set_download_flag: StrCpy $G_SSL_SOURCE "${C_INTERNET}" + Goto download_ssl ! pre_0_22_3: ; Pretend we've just downloaded the SSL archives and OpenSSL DLLs from the Internet *************** *** 529,535 **** StrCmp $G_SSL_SOURCE "${C_BUILTIN}" all_done - !endif ! ; Try to download the appropriate POPFile Patch Control File DetailPrint "" --- 535,572 ---- StrCmp $G_SSL_SOURCE "${C_BUILTIN}" all_done ! ; If we are adding SSL Support to POPFile 0.22.5 or later then we need to get the appropriate ! ; Patch Control File from the POPFile website instead of using the generic one (0.22.x.pcf) ! ! IfFileExists "$G_ROOTDIR\uninstall.exe" check_popfile_version ! ! use_generic_pcf: ! StrCpy $G_PATCH_CTRL_FILE "${C_PATCH_CTRL_FILE}" ! Goto download_pcf ! ! check_popfile_version: ! GetDllVersion "$G_ROOTDIR\uninstall.exe" ${L_VER_Y} ${L_VER_Z} ! IntOp ${L_VER_X} ${L_VER_Y} / 0x00010000 ! IntOp ${L_VER_Y} ${L_VER_Y} & 0x0000FFFF ! IntOp ${L_VER_Z} ${L_VER_Z} / 0x00010000 ! DetailPrint "" ! DetailPrint "POPFile version ${L_VER_X}.${L_VER_Y}.${L_VER_Z} detected in '$G_ROOTDIR' folder" ! ! ; 0.22.5 was the first release to use a Patch Control File ! ! IntCmp ${L_VER_X} 0 0 use_generic_pcf use_appropriate_pcf ! IntCmp ${L_VER_Y} 22 0 use_generic_pcf use_appropriate_pcf ! IntCmp ${L_VER_Z} 5 0 use_generic_pcf use_appropriate_pcf ! ! use_appropriate_pcf: ! StrCpy $G_PATCH_CTRL_FILE "${L_VER_X}.${L_VER_Y}.${L_VER_Z}.pcf" ! ! download_pcf: ! !else ! ! ; Try to download the appropriate POPFile Patch Control File ! ! StrCpy $G_PATCH_CTRL_FILE "${C_PATCH_CTRL_FILE}" ! !endif DetailPrint "" *************** *** 538,542 **** DetailPrint "" ! Push "${C_PATCH_WEBSITE}/${C_PATCH_CTRL_FILE}" Call ${UN}GetSSLFile Pop ${L_RESULT} --- 575,579 ---- DetailPrint "" ! Push "${C_PATCH_WEBSITE}/$G_PATCH_CTRL_FILE" Call ${UN}GetSSLFile Pop ${L_RESULT} *************** *** 553,561 **** ; compare the result with the value given in the MD5SUMS file ! md5dll::GetMD5File "$PLUGINSDIR\${C_PATCH_CTRL_FILE}" Pop ${L_RESULT} DetailPrint "" DetailPrint "Calculated MD5 sum for Patch Control File: ${L_RESULT}" ! Push "${C_PATCH_CTRL_FILE}" Call ${UN}ExtractMD5sum Pop $G_PLS_FIELD_1 --- 590,598 ---- ; compare the result with the value given in the MD5SUMS file ! md5dll::GetMD5File "$PLUGINSDIR\$G_PATCH_CTRL_FILE" Pop ${L_RESULT} DetailPrint "" DetailPrint "Calculated MD5 sum for Patch Control File: ${L_RESULT}" ! Push $G_PATCH_CTRL_FILE Call ${UN}ExtractMD5sum Pop $G_PLS_FIELD_1 *************** *** 585,588 **** --- 622,626 ---- File "/oname=$PLUGINSDIR\${C_PATCH_CTRL_FILE}" "..\0.22.x.pcf" File /nonfatal "/oname=$PLUGINSDIR\SSL_pm.pat" "..\SSL_pm.pat" + StrCpy $G_PATCH_CTRL_FILE "${C_PATCH_CTRL_FILE}" !endif *************** *** 590,594 **** ; (the file is used as an INI file so it is best for it to use CRLF instead of LF) ! Push "${C_PATCH_CTRL_FILE}" Call ${UN}EOL2CRLF SetDetailsPrint listonly --- 628,632 ---- ; (the file is used as an INI file so it is best for it to use CRLF instead of LF) ! Push $G_PATCH_CTRL_FILE Call ${UN}EOL2CRLF SetDetailsPrint listonly *************** *** 596,603 **** ; Record information about the built-in Patch Control File in the installer log ! !insertmacro MUI_INSTALLOPTIONS_READ $G_PLS_FIELD_1 "${C_PATCH_CTRL_FILE}" "Settings" "POPFileVersion" ! !insertmacro MUI_INSTALLOPTIONS_READ $G_PLS_FIELD_2 "${C_PATCH_CTRL_FILE}" "Settings" "PatchIssue" DetailPrint "POPFile $G_PLS_FIELD_1 Patch Control File (issue $G_PLS_FIELD_2) [*** Built-in version ***]" ! !insertmacro MUI_INSTALLOPTIONS_READ $G_PLS_FIELD_1 "${C_PATCH_CTRL_FILE}" "Settings" "Comment" StrCmp $G_PLS_FIELD_1 "" builtin_patch_count DetailPrint "$G_PLS_FIELD_1" --- 634,641 ---- ; Record information about the built-in Patch Control File in the installer log ! !insertmacro MUI_INSTALLOPTIONS_READ $G_PLS_FIELD_1 "$G_PATCH_CTRL_FILE" "Settings" "POPFileVersion" ! !insertmacro MUI_INSTALLOPTIONS_READ $G_PLS_FIELD_2 "$G_PATCH_CTRL_FILE" "Settings" "PatchIssue" DetailPrint "POPFile $G_PLS_FIELD_1 Patch Control File (issue $G_PLS_FIELD_2) [*** Built-in version ***]" ! !insertmacro MUI_INSTALLOPTIONS_READ $G_PLS_FIELD_1 "$G_PATCH_CTRL_FILE" "Settings" "Comment" StrCmp $G_PLS_FIELD_1 "" builtin_patch_count DetailPrint "$G_PLS_FIELD_1" *************** *** 605,609 **** builtin_patch_count: DetailPrint "" ! !insertmacro MUI_INSTALLOPTIONS_READ ${L_LISTSIZE} "${C_PATCH_CTRL_FILE}" "Settings" "NumberOfPatches" StrCmp ${L_LISTSIZE} "0" 0 apply_patches DetailPrint "No POPFile SSL patches are required" --- 643,647 ---- builtin_patch_count: DetailPrint "" ! !insertmacro MUI_INSTALLOPTIONS_READ ${L_LISTSIZE} "$G_PATCH_CTRL_FILE" "Settings" "NumberOfPatches" StrCmp ${L_LISTSIZE} "0" 0 apply_patches DetailPrint "No POPFile SSL patches are required" *************** *** 617,630 **** ; (the file is used as an INI file so it is best for it to use CRLF instead of LF) ! Push "${C_PATCH_CTRL_FILE}" Call ${UN}EOL2CRLF ; Record information about the Patch Control File in the installer log ! !insertmacro MUI_INSTALLOPTIONS_READ $G_PLS_FIELD_1 "${C_PATCH_CTRL_FILE}" "Settings" "POPFileVersion" ! !insertmacro MUI_INSTALLOPTIONS_READ $G_PLS_FIELD_2 "${C_PATCH_CTRL_FILE}" "Settings" "PatchIssue" DetailPrint "" DetailPrint "POPFile $G_PLS_FIELD_1 Patch Control File (issue $G_PLS_FIELD_2)" ! !insertmacro MUI_INSTALLOPTIONS_READ $G_PLS_FIELD_1 "${C_PATCH_CTRL_FILE}" "Settings" "Comment" StrCmp $G_PLS_FIELD_1 "" get_the_patches DetailPrint "$G_PLS_FIELD_1" --- 655,668 ---- ; (the file is used as an INI file so it is best for it to use CRLF instead of LF) ! Push $G_PATCH_CTRL_FILE Call ${UN}EOL2CRLF ; Record information about the Patch Control File in the installer log ! !insertmacro MUI_INSTALLOPTIONS_READ $G_PLS_FIELD_1 "$G_PATCH_CTRL_FILE" "Settings" "POPFileVersion" ! !insertmacro MUI_INSTALLOPTIONS_READ $G_PLS_FIELD_2 "$G_PATCH_CTRL_FILE" "Settings" "PatchIssue" DetailPrint "" DetailPrint "POPFile $G_PLS_FIELD_1 Patch Control File (issue $G_PLS_FIELD_2)" ! !insertmacro MUI_INSTALLOPTIONS_READ $G_PLS_FIELD_1 "$G_PATCH_CTRL_FILE" "Settings" "Comment" StrCmp $G_PLS_FIELD_1 "" get_the_patches DetailPrint "$G_PLS_FIELD_1" *************** *** 656,659 **** --- 694,705 ---- SetDetailsPrint listonly !insertmacro SECTIONLOG_EXIT "SSL Support" + !else + Pop ${L_VER_Z} + Pop ${L_VER_Y} + Pop ${L_VER_X} + + !undef L_VER_X + !undef L_VER_Y + !undef L_VER_Z !endif *************** *** 1067,1071 **** Push ${L_RESULT} ! !insertmacro MUI_INSTALLOPTIONS_READ ${L_LISTSIZE} "${C_PATCH_CTRL_FILE}" "Settings" "NumberOfPatches" StrCmp ${L_LISTSIZE} "0" 0 download_patches DetailPrint "No POPFile SSL patches are required" --- 1113,1117 ---- Push ${L_RESULT} ! !insertmacro MUI_INSTALLOPTIONS_READ ${L_LISTSIZE} "$G_PATCH_CTRL_FILE" "Settings" "NumberOfPatches" StrCmp ${L_LISTSIZE} "0" 0 download_patches DetailPrint "No POPFile SSL patches are required" *************** *** 1080,1089 **** IntCmp ${L_INDEX} ${L_LISTSIZE} 0 0 exit StrCpy ${L_PCF_ID} "Patch-${L_INDEX}" ! !insertmacro MUI_INSTALLOPTIONS_READ ${L_PATCHFILE} "${C_PATCH_CTRL_FILE}" "${L_PCF_ID}" "PatchData" StrCmp ${L_PATCHFILE} "" no_patch_specified Push "${C_PATCH_WEBSITE}/${L_PATCHFILE}" Call ${UN}GetSSLFile Pop ${L_RESULT} ! !insertmacro MUI_INSTALLOPTIONS_WRITE "${C_PATCH_CTRL_FILE}" "${L_PCF_ID}" "DownloadStatus" "${L_RESULT}" StrCpy $G_PLS_FIELD_1 "OK (${L_PATCHFILE})" StrCmp ${L_RESULT} "OK" download_status --- 1126,1135 ---- IntCmp ${L_INDEX} ${L_LISTSIZE} 0 0 exit StrCpy ${L_PCF_ID} "Patch-${L_INDEX}" ! !insertmacro MUI_INSTALLOPTIONS_READ ${L_PATCHFILE} "$G_PATCH_CTRL_FILE" "${L_PCF_ID}" "PatchData" StrCmp ${L_PATCHFILE} "" no_patch_specified Push "${C_PATCH_WEBSITE}/${L_PATCHFILE}" Call ${UN}GetSSLFile Pop ${L_RESULT} ! !insertmacro MUI_INSTALLOPTIONS_WRITE "$G_PATCH_CTRL_FILE" "${L_PCF_ID}" "DownloadStatus" "${L_RESULT}" StrCpy $G_PLS_FIELD_1 "OK (${L_PATCHFILE})" StrCmp ${L_RESULT} "OK" download_status *************** *** 1154,1158 **** Push ${L_TARGET_FOLDER} ! !insertmacro MUI_INSTALLOPTIONS_READ ${L_LISTSIZE} "${C_PATCH_CTRL_FILE}" "Settings" "NumberOfPatches" DetailPrint "" --- 1200,1204 ---- Push ${L_TARGET_FOLDER} ! !insertmacro MUI_INSTALLOPTIONS_READ ${L_LISTSIZE} "$G_PATCH_CTRL_FILE" "Settings" "NumberOfPatches" DetailPrint "" *************** *** 1177,1198 **** IntCmp ${L_INDEX} ${L_LISTSIZE} 0 0 all_done StrCpy ${L_PCF_ID} "Patch-${L_INDEX}" ! !insertmacro MUI_INSTALLOPTIONS_READ ${L_PATCHFILE} "${C_PATCH_CTRL_FILE}" "${L_PCF_ID}" "PatchData" StrCmp ${L_PATCHFILE} "" apply_next_patch ! !insertmacro MUI_INSTALLOPTIONS_READ $G_PLS_FIELD_1 "${C_PATCH_CTRL_FILE}" "${L_PCF_ID}" "LogMsg-1" DetailPrint "" DetailPrint "" DetailPrint "[${L_PCF_ID}] $G_PLS_FIELD_1" DetailPrint "[${L_PCF_ID}]" ! !insertmacro MUI_INSTALLOPTIONS_READ $G_PLS_FIELD_1 "${C_PATCH_CTRL_FILE}" "${L_PCF_ID}" "Category" DetailPrint "[${L_PCF_ID}] This patch is $G_PLS_FIELD_1" DetailPrint "[${L_PCF_ID}]" ! !insertmacro MUI_INSTALLOPTIONS_READ ${L_PATCHFILE} "${C_PATCH_CTRL_FILE}" "${L_PCF_ID}" "PatchData" ! !insertmacro MUI_INSTALLOPTIONS_READ ${L_TARGET_FOLDER} "${C_PATCH_CTRL_FILE}" "${L_PCF_ID}" "TargetFolder" StrCpy ${L_TARGET_FOLDER} $G_ROOTDIR\${L_TARGET_FOLDER} ! !insertmacro MUI_INSTALLOPTIONS_READ ${L_TARGET_FILE} "${C_PATCH_CTRL_FILE}" "${L_PCF_ID}" "TargetFile" DetailPrint "[${L_PCF_ID}] Target file: ${L_TARGET_FOLDER}\${L_TARGET_FILE}" DetailPrint "[${L_PCF_ID}]" StrCmp $G_PATCH_SOURCE "${C_BUILTIN}" check_target_path ! !insertmacro MUI_INSTALLOPTIONS_READ $G_PLS_FIELD_1 "${C_PATCH_CTRL_FILE}" "${L_PCF_ID}" "DownloadStatus" StrCmp $G_PLS_FIELD_1 "OK" check_target_path StrCpy $G_PLS_FIELD_2 "Unable to apply '${L_PATCHFILE}' patch data ($G_PLS_FIELD_1)" --- 1223,1244 ---- IntCmp ${L_INDEX} ${L_LISTSIZE} 0 0 all_done StrCpy ${L_PCF_ID} "Patch-${L_INDEX}" ! !insertmacro MUI_INSTALLOPTIONS_READ ${L_PATCHFILE} "$G_PATCH_CTRL_FILE" "${L_PCF_ID}" "PatchData" StrCmp ${L_PATCHFILE} "" apply_next_patch ! !insertmacro MUI_INSTALLOPTIONS_READ $G_PLS_FIELD_1 "$G_PATCH_CTRL_FILE" "${L_PCF_ID}" "LogMsg-1" DetailPrint "" DetailPrint "" DetailPrint "[${L_PCF_ID}] $G_PLS_FIELD_1" DetailPrint "[${L_PCF_ID}]" ! !insertmacro MUI_INSTALLOPTIONS_READ $G_PLS_FIELD_1 "$G_PATCH_CTRL_FILE" "${L_PCF_ID}" "Category" DetailPrint "[${L_PCF_ID}] This patch is $G_PLS_FIELD_1" DetailPrint "[${L_PCF_ID}]" ! !insertmacro MUI_INSTALLOPTIONS_READ ${L_PATCHFILE} "$G_PATCH_CTRL_FILE" "${L_PCF_ID}" "PatchData" ! !insertmacro MUI_INSTALLOPTIONS_READ ${L_TARGET_FOLDER} "$G_PATCH_CTRL_FILE" "${L_PCF_ID}" "TargetFolder" StrCpy ${L_TARGET_FOLDER} $G_ROOTDIR\${L_TARGET_FOLDER} ! !insertmacro MUI_INSTALLOPTIONS_READ ${L_TARGET_FILE} "$G_PATCH_CTRL_FILE" "${L_PCF_ID}" "TargetFile" DetailPrint "[${L_PCF_ID}] Target file: ${L_TARGET_FOLDER}\${L_TARGET_FILE}" DetailPrint "[${L_PCF_ID}]" StrCmp $G_PATCH_SOURCE "${C_BUILTIN}" check_target_path ! !insertmacro MUI_INSTALLOPTIONS_READ $G_PLS_FIELD_1 "$G_PATCH_CTRL_FILE" "${L_PCF_ID}" "DownloadStatus" StrCmp $G_PLS_FIELD_1 "OK" check_target_path StrCpy $G_PLS_FIELD_2 "Unable to apply '${L_PATCHFILE}' patch data ($G_PLS_FIELD_1)" *************** *** 1213,1219 **** vpatch::vpatchfile "$PLUGINSDIR\${L_PATCHFILE}" "${L_TARGET_FOLDER}\${L_TARGET_FILE}" "$PLUGINSDIR\patched-${L_TARGET_FILE}" Pop $G_PLS_FIELD_2 ! !insertmacro MUI_INSTALLOPTIONS_WRITE "${C_PATCH_CTRL_FILE}" "${L_PCF_ID}" "PatchResult" "$G_PLS_FIELD_2" ! !insertmacro MUI_INSTALLOPTIONS_READ $G_PLS_FIELD_1 "${C_PATCH_CTRL_FILE}" "${L_PCF_ID}" "LogMsg-2" SetDetailsPrint both DetailPrint "[${L_PCF_ID}] $G_PLS_FIELD_1 $G_PLS_FIELD_2" --- 1259,1265 ---- vpatch::vpatchfile "$PLUGINSDIR\${L_PATCHFILE}" "${L_TARGET_FOLDER}\${L_TARGET_FILE}" "$PLUGINSDIR\patched-${L_TARGET_FILE}" Pop $G_PLS_FIELD_2 ! !insertmacro MUI_INSTALLOPTIONS_WRITE "$G_PATCH_CTRL_FILE" "${L_PCF_ID}" "PatchResult" "$G_PLS_FIELD_2" ! !insertmacro MUI_INSTALLOPTIONS_READ $G_PLS_FIELD_1 "$G_PATCH_CTRL_FILE" "${L_PCF_ID}" "LogMsg-2" SetDetailsPrint both DetailPrint "[${L_PCF_ID}] $G_PLS_FIELD_1 $G_PLS_FIELD_2" *************** *** 1234,1241 **** patch_failure: ! !insertmacro MUI_INSTALLOPTIONS_WRITE "${C_PATCH_CTRL_FILE}" "${L_PCF_ID}" "PatchResult" "$G_PLS_FIELD_2" DetailPrint "[${L_PCF_ID}]" SetDetailsPrint both ! !insertmacro MUI_INSTALLOPTIONS_READ $G_PLS_FIELD_1 "${C_PATCH_CTRL_FILE}" "${L_PCF_ID}" "LogMsg-4" DetailPrint "[${L_PCF_ID}] $G_PLS_FIELD_1" SetDetailsPrint listonly --- 1280,1287 ---- patch_failure: ! !insertmacro MUI_INSTALLOPTIONS_WRITE "$G_PATCH_CTRL_FILE" "${L_PCF_ID}" "PatchResult" "$G_PLS_FIELD_2" DetailPrint "[${L_PCF_ID}]" SetDetailsPrint both ! !insertmacro MUI_INSTALLOPTIONS_READ $G_PLS_FIELD_1 "$G_PATCH_CTRL_FILE" "${L_PCF_ID}" "LogMsg-4" DetailPrint "[${L_PCF_ID}] $G_PLS_FIELD_1" SetDetailsPrint listonly *************** *** 1243,1247 **** Goto show_msgbox !endif ! !insertmacro MUI_INSTALLOPTIONS_READ ${L_RESULT} "${C_PATCH_CTRL_FILE}" "${L_PCF_ID}" "Category" StrCmp ${L_RESULT} "ESSENTIAL" 0 apply_next_patch --- 1289,1293 ---- Goto show_msgbox !endif ! !insertmacro MUI_INSTALLOPTIONS_READ ${L_RESULT} "$G_PATCH_CTRL_FILE" "${L_PCF_ID}" "Category" StrCmp ${L_RESULT} "ESSENTIAL" 0 apply_next_patch *************** *** 1255,1259 **** patch_success: ! !insertmacro MUI_INSTALLOPTIONS_READ $G_PLS_FIELD_1 "${C_PATCH_CTRL_FILE}" "${L_PCF_ID}" "LogMsg-3" SetDetailsPrint listonly DetailPrint "[${L_PCF_ID}]" --- 1301,1305 ---- patch_success: ! !insertmacro MUI_INSTALLOPTIONS_READ $G_PLS_FIELD_1 "$G_PATCH_CTRL_FILE" "${L_PCF_ID}" "LogMsg-3" SetDetailsPrint listonly DetailPrint "[${L_PCF_ID}]" |
From: Brian S. <xue...@us...> - 2008-03-04 14:55:07
|
Update of /cvsroot/popfile/windows/add-ons In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv24779/add-ons Modified Files: Tag: b0_22_2 addssl.nsi Log Message: Update the "POPFile SSL Setup" wizard to make it use the appropriate POPFile Patch Control File if it is used to add or upgrade SSL Support for POPFile 0.22.5 or a later release. Update the history of the SSL patches and the instructions for making them, including the need to pay attention to the end-of-line sequences. Index: addssl.nsi =================================================================== RCS file: /cvsroot/popfile/windows/add-ons/addssl.nsi,v retrieving revision 1.3.4.12 retrieving revision 1.3.4.13 diff -C2 -d -r1.3.4.12 -r1.3.4.13 *** addssl.nsi 14 Feb 2008 17:42:42 -0000 1.3.4.12 --- addssl.nsi 4 Mar 2008 14:55:00 -0000 1.3.4.13 *************** *** 4,24 **** # SSL support for an existing POPFile 0.22.0 (or later) installation. # ! # Normally the SSL support files are downloaded from the University of Winnipeg ! # repository. However these files are no longer compatible with the minimal Perl ! # shipped with POPFile 0.22.0, 0.22.1 or 0.22.2 so this utility includes a set ! # of compatible SSL files which will be installed instead. The minimal Perl's ! # version number (obtained from the 'perl58.dll' file) is used to determine the ! # action to be taken. # ! # The Windows installer for POPFile 0.22.3 (or later) is able to download and ! # install SSL support. Normally SSL support is downloaded at the same time that ! # POPFile is installed, but SSL support can be added or updated later by using ! # the command "setup.exe /SSL" to run the installer (instead of "setup.exe"). # ! # IO::Socket:SSL v0.97 (released 17 July 2005) is the most recent version which ! # is compatible with POPFile 0.22.4. IO::Socket::SSL versions 0.99, 0.999, 1.01 ! # and 1.08 (the most recent, released 31 August 2007) are all incompatible with ! # POPFile 0.22.4 so a patch is applied to downgrade SSL.pm to v0.97 to make it ! # POPFile-compatible (see ..\getssl.nsh for details). # # As a temporary workaround to cope with future "SSL compatibility" issues --- 4,24 ---- # SSL support for an existing POPFile 0.22.0 (or later) installation. # ! # The Windows installer for POPFile 0.22.3 (or later) is able to download ! # and install SSL support. If any patches need to be applied to make the ! # SSL files work with POPFile these will be downloaded from the POPFile ! # website and applied by the 0.22.5 or later installers. # ! # Normally SSL support is downloaded at the same time that POPFile is ! # installed, but SSL support can be added or updated after installation ! # by using the "Add/Remove Programs" entry for POPFile 1.0.0 or later. ! # For POPFile 0.22.3, 0.22.4 or 0.22.5 SSL support can be added or updated ! # later by using the command "setup.exe /SSL" to run the installer. # ! # Normally the SSL support files are downloaded from the University of ! # Winnipeg repository. However these files are no longer compatible with ! # the minimal Perl shipped with POPFile 0.22.0, 0.22.1 or 0.22.2 so this ! # utility includes a set of compatible SSL files which will be installed ! # instead. The minimal Perl's version number (obtained from the 'perl58.dll' ! # file) is used to determine the action to be taken. # # As a temporary workaround to cope with future "SSL compatibility" issues *************** *** 31,36 **** # be backed up as Module.pm.bk1). The patch is only applied if v1.40 is found. # ! # An 'include' file is used to ensure this utility and the main POPFile ! # installer download and install the same SSL support files. # # Copyright (c) 2004-2008 John Graham-Cumming --- 31,37 ---- # be backed up as Module.pm.bk1). The patch is only applied if v1.40 is found. # ! # An 'include' file (getssl.nsh) is used to ensure this utility and the main ! # POPFile installer download and install the same SSL support files and any ! # necessary SSL patches. # # Copyright (c) 2004-2008 John Graham-Cumming *************** *** 196,204 **** # the SSL support files from the University of Winnipeg repository. However there will always # be some delay between the repository being updated with SSL files which are not compatible ! # with POPFile and the generation of an updated version of this wizard. # # The /BUILTIN switch provides an easy way to force the installation of the old SSL support # files normally used only for the POPFile 0.22.0, 0.22.1 and 0.22.2 releases as a workaround ! # until this wizard can be updated to handle the new SSL support files. # # To force the installation of the old SSL support files use the following command: --- 197,205 ---- # the SSL support files from the University of Winnipeg repository. However there will always # be some delay between the repository being updated with SSL files which are not compatible ! # with POPFile and the generation of an updated version of the SSL patches (or this wizard). # # The /BUILTIN switch provides an easy way to force the installation of the old SSL support # files normally used only for the POPFile 0.22.0, 0.22.1 and 0.22.2 releases as a workaround ! # until the SSL patches (or this wizard) can be updated to handle the new SSL support files. # # To force the installation of the old SSL support files use the following command: *************** *** 215,218 **** --- 216,220 ---- # Normally no NSIS compiler warnings are expected. However there may be some warnings # which mention "PFI_LANG_NSISDL_PLURAL" is not set in one or more language tables. + # # These "PFI_LANG_NSISDL_PLURAL" warnings can be safely ignored (at present only the # 'Japanese-pfi.nsh' file generates this warning). *************** *** 266,270 **** Name "POPFile SSL Setup" ! !define C_PFI_VERSION "0.3.0" ; Mention the wizard's version number in the window title --- 268,272 ---- Name "POPFile SSL Setup" ! !define C_PFI_VERSION "0.3.1" ; Mention the wizard's version number in the window title |
From: Manni H. <man...@us...> - 2008-03-04 13:23:25
|
Update of /cvsroot/popfile/engine/tests In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv22708/tests Modified Files: Tag: b0_22_2 TestBayes.tst Log Message: Add tests for the new method Index: TestBayes.tst =================================================================== RCS file: /cvsroot/popfile/engine/tests/TestBayes.tst,v retrieving revision 1.56.6.2 retrieving revision 1.56.6.3 diff -C2 -d -r1.56.6.2 -r1.56.6.3 *** TestBayes.tst 21 Feb 2006 13:55:55 -0000 1.56.6.2 --- TestBayes.tst 4 Mar 2008 13:23:29 -0000 1.56.6.3 *************** *** 187,190 **** --- 187,203 ---- test_assert_equal( $b->get_count_for_word( $session, $buckets[2], 'foo'), 0 ); + # Test validation of sql + + my $sql = "SELECT * FROM words WHERE word IN ( 'f\x00oo', 'baz' )"; + my $sth = $b->validate_sql_prepare_and_execute( $sql ); + test_assert_equal( ref $sth, 'DBI::st' ); + test_assert_equal( scalar @{$sth->fetchall_arrayref}, 2 ); + + # same thing with bind-params + $sql = "SELECT * FROM words WHERE word IN ( ?, ? )"; + $sth = $b->validate_sql_prepare_and_execute( $sql, "f\x00oo", 'baz' ); + test_assert_equal( ref $sth, 'DBI::st' ); + test_assert_equal( scalar @{$sth->fetchall_arrayref}, 2 ); + # get_unique_word_count *************** *** 993,997 **** close CLIENT; close MAIL; ! test_assert_equal( $class, 'gomi' ); test_assert( -e $h->get_slot_file( $slot ) ); --- 1006,1010 ---- close CLIENT; close MAIL; ! test_assert_equal( $class, 'gomi' ); test_assert( -e $h->get_slot_file( $slot ) ); |
From: Manni H. <man...@us...> - 2008-03-04 13:23:14
|
Update of /cvsroot/popfile/engine/Classifier In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv22687/Classifier Modified Files: Tag: b0_22_2 Bayes.pm Log Message: Avoid a warning message. Index: Bayes.pm =================================================================== RCS file: /cvsroot/popfile/engine/Classifier/Bayes.pm,v retrieving revision 1.327.4.11 retrieving revision 1.327.4.12 diff -C2 -d -r1.327.4.11 -r1.327.4.12 *** Bayes.pm 4 Mar 2008 12:53:42 -0000 1.327.4.11 --- Bayes.pm 4 Mar 2008 13:23:14 -0000 1.327.4.12 *************** *** 3307,3311 **** $self->validate_sql_prepare_and_execute( $self->{db_get_bucket_parameter__}, ! $self->{db_bucketid__}{$userid}{$bucket}{id}, $self->{db_parameterid__}{$parameter} ); my $result = $self->{db_get_bucket_parameter__}->fetchrow_arrayref; --- 3307,3312 ---- $self->validate_sql_prepare_and_execute( $self->{db_get_bucket_parameter__}, ! $self->{db_bucketid__}{$userid}{$bucket}{id}, ! $self->{db_parameterid__}{$parameter} ); my $result = $self->{db_get_bucket_parameter__}->fetchrow_arrayref; *************** *** 4005,4013 **** my $string = shift; ! my $backup = $string; ! if ( my $count = ( $string =~ s/\x00//g ) ) { ! my ( $package, $file, $line ) = caller( 1 ); ! $self->log_( 0, "Found $count null-character(s) in string '$backup'. Called from package '$package' ($file), line $line." ); } --- 4006,4016 ---- my $string = shift; ! if ( defined $string ) { ! my $backup = $string; ! if ( my $count = ( $string =~ s/\x00//g ) ) { ! my ( $package, $file, $line ) = caller( 1 ); ! $self->log_( 0, "Found $count null-character(s) in string '$backup'. Called from package '$package' ($file), line $line." ); ! } } |
From: Manni H. <man...@us...> - 2008-03-04 12:53:38
|
Update of /cvsroot/popfile/engine/Classifier In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv12751/Classifier Modified Files: Tag: b0_22_2 Bayes.pm Log Message: Add a method that validates, prepares and executes sql statements. Index: Bayes.pm =================================================================== RCS file: /cvsroot/popfile/engine/Classifier/Bayes.pm,v retrieving revision 1.327.4.10 retrieving revision 1.327.4.11 diff -C2 -d -r1.327.4.10 -r1.327.4.11 *** Bayes.pm 24 Nov 2007 16:37:48 -0000 1.327.4.10 --- Bayes.pm 4 Mar 2008 12:53:42 -0000 1.327.4.11 *************** *** 211,215 **** # other database (e.g. MySQL, Oracle, ... ) this *should* be all # you need to change. The additional parameters user and auth are ! # needed for some databases. # # Note that the dbconnect string --- 211,215 ---- # other database (e.g. MySQL, Oracle, ... ) this *should* be all # you need to change. The additional parameters user and auth are ! # needed for some databases. # # Note that the dbconnect string *************** *** 223,227 **** # SQLite 1.05+ have some problems we are resolving. This lets us # give a nice message and then disable the version checking later ! $self->config_( 'bad_sqlite_version', '3.0.0' ); --- 223,227 ---- # SQLite 1.05+ have some problems we are resolving. This lets us # give a nice message and then disable the version checking later ! $self->config_( 'bad_sqlite_version', '3.0.0' ); *************** *** 271,275 **** # 1 = Asynchronous deletes # 2 = Backup database every hour ! $self->config_( 'sqlite_tweaks', 0xFFFFFFFF ); --- 271,275 ---- # 1 = Asynchronous deletes # 2 = Backup database every hour ! $self->config_( 'sqlite_tweaks', 0xFFFFFFFF ); *************** *** 305,312 **** $self->classified( $message[0], $message[2] ); } ! if ( $type eq 'RELSE' ) { $self->release_session_key_private__( $message[0] ); ! } if ( $type eq 'TICKD' ) { --- 305,312 ---- $self->classified( $message[0], $message[2] ); } ! if ( $type eq 'RELSE' ) { $self->release_session_key_private__( $message[0] ); ! } if ( $type eq 'TICKD' ) { *************** *** 362,371 **** # Windows and using the fork. ! if ( ( $nihongo_parser eq 'kakasi' ) && ( $^O eq 'MSWin32' ) && ! ( ( ( $self->module_config_( 'pop3', 'enabled' ) ) && ! ( $self->module_config_( 'pop3', 'force_fork' ) ) ) || ! ( ( $self->module_config_( 'nntp', 'enabled' ) ) && ! ( $self->module_config_( 'nntp', 'force_fork' ) ) ) || ! ( ( $self->module_config_( 'smtp', 'enabled' ) ) && ( $self->module_config_( 'smtp', 'force_fork' ) ) ) ) ) { $self->{parser__}->{need_kakasi_mutex__} = 1; --- 362,371 ---- # Windows and using the fork. ! if ( ( $nihongo_parser eq 'kakasi' ) && ( $^O eq 'MSWin32' ) && ! ( ( ( $self->module_config_( 'pop3', 'enabled' ) ) && ! ( $self->module_config_( 'pop3', 'force_fork' ) ) ) || ! ( ( $self->module_config_( 'nntp', 'enabled' ) ) && ! ( $self->module_config_( 'nntp', 'force_fork' ) ) ) || ! ( ( $self->module_config_( 'smtp', 'enabled' ) ) && ( $self->module_config_( 'smtp', 'force_fork' ) ) ) ) ) { $self->{parser__}->{need_kakasi_mutex__} = 1; *************** *** 430,434 **** # backup the database by copying it ! if ( ( $self->config_( 'sqlite_tweaks' ) & 2 ) && $self->{db_is_sqlite__} ) { if ( !copy( $self->{db_name__}, $self->{db_name__} . ".backup" ) ) { --- 430,434 ---- # backup the database by copying it ! if ( ( $self->config_( 'sqlite_tweaks' ) & 2 ) && $self->{db_is_sqlite__} ) { if ( !copy( $self->{db_name__}, $self->{db_name__} . ".backup" ) ) { *************** *** 453,457 **** my ( $self, $tweak, $state, $db ) = @_; ! if ( $self->{db_is_sqlite__} && ( $self->config_( 'sqlite_tweaks' ) & $tweak ) ) { --- 453,457 ---- my ( $self, $tweak, $state, $db ) = @_; ! if ( $self->{db_is_sqlite__} && ( $self->config_( 'sqlite_tweaks' ) & $tweak ) ) { *************** *** 461,465 **** my $sync = $state?'off':'normal'; $db->do( "pragma synchronous=$sync;" ); ! } } } --- 461,465 ---- my $sync = $state?'off':'normal'; $db->do( "pragma synchronous=$sync;" ); ! } } } *************** *** 631,635 **** my $userid = $self->valid_session_key__( $session ); my $bucketid = $self->{db_bucketid__}{$userid}{$bucket}{id}; ! $self->{db_delete_zero_words__}->execute( $bucketid ); return 1; --- 631,635 ---- my $userid = $self->valid_session_key__( $session ); my $bucketid = $self->{db_bucketid__}{$userid}{$bucket}{id}; ! $self->validate_sql_prepare_and_execute( $self->{db_delete_zero_words__}, $bucketid ); return 1; *************** *** 725,729 **** if ( $sqlite ) { $dbname = $self->get_user_path_( $self->config_( 'database' ) ); ! $dbpresent = ( -e $dbname ) || 0; } else { $dbname = $self->config_( 'database' ); --- 725,729 ---- if ( $sqlite ) { $dbname = $self->get_user_path_( $self->config_( 'database' ) ); ! $dbpresent = ( -e $dbname ) || 0; } else { $dbname = $self->config_( 'database' ); *************** *** 750,772 **** $self->config_( 'dbuser' ), $self->config_( 'dbauth' ) ); # PROFILE BLOCK STOP ! $self->log_( 0, "Using SQLite library version " . $self->{db__}{sqlite_version}); ! # We check to make sure we're not using DBD::SQLite 1.05 or greater # which uses SQLite V 3 If so, we'll use DBD::SQLite2 and SQLite 2.8, # which is still compatible with old databases ! if ( $self->{db__}{sqlite_version} gt $self->config_('bad_sqlite_version' ) ) { ! $self->log_( 0, "Substituting DBD::SQLite2 for DBD::SQLite 1.05" ); $self->log_( 0, "Please install DBD::SQLite2 and set dbconnect to use DBD::SQLite2" ); ! $dbconnect =~ s/SQLite:/SQLite2:/; ! undef $self->{db__}; # $self->db_disconnect__(); ! $self->{db__} = DBI->connect( $dbconnect, # PROFILE BLOCK START $self->config_( 'dbuser' ), ! $self->config_( 'dbauth' ) ); # PROFILE BLOCK STOP } --- 750,772 ---- $self->config_( 'dbuser' ), $self->config_( 'dbauth' ) ); # PROFILE BLOCK STOP ! $self->log_( 0, "Using SQLite library version " . $self->{db__}{sqlite_version}); ! # We check to make sure we're not using DBD::SQLite 1.05 or greater # which uses SQLite V 3 If so, we'll use DBD::SQLite2 and SQLite 2.8, # which is still compatible with old databases ! if ( $self->{db__}{sqlite_version} gt $self->config_('bad_sqlite_version' ) ) { ! $self->log_( 0, "Substituting DBD::SQLite2 for DBD::SQLite 1.05" ); $self->log_( 0, "Please install DBD::SQLite2 and set dbconnect to use DBD::SQLite2" ); ! $dbconnect =~ s/SQLite:/SQLite2:/; ! undef $self->{db__}; # $self->db_disconnect__(); ! $self->{db__} = DBI->connect( $dbconnect, # PROFILE BLOCK START $self->config_( 'dbuser' ), ! $self->config_( 'dbauth' ) ); # PROFILE BLOCK STOP } *************** *** 800,804 **** # ! my $sqlquotechar = $self->{db__}->get_info(29) || ''; my @tables = map { s/$sqlquotechar//g; $_ } ($self->{db__}->tables()); --- 800,804 ---- # ! my $sqlquotechar = $self->{db__}->get_info(29) || ''; my @tables = map { s/$sqlquotechar//g; $_ } ($self->{db__}->tables()); *************** *** 837,842 **** print " Saving table $table\n "; ! my $t = $self->{db__}->prepare( "select * from $table;" ); ! $t->execute; $i = 0; while ( 1 ) { --- 837,841 ---- print " Saving table $table\n "; ! my $t = $self->validate_sql_prepare_and_execute( "select * from $table;" ); $i = 0; while ( 1 ) { *************** *** 996,1001 **** # Get the mapping from parameter names to ids into a local hash ! my $h = $self->{db__}->prepare( "select name, id from bucket_template;" ); ! $h->execute; while ( my $row = $h->fetchrow_arrayref ) { $self->{db_parameterid__}{$row->[0]} = $row->[1]; --- 995,999 ---- # Get the mapping from parameter names to ids into a local hash ! my $h = $self->validate_sql_prepare_and_execute( "select name, id from bucket_template;" ); while ( my $row = $h->fetchrow_arrayref ) { $self->{db_parameterid__}{$row->[0]} = $row->[1]; *************** *** 1102,1106 **** delete $self->{db_bucketid__}{$userid}; ! $self->{db_get_buckets__}->execute( $userid ); while ( my $row = $self->{db_get_buckets__}->fetchrow_arrayref ) { $self->{db_bucketid__}{$userid}{$row->[0]}{id} = $row->[1]; --- 1100,1104 ---- delete $self->{db_bucketid__}{$userid}; ! $self->validate_sql_prepare_and_execute( $self->{db_get_buckets__}, $userid ); while ( my $row = $self->{db_get_buckets__}->fetchrow_arrayref ) { $self->{db_bucketid__}{$userid}{$row->[0]}{id} = $row->[1]; *************** *** 1109,1113 **** } ! $self->{db_get_bucket_word_counts__}->execute( $userid ); for my $b (sort keys %{$self->{db_bucketid__}{$userid}}) { --- 1107,1111 ---- } ! $self->validate_sql_prepare_and_execute( $self->{db_get_bucket_word_counts__}, $userid ); for my $b (sort keys %{$self->{db_bucketid__}{$userid}}) { *************** *** 1120,1124 **** } ! $self->{db_get_bucket_unique_counts__}->execute( $userid ); while ( my $row = $self->{db_get_bucket_unique_counts__}->fetchrow_arrayref ) { --- 1118,1122 ---- } ! $self->validate_sql_prepare_and_execute( $self->{db_get_bucket_unique_counts__}, $userid ); while ( my $row = $self->{db_get_bucket_unique_counts__}->fetchrow_arrayref ) { *************** *** 1148,1152 **** return undef if ( !defined( $userid ) ); ! $self->{db_get_wordid__}->execute( $word ); my $result = $self->{db_get_wordid__}->fetchrow_arrayref; if ( !defined( $result ) ) { --- 1146,1150 ---- return undef if ( !defined( $userid ) ); ! $self->validate_sql_prepare_and_execute( $self->{db_get_wordid__}, $word ); my $result = $self->{db_get_wordid__}->fetchrow_arrayref; if ( !defined( $result ) ) { *************** *** 1156,1160 **** my $wordid = $result->[0]; ! $self->{db_get_word_count__}->execute( $self->{db_bucketid__}{$userid}{$bucket}{id}, $wordid ); $result = $self->{db_get_word_count__}->fetchrow_arrayref; if ( defined( $result ) ) { --- 1154,1158 ---- my $wordid = $result->[0]; ! $self->validate_sql_prepare_and_execute( $self->{db_get_word_count__}, $self->{db_bucketid__}{$userid}{$bucket}{id}, $wordid ); $result = $self->{db_get_word_count__}->fetchrow_arrayref; if ( defined( $result ) ) { *************** *** 1203,1207 **** my $bucketid = $self->{db_bucketid__}{$userid}{$bucket}{id}; ! $self->{db_put_word_count__}->execute( $bucketid, $wordid, $count ); return 1; --- 1201,1205 ---- my $bucketid = $self->{db_bucketid__}{$userid}{$bucket}{id}; ! $self->validate_sql_prepare_and_execute( $self->{db_put_word_count__}, $bucketid, $wordid, $count ); return 1; *************** *** 1489,1493 **** my $bucketid = $self->{db_bucketid__}{$userid}{$bucket}{id}; ! my $h = $self->{db__}->prepare( # PROFILE BLOCK START "select magnets.val, magnets.id from magnets, users, buckets, magnet_types where buckets.id = $bucketid and --- 1487,1491 ---- my $bucketid = $self->{db_bucketid__}{$userid}{$bucket}{id}; ! my $h = $self->validate_sql_prepare_and_execute( # PROFILE BLOCK START "select magnets.val, magnets.id from magnets, users, buckets, magnet_types where buckets.id = $bucketid and *************** *** 1497,1502 **** magnet_types.mtype = '$type' and magnets.mtid = magnet_types.id order by magnets.val;" ); # PROFILE BLOCK STOP - - $h->execute; while ( my $row = $h->fetchrow_arrayref ) { push @magnets, [$row->[0], $row->[1]]; --- 1495,1498 ---- *************** *** 1589,1597 **** my $words; $words = join( ',', map( $self->{db__}->quote( $_ ), (sort keys %{$self->{parser__}{words__}}) ) ); ! $self->{get_wordids__} = $self->{db__}->prepare( # PROFILE BLOCK START "select id, word from words where word in ( $words );" ); # PROFILE BLOCK STOP - $self->{get_wordids__}->execute; my @id_list; --- 1585,1592 ---- my $words; $words = join( ',', map( $self->{db__}->quote( $_ ), (sort keys %{$self->{parser__}{words__}}) ) ); ! $self->{get_wordids__} = $self->validate_sql_prepare_and_execute( # PROFILE BLOCK START "select id, word from words where word in ( $words );" ); # PROFILE BLOCK STOP my @id_list; *************** *** 1607,1611 **** my $ids = join( ',', @id_list ); ! $self->{db_getwords__} = $self->{db__}->prepare( # PROFILE BLOCK START "select matrix.times, matrix.wordid from matrix --- 1602,1606 ---- my $ids = join( ',', @id_list ); ! $self->{db_getwords__} = $self->validate_sql_prepare_and_execute( # PROFILE BLOCK START "select matrix.times, matrix.wordid from matrix *************** *** 1613,1618 **** and matrix.bucketid = $self->{db_bucketid__}{$userid}{$bucket}{id};" ); # PROFILE BLOCK STOP - $self->{db_getwords__}->execute; - my %counts; --- 1608,1611 ---- *************** *** 1633,1637 **** if ( defined( $wordmap{$word} ) && defined( $counts{$wordmap{$word}} ) ) { ! $self->{db_put_word_count__}->execute( $self->{db_bucketid__}{$userid}{$bucket}{id}, # PROFILE BLOCK START $wordmap{$word}, $counts{$wordmap{$word}} + $subtract * $self->{parser__}->{words__}{$word} ); # PROFILE BLOCK STOP } else { --- 1626,1630 ---- if ( defined( $wordmap{$word} ) && defined( $counts{$wordmap{$word}} ) ) { ! $self->validate_sql_prepare_and_execute( $self->{db_put_word_count__}, $self->{db_bucketid__}{$userid}{$bucket}{id}, # PROFILE BLOCK START $wordmap{$word}, $counts{$wordmap{$word}} + $subtract * $self->{parser__}->{words__}{$word} ); # PROFILE BLOCK STOP } else { *************** *** 1652,1656 **** if ( $subtract == -1 ) { ! $self->{db_delete_zero_words__}->execute( $self->{db_bucketid__}{$userid}{$bucket}{id} ); } --- 1645,1649 ---- if ( $subtract == -1 ) { ! $self->validate_sql_prepare_and_execute( $self->{db_delete_zero_words__}, $self->{db_bucketid__}{$userid}{$bucket}{id} ); } *************** *** 1804,1808 **** # # Releases and invalidates the session key. Worker function that does the work ! # of release_session_key. # ****DO NOT CALL DIRECTLY**** # unless you want your session key released immediately, possibly preventing --- 1797,1801 ---- # # Releases and invalidates the session key. Worker function that does the work ! # of release_session_key. # ****DO NOT CALL DIRECTLY**** # unless you want your session key released immediately, possibly preventing *************** *** 1813,1817 **** { my ( $self, $session ) = @_; ! if ( defined( $self->{api_sessions__}{$session} ) ) { $self->log_( 1, "release_session_key releasing key $session for user $self->{api_sessions__}{$session}" ); --- 1806,1810 ---- { my ( $self, $session ) = @_; ! if ( defined( $self->{api_sessions__}{$session} ) ) { $self->log_( 1, "release_session_key releasing key $session for user $self->{api_sessions__}{$session}" ); *************** *** 1898,1902 **** my $hash = md5_hex( $user . '__popfile__' . $pwd ); ! $self->{db_get_userid__}->execute( $user, $hash ); my $result = $self->{db_get_userid__}->fetchrow_arrayref; if ( !defined( $result ) ) { --- 1891,1895 ---- my $hash = md5_hex( $user . '__popfile__' . $pwd ); ! $self->validate_sql_prepare_and_execute( $self->{db_get_userid__}, $user, $hash ); my $result = $self->{db_get_userid__}->fetchrow_arrayref; if ( !defined( $result ) ) { *************** *** 1934,1938 **** { my ( $self, $session ) = @_; ! $self->mq_post_( "RELSE", $session ); } --- 1927,1931 ---- { my ( $self, $session ) = @_; ! $self->mq_post_( "RELSE", $session ); } *************** *** 2100,2109 **** my $words; $words = join( ',', map( $self->{db__}->quote( $_ ), (sort keys %{$self->{parser__}{words__}}) ) ); ! $self->{get_wordids__} = $self->{db__}->prepare( # PROFILE BLOCK START "select id, word from words where word in ( $words ) order by id;" ); # PROFILE BLOCK STOP - $self->{get_wordids__}->execute; my @id_list; --- 2093,2101 ---- my $words; $words = join( ',', map( $self->{db__}->quote( $_ ), (sort keys %{$self->{parser__}{words__}}) ) ); ! $self->{get_wordids__} = $self->validate_sql_prepare_and_execute( # PROFILE BLOCK START "select id, word from words where word in ( $words ) order by id;" ); # PROFILE BLOCK STOP my @id_list; *************** *** 2123,2127 **** my $ids = join( ',', @id_list ); ! $self->{db_classify__} = $self->{db__}->prepare( # PROFILE BLOCK START "select matrix.times, matrix.wordid, buckets.name from matrix, buckets --- 2115,2119 ---- my $ids = join( ',', @id_list ); ! $self->{db_classify__} = $self->validate_sql_prepare_and_execute( # PROFILE BLOCK START "select matrix.times, matrix.wordid, buckets.name from matrix, buckets *************** *** 2130,2135 **** and buckets.userid = $userid;" ); # PROFILE BLOCK STOP - $self->{db_classify__}->execute; - # %matrix maps wordids and bucket names to counts # $matrix{$wordid}{$bucket} == $count --- 2122,2125 ---- *************** *** 2447,2451 **** last if ( $width_1 <=0 && $width_2 <= 0 ); ! my %row_data; --- 2437,2441 ---- last if ( $width_1 <=0 && $width_2 <= 0 ); ! my %row_data; *************** *** 3177,3181 **** return undef if ( !defined( $userid ) ); ! $self->{db_get_full_total__}->execute( $userid ); return $self->{db_get_full_total__}->fetchrow_arrayref->[0]; } --- 3167,3171 ---- return undef if ( !defined( $userid ) ); ! $self->validate_sql_prepare_and_execute( $self->{db_get_full_total__}, $userid ); return $self->{db_get_full_total__}->fetchrow_arrayref->[0]; } *************** *** 3241,3245 **** return undef if ( !defined( $userid ) ); ! $self->{db_get_unique_word_count__}->execute( $userid ); return $self->{db_get_unique_word_count__}->fetchrow_arrayref->[0]; } --- 3231,3235 ---- return undef if ( !defined( $userid ) ); ! $self->validate_sql_prepare_and_execute( $self->{db_get_unique_word_count__}, $userid ); return $self->{db_get_unique_word_count__}->fetchrow_arrayref->[0]; } *************** *** 3316,3320 **** # If there is a non-default value for this parameter then return it. ! $self->{db_get_bucket_parameter__}->execute( $self->{db_bucketid__}{$userid}{$bucket}{id}, $self->{db_parameterid__}{$parameter} ); my $result = $self->{db_get_bucket_parameter__}->fetchrow_arrayref; --- 3306,3311 ---- # If there is a non-default value for this parameter then return it. ! $self->validate_sql_prepare_and_execute( $self->{db_get_bucket_parameter__}, ! $self->{db_bucketid__}{$userid}{$bucket}{id}, $self->{db_parameterid__}{$parameter} ); my $result = $self->{db_get_bucket_parameter__}->fetchrow_arrayref; *************** *** 3323,3327 **** if ( !defined( $result ) ) { ! $self->{db_get_bucket_parameter_default__}->execute( # PROFILE BLOCK START $self->{db_parameterid__}{$parameter} ); # PROFILE BLOCK STOP $result = $self->{db_get_bucket_parameter_default__}->fetchrow_arrayref; --- 3314,3318 ---- if ( !defined( $result ) ) { ! $self->validate_sql_prepare_and_execute( $self->{db_get_bucket_parameter_default__}, # PROFILE BLOCK START $self->{db_parameterid__}{$parameter} ); # PROFILE BLOCK STOP $result = $self->{db_get_bucket_parameter_default__}->fetchrow_arrayref; *************** *** 3366,3370 **** # Exactly one row should be affected by this statement ! $self->{db_set_bucket_parameter__}->execute( $bucketid, $btid, $value ); if ( defined( $self->{db_parameters__}{$userid}{$bucket}{$parameter} ) ) { --- 3357,3361 ---- # Exactly one row should be affected by this statement ! $self->validate_sql_prepare_and_execute( $self->{db_set_bucket_parameter__}, $bucketid, $btid, $value ); if ( defined( $self->{db_parameters__}{$userid}{$bucket}{$parameter} ) ) { *************** *** 3398,3402 **** $self->{parser__}->{color_userid__} = undef; $self->{parser__}->{bayes__} = bless $self; ! my $result = $self->{parser__}->parse_file( $file, # PROFILE BLOCK START $self->global_config_( 'message_cutoff' ) ); # PROFILE BLOCK STOP --- 3389,3393 ---- $self->{parser__}->{color_userid__} = undef; $self->{parser__}->{bayes__} = bless $self; ! my $result = $self->{parser__}->parse_file( $file, # PROFILE BLOCK START $self->global_config_( 'message_cutoff' ) ); # PROFILE BLOCK STOP *************** *** 3648,3652 **** my @result; ! $self->{db_get_buckets_with_magnets__}->execute( $userid ); while ( my $row = $self->{db_get_buckets_with_magnets__}->fetchrow_arrayref ) { push @result, ($row->[0]); --- 3639,3643 ---- my @result; ! $self->validate_sql_prepare_and_execute( $self->{db_get_buckets_with_magnets__}, $userid ); while ( my $row = $self->{db_get_buckets_with_magnets__}->fetchrow_arrayref ) { push @result, ($row->[0]); *************** *** 3676,3680 **** my $bucketid = $self->{db_bucketid__}{$userid}{$bucket}{id}; ! my $h = $self->{db__}->prepare( "select magnet_types.mtype from magnet_types, magnets, buckets where magnet_types.id = magnets.mtid and magnets.bucketid = buckets.id and --- 3667,3671 ---- my $bucketid = $self->{db_bucketid__}{$userid}{$bucket}{id}; ! my $h = $self->validate_sql_prepare_and_execute( "select magnet_types.mtype from magnet_types, magnets, buckets where magnet_types.id = magnets.mtid and magnets.bucketid = buckets.id and *************** *** 3683,3687 **** order by magnet_types.mtype;" ); - $h->execute; while ( my $row = $h->fetchrow_arrayref ) { push @result, ($row->[0]); --- 3674,3677 ---- *************** *** 3758,3762 **** my $bucketid = $self->{db_bucketid__}{$userid}{$bucket}{id}; ! my $h = $self->{db__}->prepare( "select magnets.val from magnets, magnet_types where magnets.bucketid = $bucketid and magnets.id != 0 and --- 3748,3752 ---- my $bucketid = $self->{db_bucketid__}{$userid}{$bucket}{id}; ! my $h = $self->validate_sql_prepare_and_execute( "select magnets.val from magnets, magnet_types where magnets.bucketid = $bucketid and magnets.id != 0 and *************** *** 3764,3768 **** magnet_types.mtype = '$type' order by magnets.val;" ); - $h->execute; while ( my $row = $h->fetchrow_arrayref ) { push @result, ($row->[0]); --- 3754,3757 ---- *************** *** 3822,3828 **** my %result; ! my $h = $self->{db__}->prepare( "select magnet_types.mtype, magnet_types.header from magnet_types order by mtype;" ); - $h->execute; while ( my $row = $h->fetchrow_arrayref ) { $result{$row->[0]} = $row->[1]; --- 3811,3816 ---- my %result; ! my $h = $self->validate_sql_prepare_and_execute( "select magnet_types.mtype, magnet_types.header from magnet_types order by mtype;" ); while ( my $row = $h->fetchrow_arrayref ) { $result{$row->[0]} = $row->[1]; *************** *** 3948,3951 **** --- 3936,4019 ---- } + + #---------------------------------------------------------------------------- + # + # validate_sql_prepare_and_execute + # + # This method will prepare sql statements and execute them. + # The statement itself and any binding parameters are also + # tested for possible null-characters (\x00). + # If you pass in a handle to a prepared statement, the statement + # will be executed and possible binding-parameters are checked. + # + # $statement The sql statement to prepare or the prepared statement handle + # @args The (optional) list of binding parameters + # + # Returns the result of prepare() + #---------------------------------------------------------------------------- + sub validate_sql_prepare_and_execute { + my $self = shift; + my $sql_or_sth = shift; + my @args = @_; + + my $dbh = $self->db(); + my $sth = undef; + + # Is this a statement-handle or a sql string? + if ( (ref $sql_or_sth) =~ m/^DBI::/ ) { + $sth = $sql_or_sth; + } + else { + my $sql = $sql_or_sth; + $sql = $self->check_for_nullbytes( $sql ); + $sth = $dbh->prepare( $sql ); + } + + my $execute_result = undef; + + # Any binding-params? + if ( @args ) { + foreach my $arg ( @args ) { + $arg = $self->check_for_nullbytes( $arg ); + } + $execute_result = $sth->execute( @args ); + } + else { + $execute_result = $sth->execute(); + } + + unless ( $execute_result ) { + my ( $package, $file, $line ) = caller; + $self->log_( 0, "DBI::execute failed. Called from package '$package' ($file), line $line." ); + } + + return $sth; + } + + + #---------------------------------------------------------------------------- + # + # check_for_nullbytes + # + # Will check a passed-in string for possible null-bytes and log and error + # message in case a null-byte is found. + # + # Will return the string with any null-bytes removed. + #---------------------------------------------------------------------------- + sub check_for_nullbytes { + my $self = shift; + my $string = shift; + + my $backup = $string; + + if ( my $count = ( $string =~ s/\x00//g ) ) { + my ( $package, $file, $line ) = caller( 1 ); + $self->log_( 0, "Found $count null-character(s) in string '$backup'. Called from package '$package' ($file), line $line." ); + } + + return $string; + } + + #---------------------------------------------------------------------------- #---------------------------------------------------------------------------- |
From: Manni H. <man...@us...> - 2008-03-03 16:14:18
|
Update of /cvsroot/popfile/engine/tests In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv11212/tests Modified Files: Tag: b0_22_2 TestBayesScript.tst Log Message: No need to assert the removal of popfile.db and no need to do this with rm. Index: TestBayesScript.tst =================================================================== RCS file: /cvsroot/popfile/engine/tests/TestBayesScript.tst,v retrieving revision 1.4.6.1 retrieving revision 1.4.6.2 diff -C2 -d -r1.4.6.1 -r1.4.6.2 *** TestBayesScript.tst 6 Feb 2006 15:19:10 -0000 1.4.6.1 --- TestBayesScript.tst 3 Mar 2008 16:14:18 -0000 1.4.6.2 *************** *** 26,31 **** test_assert( rec_cp( 'corpus.base', 'corpus' ) ); test_assert( rmtree( 'corpus/CVS' ) > 0 ); ! test_assert( `rm popfile.db` == 0 ); ! unlink 'stopwords'; test_assert( copy ( 'stopwords.base', 'stopwords' ) ); --- 26,30 ---- test_assert( rec_cp( 'corpus.base', 'corpus' ) ); test_assert( rmtree( 'corpus/CVS' ) > 0 ); ! unlink 'popfile.db'; unlink 'stopwords'; test_assert( copy ( 'stopwords.base', 'stopwords' ) ); |
From: Manni H. <man...@us...> - 2008-02-29 11:21:30
|
Update of /cvsroot/popfile/engine In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv32687 Modified Files: Tag: b0_22_2 popfile.pl Log Message: Include '.' in INC instead of './'. This makes the Eclipse-EPIC debugger work with POPFile. Index: popfile.pl =================================================================== RCS file: /cvsroot/popfile/engine/popfile.pl,v retrieving revision 1.225.4.4 retrieving revision 1.225.4.5 diff -C2 -d -r1.225.4.4 -r1.225.4.5 *** popfile.pl 25 Jan 2008 10:39:19 -0000 1.225.4.4 --- popfile.pl 29 Feb 2008 11:21:31 -0000 1.225.4.5 *************** *** 72,76 **** use strict; use locale; ! use lib defined($ENV{POPFILE_ROOT})?$ENV{POPFILE_ROOT}:'./'; use POPFile::Loader; --- 72,76 ---- use strict; use locale; ! use lib defined( $ENV{POPFILE_ROOT} ) ? $ENV{POPFILE_ROOT} : '.'; use POPFile::Loader; |