It didn't work on a host's first scheduler RPC
(when it passes an auth but no host ID).
How do we look up user in this case?
The weak auth is not stored explicitly in the DB.
Solution: include the user ID in the weak auth.
(this invalidates existing weak auths)
svn path=/trunk/boinc/; revision=14546
This is for debugging apps (currently works only in Unix).
What it does: when running an app,
the client does everything except actually fork/exec the app,
i.e. it sets up the slot dir, creates shared mem segment etc.
It then continues as if the app were actually running,
and you can then manually run your app under a debugger
in the slot directory.
Note: the client won't notice the termination of your app.
- API, Unix: in situations where the timer thread wants to exit
(e.g. it notices a missing heartbeat).
don't directly call boinc_exit(),
since this touches data structures that the worker thread
may be using concurrently.
Instead, set a flag telling the worker thread to call boinc_exit()
(which it will do from its signal handler)
This is an attempt to fix problems reported by Bernd;
I haven't tested it.
- scheduler: add config flag for uploading usage data
- web: show account key and weak account key on user page
- added some code for multithread support (not finished)
api/
boinc_api.C
svn path=/trunk/boinc/; revision=14542
(this causes confusing output in the Manager,
bytes xferred greater than file size)
- API and client: make boinc_sleep() work regardless of signals
- some code cleanup in http_curl.C
svn path=/trunk/boinc/; revision=14522
in Apache's search path
- web: show UOTD text correctly
- web: memoize profile_screening() in attempt to fix out-of-memory error
when building profile pages on S@h
- web: move gallery.inc into update_profile_pages and remove it
svn path=/trunk/boinc/; revision=14460
now have community info in a 2nd column on the right.
This accomplishes two things:
1) it puts community info in more places;
2) it provides a reasonable way to format long lists of friends;
they just continue down the right column.
svn path=/trunk/boinc/; revision=14452
Users can choose whether to get 1 email per notification,
a daily "digest" email, or no email.
(All notifications are shown on the Account page).
Currently used for:
- Friend requests and confirmations
- Posts to subscribed threads
- Private messages
NOTE: To implement the "daily digest" feature, projects must add
a periodic task for html/ops/notify.php to config.xml
- web: have project_footer() generate links for
Account Page and Message Boards as well as Home
NOTE: projects that want this change
will have to modify their own project.inc.
svn path=/trunk/boinc/; revision=14447
- web: add app selection to example project-specific prefs
(commented out by default)
- web: in prefs, flag too-low numeric values as errors,
rather than just setting to min value
- web: fix bug when add new venue from "columns" view
svn path=/trunk/boinc/; revision=14442
- May as well start keeping checkin notes for Bolt.
At this point the fundamental structure of Bolt is
more or less complete, I hope; many features are missing.
Items for this particular checkin:
- Make things work right when you resume a course at an
exercise answer page.
This creates a new View, whose prev_view_id link points
to the exercise view, not the answer page view
- When leave a page using "Up", terminate the view accordingly.
- Rather than using $_GET, Form vars are now passed to exercise primitives
in a global variable $bolt_ex_query_string, which they must parse.
svn path=/trunk/boinc/; revision=14414
Each account has an associated weak account key.
The user can see it by visiting weak_auth.php.
If you put the weak account key in the account file on a computer
(instead of the regular account key)
the computer will attach to the account.
But the weak account key cannot be used to log in
to the account on the web, or to do web RPCs, or anything else.
Note: this involves a scheduler change.
svn path=/trunk/boinc/; revision=14367
rename General Prefs to Computing Prefs;
rename Forum Prefs to Community Prefs
add Prefs link if user doesn't have email PM notification
- remove forum low/high rating theshold stuff.
Message rating was a failed experiment.
svn path=/trunk/boinc/; revision=14300
strip HTML tags from text (e.g. to remove photos)
- user web: show_image(): separate title (tooltip text)
from "alt" (replaces image if images disabled).
The latter must be terse.
- user web: show_button(): make it work even if Javascript disabled
svn path=/trunk/boinc/; revision=14294
- user web: highlight subscribed threads using green background
- user web: hyperlink thread titles in search results
svn path=/trunk/boinc/; revision=14286
moderation and red-X events, as well as team founder
- user web: admins can view team join/quit history
(which no longer contains email addresses)
- user web: update text describing admin privileges
svn path=/trunk/boinc/; revision=14285
- user web: don't show team forum in Q&A page
- scheduler: code (commented out) to recognize when
a sched request is from an existing host
(same IP/domain/RAM size) and reuse the host record;
from Kevin Reed
svn path=/trunk/boinc/; revision=14283
- user web: improve "team search" function,
and get rid of the superceded "search by name" function
- user web: don't show team founder link to initiate transfer
- user web: show team types
- user web: fix "top teams by type" function
- client: tread NOT_FOUND error on file upload as transient;
it means the project is missing its file_upload_handler
svn path=/trunk/boinc/; revision=14272
For thread titles, show links to forum/category also
For posts, show complete post, with search terms highlighted.
- user web: in display of posts for a user,
show links to thread and forum also
- user web: posts/threads can become "orphaned" if their forum
disappears, e.g. team message board is deleted.
Handle this gracefully in search results and user post list
- user web: where HTML tags are allowed, say so
- user web: fix bug where wrap_postcounts weren't being shown in form
- DB: use "tinyint" instead of "tinyint(1) unsigned" etc.
svn path=/trunk/boinc/; revision=14267
don't include the account key in the URL.
Rather, include the user ID, the time, and
a have of the ID, time, and account key.
Honor this for 1 day.
svn path=/trunk/boinc/; revision=14265
- login form now has ONLY email/passwd
("login with account key" is gone)
- "forgot password?" takes you to a page with two options:
1) type in email address, get an email with login link
2) instructions for recovering account key from BOINC account file
- email is stripped-down, has login link and not much else
fixes#190
svn path=/trunk/boinc/; revision=14263
should default to off.
Note: it's necessary to clear everyone's flag.
Projects will need to notify users (e.g. via a news item)
that they need to explicitly set this pref if they want email
notification of PMs
svn path=/trunk/boinc/; revision=14255
URL_BASE is assumed to end with a /.
If you put another /, you end up with // in URLs.
This leads to a situation where you can have
one cookie for // and another for / - bad.
If this causes problems for any projects,
they should edit their project.inc accordingly
svn path=/trunk/boinc/; revision=14254
send email notifications to team founder (not project admin)
- user web: let project admins (S_ADMIN) moderate team forums
svn path=/trunk/boinc/; revision=14245
don't show his email address to team founder
- user web: change wording on project prefs page to clarify
that emails may come from project OR team
- user web: let team founder delete message board
svn path=/trunk/boinc/; revision=14232
- add more info about team message board (if it exists)
- show list of admins
- show list of new members (in last 24 hours)
- show number of members total, with credit, and with average credit
- move actual list of members to new page (team_members.php)
svn path=/trunk/boinc/; revision=14230
email addresses to team admins,
also show the user's "send_email" flag,
indicating whether the agreed to get "email newsletters"
from the project.
If this is set, teams should NOT send email to that user.
Ideally, we should have a separate preference for whether
to get email from team
(or show email address to team admins at all)
Fixes (more or less) #479
svn path=/trunk/boinc/; revision=14220
Team founder and admins have moderator power.
Anyone can view a team message board,
but only team members can write to it.
Users cannot be banished from team message boards
(due to database limitations).
svn path=/trunk/boinc/; revision=14218
into a separate function.
Don't show subtitle bar for categories with no name.
Rename search_post_titles() to search_post_content()
svn path=/trunk/boinc/; revision=14209
- DB: added parent_type to forum
- user web: BoincUser uses caching by default
- client: fixed small memory leak in statistics parsing
svn path=/trunk/boinc/; revision=14130
- If a request is pending, notify the current founder
in red on their Account page.
(previously there was no notification on the web;
if the founder didn't get the notification email,
they'd never find out; and if they read but lost the email,
they'd lose the URL they needed to visit to decline).
- Also notify current founder on the Admin Functions page
- On the team page
requesting user: show that request is pending, and the deadline.
founder: show that request is pending, link to respond
other users: show Deferred if can't make a request yet
- Say 90 days instead of 60 days where appropriate;
other text cleanup
- user web: team_change_founder_action.php was generating
a different name for each element of a radio button group.
That makes it not a radio button.
svn path=/trunk/boinc/; revision=14117
appointed by the founder, who have most of the same
rights as the founder (edit team info, view/remove users).
They can't, however, change the founder, or select/remove Admins.
- user web: added the ability for founder to delete an empty team
- user web: count/show all team members, not just those with credit
- user web: Team Search returns top team if form fields left blank
- Added db_update.php entry for Eric's banishment_vote stuff
svn path=/trunk/boinc/; revision=14108
This lets you lookup up users sorted by
- descending join time
- descending total credit, or
- descending RAC
and lets you filter them by
- country
- presence/absence of team
- presence/absence of profile
It's implemented in such a way that no more than N
DB rows are examined
(i.e. it doesn't necessarily show you all the results)
- PHP database: add enum_fields() member to DbConn and BoincUser.
This is to select a limited number of fields
e.g. to make large queries more efficient.
Also added BoincTeam::lookup_id_cache(); this is an example
of how to look up items likely to be repeated
(like teams when you're showing a list of users)
svn path=/trunk/boinc/; revision=14082
- changed Private Messages interface so that you see
all your messages on one page,
and remove various redundant links
(like the Inbox link on the Inbox page)
- changed links to buttons for moderator functions
svn path=/trunk/boinc/; revision=14019
- replace some links with buttons in forum pages; add hover text.
- show "mark all threads as read" only in forum page
- fix bugs in team creation
svn path=/trunk/boinc/; revision=14016
add a function show_button() to display links as buttons
with hover-based explanation.
This should be used whenever clicking on something
performs an action, rather than just going to a new page
(sometimes the boundary is fuzzy)
- user web: fixed bug when send private message by user name
svn path=/trunk/boinc/; revision=14015
and have boinc_real_escape_string
call it rather than mysql_real_escape_string(),
to ensure that a DB connection exists
(you need one to call mysql_real_escape_string()).
- some additional conversion to BoincDb-based classes
svn path=/trunk/boinc/; revision=13977
Here's how things should eventually be:
- inc/db_conn.inc defines DbConn, a PHP class representing
a connection to a database with
various generic operations (update, insert etc.).
DbConn prepends the DB name to table names,
so you don't have to select a DB;
this means you can access multiple databases
(e.g. BOINC and Bossa) and use persistent connections.
ALL MYSQL-SPECIFIC CODE WILL EVENTUALLY BE HERE.
- inc/boinc_db.inc defines classes BoincUser, BoincTeam etc.,
representing the various BOINC DB tables.
All access to the DB should use these classes.
When you use this framework, no initialization calls are needed.
db.inc is deprecated and should eventually be removed.
I changed get_logged_in_user()
and all team-related code to use this framework.
- user web: show team founder link to "management functions"
even if they're not currently a member;
allow team founder to perform all operations even if not a member.
- turned on E_ALL error checking,
and fixed a bunch of warnings
and a couple of bugs ($team, not team)
- database: update schema/constraints for team fulltext search
- user web: forgot to change Serbia and Montenegro to Serbia
svn path=/trunk/boinc/; revision=13968
representing a connection to a database.
This is independent of Bossa,
and we should rewrite the BOINC PHP code based on this.
svn path=/trunk/boinc/; revision=13967
live in a different database (and/or server) than the BOINC tables.
Also eliminated the need to call a DB init function.
This involved:
1) adding <bossa_db_host> etc. entries to config.xml
2) prefixing DB name to table name in all Bossa queries
(this is needed if Bossa DB is on same server as BOINC DB,
since we're using persistent connections)
- user web: added Montenegro, and changed Serbia and Montenegro to Serbia
(requires DB update to make latter change in existing records)
svn path=/trunk/boinc/; revision=13962
New db tables banishment_vote and banishment_votes
Daemon script vote_monitor for timing the votes
New configuration option <moderators_vote_to_ban/>
svn path=/trunk/boinc/; revision=13917
not the worker signal handler.
There's no reason to call it from the signal handler -
it returns the CPU for the entire process, not the calling thread.
And it may be asynch-signal-handler-unsafe.
- API: comment out checks for bad CPU times.
I don't think this is needed now, and in some cases it's wrong
(multi-threaded apps can accumulate CPU faster than real time)
- API, Unix: in boinc_calling_thread_cpu_time(), don't retry getrusage().
- Bossa: switch to better class structure (suggested by Nicolas Alvarez).
Haven't switched to mysqli yet, but will later.
Also various other Bossa fixes
svn path=/trunk/boinc/; revision=13855
This isn't part of BOINC and eventually
it should go in a different repository,
but for now I'm putting it here.
svn path=/trunk/boinc/; revision=13851
"task" instead of "result";
"computer" instead of "host";
"scheduler request" instead of "scheduler RPC"
"access to Internet" instead of "access to reference web site"
svn path=/trunk/boinc/; revision=13774
search (keywords, country, type).
Have the new-user scenario route the user through this page.
Also, link to it rather than team.php for existing users.
- user web: use cookies rather than URLs to identify new users,
and show "Welcome to X" when they reach their user page.
- user web: don't show user intermediate page for join/quit team.
Just take them to their user page.
svn path=/trunk/boinc/; revision=13731
These are stored in a new DB table, "team_delta".
The team founder can view the history in HTML or XML
(links on Management Functions page)
svn path=/trunk/boinc/; revision=13231
Make a single function that creates teams
and cleanses arguments.
- API: don't include config.h in parse.h.
This file is included from apps
(indirectly, via graphics_api.h)
so it shouldn't assume that config.h exists
svn path=/trunk/boinc/; revision=13212
that lets you suspend computation after a specified period of idleness.
This is necessary to allow some machines to go into low-power mode
when they're not being used.
- Change the wording of some existing prefs; for example, changed
"Do work while computer is in use?" to
"Suspend work while computer is in use".
The former is confusing - if you say yes, BOINC may in fact
NOT do work while the computer is in use,
due to other factors (time of day, etc.)
TODO: HOST_INFO::users_idle() should be changed so that it
returns the idle time
(rather than telling you whether we've been idle for X)
svn path=/trunk/boinc/; revision=13193
- back end: use boinc_mkdir to get permissions right
html/inc/
stats_sites.inc
lib/
filesys.C
sched/
db_dump.C
db_purge.C
feeder.C
svn path=/trunk/boinc/; revision=13033
- back end: moved HR_INFO to a separate file;
did some debugging in HR code
html/
inc/
forum_user.inc
util.inc
user/
forum_pm.php
sched/
Makefile.am
census.C
feeder.C
hr.C,h
hr_info.C,h (new)
svn path=/trunk/boinc/; revision=12978
This is handy if you have a lot of hosts,
and every now and then they get a new host ID
(e.g. because you delete and reinstall BOINC).
You can now merge all of them with a single click.
html/
inc/
host.inc
user/
host_edit_action.php
merge_by_name.php (new)
hosts_user.php
svn path=/trunk/boinc/; revision=12785
with MHz instead of GHz in their names.
- user web: it no hosts eligible for merging, say so
instead of showing blank table
html/
inc/
host.inc
user/
host_edit_form.php
svn path=/trunk/boinc/; revision=12760
- boinc_cmd: canonicalize URLs
- user web: fix link to Top Teams
- back end: remove code related to alternate download dir
client/
cpu_sched.C
sim.C
html/
inc/
stats_sites.inc
user/
stats.php
lib/
boinc_cmd.C
sched/
file_deleter.C
sched_config.C,h
svn path=/trunk/boinc/; revision=12694
NOTE: teams that have name display issues will have to edit their description once the projects update the code.
svn path=/trunk/boinc/; revision=12691
$s = '$s';
at top of compiled translation files,
to allow re-ordering of format codes
(from H. Komori)
html/inc/
translation.inc
svn path=/trunk/boinc/; revision=12673
- Change "CVS" into "SVN" in the CVS version tracker (automatically generated comment in the pages showing page revision number)
svn path=/trunk/boinc/; revision=12666
we need to use " to expand $PROJECT var
- scheduler:
take work_buf_min into account in deciding whether
a result will be reported by its deadline.
- all back end programs:
better error message if can't parse config file
html/inc/
translation.inc
sched/
*.C
svn path=/trunk/boinc/; revision=12652
If set, the scheduler will use EDF simulation,
together with the in-progress workload reported by the client,
to avoid sending results that
1) will miss their deadline, or
2) will cause an in-progress result to miss its deadline, or
3) will make an in-progress result miss its deadline
by more than is already predicted.
If this option is not set, or if the client request doesn't
include a workload description (i.e. the client is old)
use the existing approach, which assumes there's no workload.
NOTE: this is experimental. Production projects should not use it.
- EDF sim: write debug stuff to stderr instead of stdout
- Account manager:
- if an account is detach_when_done, set dont_request_more_work
- check done_request_more_work even for first-time projects
- update_uotd: generate a file for use by Google gadget
- user_links(): use full URLs (so can use in Google gadget)
client/
acct_mgr.C
work_fetch.C
html/
inc/
uotd.inc
util.inc
user/
uotd_gadget.php (new)
sched/
Makefile.am
edf_sim.C
sched_config.C,h
sched_resend.C
sched_send.C,h
server_types.C,h
svn path=/trunk/boinc/; revision=12639
- Add --server_uses_workload option
(simulate server that does EDF simulation)
- Add simulation of exponential backoff when don't get work.
Otherwise it will keep asking forever.
- move non-interesting stuff to sim_util.C
- change simulator code to use ' instead of " in compiled translations
client/
makefile_sim
sim_util.C
sim.C,h
work_fetch.C
html/inc/
translation.inc
sched/
edf_sim.C
edf_sim.h (new)
svn path=/trunk/boinc/; revision=12604
in the project home directory.
It contains the output of /usr/bin/svnversion,
i.e. the code revision from which the server software was built.
- Web files that create directories now give them g+rwx permissions
html/inc/
cache.inc
translation.inc
sched/
edf_sim.C
tools/
make_project
upgrade
svn path=/trunk/boinc/; revision=12521
- bug in language_select.php made 'auto' not work,
i.e. its impossible to return to browser settings
after doing a cookie-based language choice
- translation.inc and language_select.php were using $HTTP_SERVER_VARS,
which appears to be deprecated in PHP 5.
Use $_SERVER instead.
- made strings at top of web site translatable
html/
inc/
translation.inc
user/
language_select.php
languages/translations/
en.po
svn path=/trunk/boinc/; revision=12493