diff --git a/checkin_notes b/checkin_notes index f3fe049d1f..9d7ec94e33 100755 --- a/checkin_notes +++ b/checkin_notes @@ -7180,3 +7180,52 @@ David 28 May 2005 MainDocument.cpp,h ViewProjects.cpp ViewWork.cpp + +David 31 May 2005 + - Add 2 new items to scheduler RPC request: + - + List of other results for this project + (besides those being reported, if any) + This can be used by the scheduler to resend + previously sent results that were lost somehow. + Includes only the name of the result. + - + List of all results for which computation is not done. + Includes estimated remaining CPU time, report deadline. + This can be used by the scheduler to decide whether + to send short-deadline results. + + Note 1: the scheduler doesn't use the above info yet. + Need to get this code into clients first. + + Note 2: I used tag names and + for the results within each element. + This will prevent the current scheduler from + mistaking them for elements being reported. + This is a kludge, but is fixed in new scheduler code + (see next item) + + - add skip_unrecognized() function to lib/parse.C + Call this when get an unrecognized line. + If it's a single tag "", + this will skip all lines up to and including "" + + - Change Win name from "BOINC Daemon" to "BOINC client" + (let's not introduce random new terms at this point) + + - boinc_cmd: print error messages in some cases + (should finish this to handle other cases) + + - fix bug in boinc_cmd: wasn't connecting to alternate port + + client/ + cs_scheduler.C + win/ + boinc_cli.rc + lib/ + boinc_cmd.C + gui_rpc_client.C,h + parse.C,h + util.C + sched/ + server_types.C diff --git a/client/cs_scheduler.C b/client/cs_scheduler.C index f2f610385b..90de26f1b3 100644 --- a/client/cs_scheduler.C +++ b/client/cs_scheduler.C @@ -327,6 +327,42 @@ int CLIENT_STATE::make_scheduler_request(PROJECT* p, double work_req) { fip->name, fip->nbytes, fip->status ); } + + // send names of results in progress for this project + // + fprintf(f, "\n"); + for (i=0; iproject == p && !rp->ready_to_report) { + fprintf(f, + " \n" + " %s\n" + " \n", + rp->name + ); + } + } + fprintf(f, "\n"); + + // send summary of in-progress results + // to give scheduler info on our CPU commitment + // + fprintf(f, "\n"); + for (i=0; iestimated_cpu_time_remaining(); + if (x == 0) continue; + fprintf(f, + " \n" + " %f\n" + " %f\n" + " \n", + rp->report_deadline, + x + ); + } + fprintf(f, "\n"); + fprintf(f, "\n"); fclose(f); diff --git a/client/win/boinc_cli.rc b/client/win/boinc_cli.rc index d7756e59db..f2da3bc4bf 100644 --- a/client/win/boinc_cli.rc +++ b/client/win/boinc_cli.rc @@ -72,12 +72,12 @@ BEGIN BLOCK "040904b0" BEGIN VALUE "CompanyName", "Space Sciences Laboratory" - VALUE "FileDescription", "BOINC Daemon" + VALUE "FileDescription", "BOINC client" VALUE "FileVersion", BOINC_VERSION_STRING "\0" VALUE "InternalName", "boinc_cli" VALUE "LegalCopyright", "Copyright © 2003-2005 University of California" VALUE "OriginalFilename", "boinc_cli.exe" - VALUE "ProductName", "BOINC Daemon" + VALUE "ProductName", "BOINC client" VALUE "ProductVersion", BOINC_VERSION_STRING "\0" END END diff --git a/doc/acct_mgt.php b/doc/acct_mgt.php index 1a31b3f470..1744c35499 100644 --- a/doc/acct_mgt.php +++ b/doc/acct_mgt.php @@ -274,7 +274,7 @@ list_item("output", [ MSG ] [ URL - KEY + KEY ... ] diff --git a/doc/anonymous_platform.php b/doc/anonymous_platform.php index 4dd4dcac90..5bd8524627 100644 --- a/doc/anonymous_platform.php +++ b/doc/anonymous_platform.php @@ -41,7 +41,6 @@ You can do this in either of two ways:
  • Download and compile the BOINC client software on your computer. -client and the project's applications, and compile them on your computer.
  • If available, download BOINC executablers for your computer from a third-party source. diff --git a/doc/bare_core.php b/doc/bare_core.php index 2ee96dc0c5..6c42800d12 100644 --- a/doc/bare_core.php +++ b/doc/bare_core.php @@ -1,9 +1,8 @@ @@ -23,14 +22,24 @@ if your browser has not done it for you. Instructions on running the core client (command-line options, etc.) are here.

    -Mac OS X - specific instructions are -here. -

    You'll probably want to arrange to run the executable each time your machine boots or you log on. Some examples follow. -

    Automatic startup on Unix

    +

    Automatic startup on Mac OS X

    +

    +

    +

    Automatic startup on Unix

    Users have contributed scripts for automatic startup of BOINC on various versions of Unix: @@ -47,54 +56,6 @@ startup of BOINC on various versions of Unix: Gentoo Linux (from Gabor Nagy) -

    Automatic startup on Mac OS X

    -

    -[ The following is from Berki Yenigun, deadsmile at minitel.net ] -

    -Here's a step by step guide to create a command file for Mac OS X -Panther that will automatically launch Boinc command line client each -time you log into your account: -

      -
    1. Open TextEdit, paste and adapt the following two lines (adapt the -path after the cd command to the folder in which you saved Boinc, and -the name of Boinc file in the second line to the version you downloaded): - -
      -cd myapplications/boinc
      -./boinc_4.19_powerpc-apple-darwin
      -
      - -
    2. Convert this into plain text format by clicking on Format and then on -Make Plain Text (rich text doesn't fit our needs), and save it -with .command extension (replace the .txt) : Let's call our file -boincscript, the file name & extension should be boincscript.command. -Once your file is saved, you can quit TextEdit. - -
    3. Now open Terminal, using cd command go to the folder where you saved -the script file, then type -chmod +x boincscript.command -to make it executable. (use help if necessary : type man or man man.) -After that, you can quit Terminal. - -
    - -It's almost done : all you need to do now is to add boincscript.command - -file to the login items in the 'Accounts' pane in 'System Preferences'. - -

    -If you want to start Boinc manually again, you simply have to remove -boincscript.command from the login items. - -

    -PS: You can use the -core client command-line options in your script. -An example: -

    -./boinc_4.19_powerpc-apple-darwin -return_results_immediately
    -
    - - "; page_tail(); ?> diff --git a/doc/build.php b/doc/build.php index 22f1f83415..522231a7df 100644 --- a/doc/build.php +++ b/doc/build.php @@ -163,6 +163,7 @@ To get the X11 support, select the relevant options when you're installing Linux, or (Redhat) go to System Settings/Add Software. + diff --git a/doc/docutil.php b/doc/docutil.php index 6d677dc803..39ab968842 100644 --- a/doc/docutil.php +++ b/doc/docutil.php @@ -11,15 +11,15 @@ function page_head($title) { $d = last_mod(); echo " - - + + $title @@ -43,7 +43,7 @@ function page_tail() { echo "
    - Return to BOINC main page + Return to BOINC main page

    "; copyright(); diff --git a/doc/download.php b/doc/download.php index 34825886d7..05e77e7649 100755 --- a/doc/download.php +++ b/doc/download.php @@ -97,6 +97,7 @@ function show_version($pname, $i, $v) { $status = $v["status"]; $path = "dl/$file"; $s = number_format(filesize($path)/1000000, 2); + $type = $v["type"]; echo "

    + "; diff --git a/doc/index.php b/doc/index.php index fbb6cfc638..a639c702ff 100644 --- a/doc/index.php +++ b/doc/index.php @@ -4,6 +4,7 @@ require_once("boinc_news.inc"); require_once("../html/inc/news.inc"); echo " + @@ -11,7 +12,7 @@ echo " - +

    @@ -141,4 +142,5 @@ echo "
    "; copyright(); +echo "\n"; ?> diff --git a/doc/links.php b/doc/links.php index ac492b9f58..ab886a2f52 100644 --- a/doc/links.php +++ b/doc/links.php @@ -75,6 +75,7 @@ language("French", array( site("http://boinc-quebec.org", "boinc-quebec.org") )); language("German", array( + site("http://www.boinc-halle-saale.de.vu", "BOINC@Halle/Saale"), site("http://www.boincfun.tk/", "BOINCfun"), site("http://www.setigermany.de", "SETI.Germany"), site("http://www.sar-hessen.de", "Team Science and Research Hessen"), diff --git a/doc/menubar.php b/doc/menubar.php index d413836c3e..10b9e8a76e 100644 --- a/doc/menubar.php +++ b/doc/menubar.php @@ -5,120 +5,274 @@ page_head("BOINC Menubar v4.43 (4)"); echo "

    Introduction

    -

    BOINC Menubar is a graphical front end for BOINC, a software platform developed at Berkeley which allows volunteers such as yourself to contribute unused processor cycles to help solve problems in physics, medicine, climatology, astronomy, and more. Combining tens of thousands of computers, BOINC users form what is effectively the most powerful supercomputer on the planet.

    -

    BOINC Menubar provides a simple interface for BOINC, eliminating the need for any command-line typing. It does not have a main window, application menu, or dock icon. Instead, everything is controlled from a small icon which appears in the upper right hand corner of your screen. Clicking on this icon produces a menu which provides you access to all the features of BOINC Menubar.

    -

     

    -

    Getting Started

    -

    A Note About The Interface:

    -

    You will notice that BOINC Menubar does not have a main window, application menu, or dock icon. Instead everything is controlled from a small icon which appears in the upper right hand corner of your screen. Clicking on this icon produces a menu which provides you easy access to all the features of BOINC Menubar

    +

    +BOINC Menubar is a graphical front end for BOINC, +a software platform developed at Berkeley which allows volunteers +such as yourself to contribute unused processor cycles to help +solve problems in physics, medicine, climatology, astronomy, and more. +Combining tens of thousands of computers, +BOINC users form what is effectively the most powerful supercomputer +on the planet. + +

    +BOINC Menubar provides a simple interface for BOINC, +eliminating the need for any command-line typing. +It does not have a main window, application menu, or dock icon. +Instead, everything is controlled from a small icon which +appears in the upper right hand corner of your screen. +Clicking on this icon produces a menu which provides you +access to all the features of BOINC Menubar. +


    (Figure 1) -

     

    +

    Getting Started

    First-time BOINC Participants

    -

    If you are new to BOINC, then you need to create accounts for projects in which you would like to participate. Please visit the main BOINC site (http://boinc.berkeley.edu/) for a list of popular projects. -

    When you create an account, you will be sent an email containing a URL and Account Key. Collect this information and skip down to the 'Project Manager' section for information on how to set up BOINC Menubar to run these projects. -

     

    -

    Returning BOINC Participants

    -

    If you already have a BOINC account and have run the 'boinc' command-line on this computer, you will need to move existing files to a new location. Locate the folder which served as the launch path when you ran the 'boinc' command. It should contain such files and folders as 'client_state.xml', 'slots', and 'projects'. - -

    Copy all these files (not the enclosing folder itself) into '~/Library/Application Support/BOINC Data/' - -

    Now when you run BOINC Menubar and select 'Manage Projects...' from the status menu, you should find a list of the projects you are currently participating in.

    +If you are new to BOINC, +then you need to create accounts for projects +in which you would like to participate. +Please visit the main BOINC site +(http://boinc.berkeley.edu/) +for a list of popular projects. +

    +When you create an account, you will be sent an email containing a URL +and Account Key. +Collect this information and skip down to the 'Project Manager' +section for information on how to set up BOINC Menubar to run these projects. + +

    Returning BOINC Participants

    +

    +If you already have a BOINC account and have run the 'boinc' +command-line on this computer, you will need to move existing files +to a new location. +Locate the folder which served as the launch path when you ran the 'boinc' +command. +It should contain such files and folders as 'client_state.xml', +'slots', and 'projects'. + +

    +Copy all these files (not the enclosing folder itself) +into '~/Library/Application Support/BOINC Data/' + +

    +Now when you run BOINC Menubar and select 'Manage Projects...' from the +status menu, +you should find a list of the projects you are currently participating in. +

    Managing Projects

    Adding Projects

    -

    Before adding projects, collect the emails containing the URLs and Account Keys for each project. +

    +Before adding projects, collect the emails containing the URLs +and Account Keys for each project. -

    Select 'Manage Projects...' from the status menu. +

    +Select 'Manage Projects...' from the status menu. -


    +

    +
    (Figure 2) -

    This will open up the 'Project Manager'. -


    - (Figure 3) -

    Click the 'Add' button. This will produce a new sheet in which you can paste in a URL and Account ID. +

    +This will open up the 'Project Manager'. +

    +
    (Figure 3) +

    +Click the 'Add' button. +This will produce a new sheet in which you can paste in a URL and Account Key. -


    +

    +
    (Figure 4) -

    After you have finished, click 'OK' and the project will be added. -

    Note: Please be patient as it can take a few moments for a project to be added. +

    +After you have finished, click 'OK' and the project will be added. +

    +Note: Please be patient as it can take a few moments for a project to be added. -

     

    -

    Updating, Resetting, and Removing Projects:

    -

    Select 'Manage Projects...' from the status menu (Figure 2). This will open up the 'Project Manager' (Figure 3). -

    Highlight the project you wish to update, reset, or remove by clicking its name. The 'Remove', 'Reset', and 'Update' buttons at the bottom of the project manager window will be enabled. -


    +

    Updating, Resetting, and Removing Projects:

    + +

    +Select 'Manage Projects...' from the status menu (Figure 2). +This will open up the 'Project Manager' (Figure 3). +

    +Highlight the project you wish to update, reset, or remove +by clicking its name. +The 'Remove', 'Reset', and 'Update' buttons +at the bottom of the project manager window will be enabled. +

    +
    (Figure 5) -

    Clicking 'Update' causes BOINC to contact a project's web site to obtain new preferences. This will also report completed results and get new work if needed. -

    Clicking 'Reset' clears all pending work for a project. Use this if there is a problem that is preventing your computer from working. -

    Clicking 'Remove' will remove the selected project. -

    Hint: As indicated in the project manager, double clicking a project's name or URL will take you to a projects web site. This is particularly convenient if you want to change a project's preferences or view statistics. +

    +Clicking 'Update' causes BOINC to contact a project's web site +to obtain new preferences. +This will also report completed results and get new work if needed. +

    +Clicking 'Reset' clears all pending work for a project. +Use this if there is a problem that is preventing your computer from working. +

    +Clicking 'Remove' will remove the selected project. +

    +Hint: As indicated in the project manager, +double clicking a project's name or URL will take you to a projects web site. +This is particularly convenient if you want to change +a project's preferences or view statistics. -

     

    The Status Menu

    -


    +

    +
    (Figure 6)

     

    Controlling BOINC Using BOINC Menubar

    -

    Once BOINC Menubar has some projects to run, you can now use the menu to start and stop BOINC. -

    To start BOINC running, simply select 'Start' from the status menu. BOINC will start running in the background. - -

    If you wish to see exactly what BOINC is doing while it is running, select 'Display Log' from the status menu. This will display a window containing all the output produced by BOINC. -


    - (Figure 7) -

    If you want to stop BOINC running for any reason, simply select 'Stop'. Quitting BOINC Menubar automatically stops BOINC if it is running. -

    You may force BOINC to run CPU benchmarks by selecting 'Run CPU Benchmarks' from the status menu. Note that you only need to do this if you have recently modified your computer's hardware.

    -

    Menu Statistics

    -

    The status menu contains four pieces of information: -

    The 'Current Project' is simply the project or projects currently being run by BOINC. The current project will change from time to time as BOINC stops and starts other projects. -

    The 'Work Completed' indicates what percentage of the current work unit has been completed for the current project. -

    The 'Project Credit' is the amount of credit you have received for the project which is currently running. This is the same amount as appears on the project's web site and includes credit which you have received by running BOINC on other computers as well. -

    The 'Total Credit' is the amount of credit you have received for all projects which BOINC Menubar knows about. That is, if you are participating in four projects on this computer, then the total credit will be the sum of all four project credits. +Once BOINC Menubar has some projects to run, +you can now use the menu to start and stop BOINC. +

    +To start BOINC running, simply select 'Start' from the status menu. +BOINC will start running in the background. -

    Note: The amount of credit displayed by BOINC Menubar may not be exactly the same as you find on project web sites. This is because credit is only updated when a computer contacts the projects web site to send results or receive new data. If the amount of credit differs from what you see on the web, the amount will be updated next time the project contacts its web site. -

     

    +

    +If you wish to see exactly what BOINC is doing while it is running, +select 'Display Log' from the status menu. +This will display a window containing all the output produced by BOINC. +

    +
    + (Figure 7) +

    +If you want to stop BOINC running for any reason, simply select 'Stop'. +Quitting BOINC Menubar automatically stops BOINC if it is running. +

    +You may force BOINC to run CPU benchmarks by selecting +'Run CPU Benchmarks' from the status menu. +Note that you only need to do this if you have recently modified +your computer's hardware. + +

    Menu Statistics

    +

    +The status menu contains four pieces of information: +

    +The 'Current Project' is simply the project or projects currently +being run by BOINC. +The current project will change from time to time +as BOINC stops and starts other projects. +

    +The 'Work Completed' indicates what percentage of the current work +unit has been completed for the current project. +

    +The 'Project Credit' is the amount of credit you have received +for the project which is currently running. +This is the same amount as appears on the project's web site +and includes credit which you have received by running BOINC +on other computers as well. +

    +The 'Total Credit' is the amount of credit you have received +for all projects which BOINC Menubar knows about. +That is, if you are participating in four projects on this computer, +then the total credit will be the sum of all four project credits. + +

    +Note: The amount of credit displayed by BOINC Menubar +may not be exactly the same as you find on project web sites. +This is because credit is only updated when a computer contacts +the projects web site to send results or receive new data. +If the amount of credit differs from what you see on the web, +the amount will be updated next time the project contacts its web site. +

    Menubar Statistics

    -

    The menubar contains two pieces of information:

    -

    A small icon indicates the current project or projects. Listed below are the most common projects and their corresponding icons.

    +

    +The menubar contains two pieces of information:

    +

    +A small icon indicates the current project or projects. Listed below are the most common projects and their corresponding icons.

    - climateprediction.net

    - Einstein@home

    - Predictor@home

    - SETI@home

    - Default icon for all other projects -

    The menubar also displays a graphical representation of the completed percentage of the current work unit as a vertical 'progress bar'.

    -

     

    +

    +The menubar also displays a graphical representation of the completed percentage of the current work unit as a vertical 'progress bar'.

    +

    Preferences


    (Figure 8) +

    General Settings:

    -

    Select 'Start BOINC On Application Launch' if you which BOINC to start running every time you open BOINC Menubar. You might find this particularly useful if you want BOINC to be running all the time. +

    +Select 'Start BOINC On Application Launch' if you want BOINC to +start running every time you open BOINC Menubar. +You might find this particularly useful if you want BOINC +to be running all the time. -

    Hint: You can set BOINC Menubar to auto-launch whenever you login by adding BOINC Menubar to the login items in the 'Accounts' pane in 'System Preferences'. Combining this with 'Start BOINC On Application Launch' will ensure that BOINC is running at all times. -

    Select 'Display Log On Application Launch' if you wish the Log window to open automatically every time you open BOINC Menubar.

    Select 'Share Data With Other Users' if you wish data to be shared with other users running BOINC Menubar on your computer. The data will be moved to a location where other users can access and contribute to it.

    Note: Only admistrative users can set up BOINC Menubar to share data with other users, but all users can contribute.

    Select 'Unlimited Scrollback' if you would like to keep all the output produced by BOINC. By default, the BOINC Menubar keeps the last 10,000 lines output by BOINC. -

    -

     

    +

    +Hint: You can set BOINC Menubar to auto-launch +whenever you login by adding BOINC Menubar to the login items +in the 'Accounts' pane in 'System Preferences'. +Combining this with 'Start BOINC On Application Launch' +will ensure that BOINC is running at all times. +

    +Select 'Display Log On Application Launch' if you wish the Log window to +open automatically every time you open BOINC Menubar. +

    +Select 'Share Data With Other Users' if you wish data to be shared +with other users running BOINC Menubar on your computer. +The data will be moved to a location where other users can access +and contribute to it. +

    +Note: Only administrative users can set up BOINC Menubar +to share data with other users, but all users can contribute. +

    +Select 'Unlimited Scrollback' if you would like to keep all +the output produced by BOINC. +By default, the BOINC Menubar keeps the last 10,000 lines output by BOINC. +

    Proxy Settings:

    -

    If you need to use a proxy, first select the type of proxy you are using: HTTP or SOCKS. Next, enter the address of the proxy. If the proxy requires a username and password, click the "Set password..." button. This will produce a new sheet in which you can enter your username and password (Figure 9).

    -

     

    +

    +If you need to use a proxy, first select the type of proxy you are using: +HTTP or SOCKS. +Next, enter the address of the proxy. +If the proxy requires a username and password, +click the "Set password..." button. +This will produce a new sheet in which you can enter your username +and password (Figure 9). +


    -(Figure 9)

    -

    Click "OK" to save

    -

     

    +(Figure 9) + +

    Click "OK" to save +

    Acknowledgements and Support

    -

    BOINC Menubar was developed by GreenKeeper Software, which has made BOINC Menubar freely available for all BOINC participants. If you wish, you can make a donation to GreenKeeper Software to support further development of BOINC Menubar and future GreenKeeper Software products. -

    If you have questions about, problems with, or comments concerning BOINC Menubar, please contact GreenKeeper Software directly by email (support@greenkeepersoftware.com). If you are reporting a bug, please be as specific as possible. -

    Also, please be aware that some problems may be a result of BOINC or projects running on the BOINC platform and not BOINC Menubar itself. If you are unsure of the source of the problem, go ahead and contact GreenKeeper Software anyway and we will do our very best to help you or refer you to people who can. -

    Disclaimer: Every effort has been made on the part of GreenKeeper Software to fully test and debug BOINC Menubar. It should, therefore, not cause you to have any problems. However, you are using BOINC Menubar at your own risk. Any harm caused as a result of this software is not the fault of GreenKeeper Software or the BOINC developers. -

     

    +

    +BOINC Menubar was developed by +GreenKeeper Software, +which has made BOINC Menubar freely available for all BOINC participants. +If you wish, you can make a +donation +to GreenKeeper Software to support further development of BOINC Menubar +and future GreenKeeper Software products. +

    +If you have questions about, problems with, or comments concerning +BOINC Menubar, please contact GreenKeeper Software directly by +email (support@greenkeepersoftware.com). +If you are reporting a bug, please be as specific as possible. +

    +Also, please be aware that some problems may be a result of BOINC or +projects running on the BOINC platform and not BOINC Menubar itself. +If you are unsure of the source of the problem, +go ahead and contact GreenKeeper Software anyway and we will do +our very best to help you or refer you to people who can. +

    +Disclaimer: Every effort has been made on the part +of GreenKeeper Software to fully test and debug BOINC Menubar. +It should, therefore, not cause you to have any problems. +However, you are using BOINC Menubar at your own risk. +Any harm caused as a result of this software is not the fault of +GreenKeeper Software or the BOINC developers. +

    History

    -

    Version 4.25 (1)

    +

    +Version 4.25 (1)

      -
    • First Release (Based on GreenKeeper Software's Deep Thought v1.1)
    • +
    • First Release (Based on GreenKeeper Software's Deep Thought v1.1)
    -

     

    +

    Version 4.25 (2)

    • Adds support for HTTP and SOCKS proxies
    • @@ -127,7 +281,7 @@ echo "
    • Fixes a bug which caused the application to freeze when choosing "Stop" or "Quit BOINC Menubar"
    • Various other fixes and improvements
    -

     

    +

    Version 4.37 (3)

    • Includes improved BOINC client
    • @@ -136,9 +290,9 @@ echo "
    • Fixes a bug on dual processor machines where the status of both processes was not always being displayed
    • Adds a preference to share data between users
    • Improves security by hiding and encrypting proxy password
    • Adds ability to manually run benchmarks
    • -
    • Improved efficiency
    +
  • Improved efficiency
  • + -

     

    Version 4.43 (4)

    • Includes improved BOINC client
    @@ -146,4 +300,4 @@ echo " "; page_tail(); -?> \ No newline at end of file +?> diff --git a/doc/participate.php b/doc/participate.php index 7e2001f4fc..1fe5582f0e 100644 --- a/doc/participate.php +++ b/doc/participate.php @@ -15,7 +15,7 @@ echo "
  • The Windows installer
  • Command-line version (Unix, Mac OS/X)
  • Installing BOINC on Mac OS/X -
  • Self-extracting archive (UNIX> +
  • Self-extracting archive (UNIX)
  • The BOINC screensaver
  • Preferences diff --git a/doc/sea.php b/doc/sea.php index bca7c8dbda..0a9bdddc45 100644 --- a/doc/sea.php +++ b/doc/sea.php @@ -24,9 +24,9 @@ run_client and runs the core client. -You will need to develop your own mechanism -to run the executable each time your machine boots +You may want to run the executable each time your machine boots or you log on. +Information on this is here. "; page_tail(); diff --git a/doc/versions.inc b/doc/versions.inc index 0bf2124e3e..0483ea0686 100644 --- a/doc/versions.inc +++ b/doc/versions.inc @@ -184,7 +184,7 @@ $m443 = array( $m443c = array( "num"=>"4.43", - "status"=>"Recommended version (command line)", + "status"=>"Recommended version (command line, no GUI)", "file"=>"boinc_4.43_powerpc-apple-darwin.zip", "date"=>"21 May 2005", "type"=>bare_core(), @@ -253,8 +253,8 @@ $mac = array( "name"=>"Macintosh OS X", "versions"=>array( $m443, - $m443c, $m437s, + $m443c, $m419 ) ); diff --git a/doc/win_install.php b/doc/win_install.php index 7bdeeab389..fd743ecac0 100644 --- a/doc/win_install.php +++ b/doc/win_install.php @@ -316,4 +316,5 @@ Files are accessable only to the installing user. "; +page_tail(); ?> diff --git a/lib/boinc_cmd.C b/lib/boinc_cmd.C index 6e9c4014fd..7338cb4d98 100644 --- a/lib/boinc_cmd.C +++ b/lib/boinc_cmd.C @@ -37,6 +37,7 @@ using std::vector; #include "gui_rpc_client.h" #include "error_numbers.h" +#include "util.h" #include "version.h" void usage() { @@ -99,13 +100,7 @@ void parse_display_args(char** argv, int& i, DISPLAY_INFO& di) { } void show_error(int retval) { - switch(retval) { - case ERR_AUTHENTICATOR: - fprintf(stderr, "Authentication failure\n"); - break; - default: - fprintf(stderr, "Error %d\n", retval); - } + fprintf(stderr, "Error %d: %s\n", retval, boincerror(retval)); } char* next_arg(int argc, char** argv, int& i) { diff --git a/lib/gui_rpc_client.C b/lib/gui_rpc_client.C index 6560dca23b..5ed85d77bc 100644 --- a/lib/gui_rpc_client.C +++ b/lib/gui_rpc_client.C @@ -966,10 +966,11 @@ int RPC_CLIENT::init(const char* host) { } else { addr.sin_addr.s_addr = inet_addr("127.0.0.1"); } + boinc_socket(sock); retval = connect(sock, (const sockaddr*)(&addr), sizeof(addr)); if (retval) { BOINCTRACE("RPC_CLIENT::init connect 2 on %d returned %d\n", sock, retval); - perror("connect"); + //perror("connect"); boinc_close_socket(sock); boinc_socket(sock); #ifdef _WIN32 @@ -1190,6 +1191,15 @@ int RPC::do_rpc(const char* req) { return 0; } +int RPC::parse_reply() { + char buf[256]; + while (fin.fgets(buf, 256)) { + if (strstr(buf, "unauthorized")) return ERR_AUTHENTICATOR; + if (strstr(buf, "success")) return 0; + } + return ERR_NOT_FOUND; +} + int RPC_CLIENT::get_state(CC_STATE& state) { char buf[256]; PROJECT* project; @@ -1424,6 +1434,7 @@ int RPC_CLIENT::show_graphics( int RPC_CLIENT::project_op(PROJECT& project, const char* op) { char buf[256]; const char *tag; + int retval; RPC rpc(this); if (!strcmp(op, "reset")) { @@ -1451,7 +1462,9 @@ int RPC_CLIENT::project_op(PROJECT& project, const char* op) { project.master_url.c_str(), tag ); - return rpc.do_rpc(buf); + retval = rpc.do_rpc(buf); + if (retval) return retval; + return rpc.parse_reply(); } int RPC_CLIENT::project_attach(const char* url, const char* auth) { diff --git a/lib/gui_rpc_client.h b/lib/gui_rpc_client.h index ee2f7d069d..abeb29c0d4 100644 --- a/lib/gui_rpc_client.h +++ b/lib/gui_rpc_client.h @@ -462,4 +462,5 @@ struct RPC { RPC(RPC_CLIENT*); ~RPC(); int do_rpc(const char*); + int parse_reply(); }; diff --git a/lib/parse.C b/lib/parse.C index 7f060d7c9c..c98dc64e3d 100644 --- a/lib/parse.C +++ b/lib/parse.C @@ -375,5 +375,35 @@ void xml_unescape(string& in, string& out) { } } +// we got an unrecognized line. +// If it has two <'s (e.g. xx) return 0. +// If it's of the form then scan for and return 0. +// Otherwise return ERR_XML_PARSE +// +int skip_unrecognized(char* buf, FILE* in) { + char* p, *q, buf2[256]; + std::string close_tag; + + p = strchr(buf, '<'); + if (!p) { + return ERR_XML_PARSE; + } + if (strchr(p+1, '<')) { + return 0; + } + q = strchr(p+1, '>'); + if (!q) { + return ERR_XML_PARSE; + } + *q = 0; + close_tag = string(""); + while (fgets(buf2, 256, in)) { + if (strstr(buf2, close_tag.c_str())) { + return 0; + } + + } + return ERR_XML_PARSE; +} const char *BOINC_RCSID_3f3de9eb18 = "$Id$"; diff --git a/lib/parse.h b/lib/parse.h index 943f52b218..bdfd9f02f7 100644 --- a/lib/parse.h +++ b/lib/parse.h @@ -50,5 +50,6 @@ extern void xml_escape(std::string&, std::string&); extern void xml_escape(char*, std::string&); extern void xml_unescape(std::string&, std::string&); extern void extract_venue(char*, char*, char*); +extern int skip_unrecognized(char* buf, FILE*); #endif diff --git a/lib/util.C b/lib/util.C index 37629d09f2..eeefd579a4 100755 --- a/lib/util.C +++ b/lib/util.C @@ -882,13 +882,13 @@ const char* boincerror(int which_error) { case ERR_NETOPEN: return "system netopen"; case ERR_SOCKET: return "system socket"; case ERR_FCNTL: return "system fcntl"; - case ERR_AUTHENTICATOR: return "host id doesn't match authenticator"; + case ERR_AUTHENTICATOR: return "authentication error"; case ERR_SCHED_SHMEM: return "scheduler shared memory contents bad"; case ERR_ASYNCSELECT: return "system async select"; case ERR_BAD_RESULT_STATE: return "bad result state"; case ERR_DB_CANT_INIT: return "can't init database"; case ERR_NOT_UNIQUE: return "state files have redundant entries"; - case ERR_NOT_FOUND: return "inconsistent client state"; + case ERR_NOT_FOUND: return "not found"; case ERR_NO_EXIT_STATUS: return "no exit status in scheduler request"; case ERR_FILE_MISSING: return "file missing"; case ERR_NESTED_UNHANDLED_EXCEPTION_DETECTED: return "nested unhandled exception"; diff --git a/sched/server_types.C b/sched/server_types.C index 9afd537ef1..3ae74406fa 100644 --- a/sched/server_types.C +++ b/sched/server_types.C @@ -170,6 +170,8 @@ int SCHEDULER_REQUEST::parse(FILE* fin) { // do NOTHING here } else { log_messages.printf(SCHED_MSG_LOG::NORMAL, "SCHEDULER_REQUEST::parse(): unrecognized: %s\n", buf); + retval = skip_unrecognized(buf, fin); + if (retval) return retval; } } return ERR_XML_PARSE;
  • $title

    -
    +
    Last modified $d
    $num $status @@ -104,9 +105,11 @@ function show_version($pname, $i, $v) { Download ($s MB) + $type + - - details + details