*** empty log message ***

svn path=/trunk/boinc/; revision=12325
This commit is contained in:
David Anderson 2007-04-06 00:37:07 +00:00
parent 1411e4c003
commit 633d5a6bef
4 changed files with 52 additions and 13 deletions

View File

@ -3259,3 +3259,13 @@ David 5 Apr 2007
lib/
diagnostics.C
error_numbers.h
David 5 Apr 2007
- core client: canonicalize account manager URL
- boinc_cmd: add --join_acct_mgr, --quit_acct_mgr commands;
remove --acct_mgr_op command.
client/
acct_mgr.C
lib/
boinc_cmd.C

View File

@ -47,15 +47,15 @@ ACCT_MGR_OP::ACCT_MGR_OP() {
// if url is null, defect from current account manager
//
int ACCT_MGR_OP::do_rpc(
std::string url, std::string name, std::string password_hash,
std::string _url, std::string name, std::string password_hash,
bool _via_gui
) {
int retval;
unsigned int i;
char buf[256], password[256];
char url[256], password[256], buf[256];
FILE *pwdf;
strlcpy(buf, url.c_str(), sizeof(buf));
strlcpy(url, _url.c_str(), sizeof(url));
error_num = ERR_IN_PROGRESS;
via_gui = _via_gui;
@ -66,7 +66,7 @@ int ACCT_MGR_OP::do_rpc(
// if null URL, defect from current AMS
//
if (!strlen(buf) && strlen(gstate.acct_mgr_info.acct_mgr_url)) {
if (!strlen(url) && strlen(gstate.acct_mgr_info.acct_mgr_url)) {
msg_printf(NULL, MSG_INFO, "Removing account manager info");
gstate.acct_mgr_info.clear();
boinc_delete_file(ACCT_MGR_URL_FILENAME);
@ -80,13 +80,13 @@ int ACCT_MGR_OP::do_rpc(
return 0;
}
canonicalize_master_url(buf);
if (!valid_master_url(buf)) {
canonicalize_master_url(url);
if (!valid_master_url(url)) {
error_num = ERR_INVALID_URL;
return 0;
}
strlcpy(ami.acct_mgr_url, url.c_str(), sizeof(ami.acct_mgr_url));
strlcpy(ami.acct_mgr_url, url, sizeof(ami.acct_mgr_url));
strlcpy(ami.acct_mgr_name, "", sizeof(ami.acct_mgr_name));
strlcpy(ami.login_name, name.c_str(), sizeof(ami.login_name));
strlcpy(ami.password_hash, password_hash.c_str(), sizeof(ami.password_hash));
@ -174,7 +174,7 @@ int ACCT_MGR_OP::do_rpc(
}
fprintf(f, "</acct_mgr_request>\n");
fclose(f);
sprintf(buf, "%srpc.php", url.c_str());
sprintf(buf, "%srpc.php", url);
retval = gstate.gui_http.do_rpc_post(
this, buf, ACCT_MGR_REQUEST_FILENAME, ACCT_MGR_REPLY_FILENAME
);
@ -182,7 +182,7 @@ int ACCT_MGR_OP::do_rpc(
error_num = retval;
return retval;
}
msg_printf(NULL, MSG_INFO, "Contacting account manager at %s", url.c_str());
msg_printf(NULL, MSG_INFO, "Contacting account manager at %s", url);
return 0;
}

View File

@ -29,6 +29,12 @@ list_item("--create_account URL email password name",
"Create account with the given email address, password, and user name"
);
list_item("--project_attach URL auth","Attach to an account");
list_item("--join_acct_mgr URL name password",
"Attach to an account manager (or do RPC if already attached)."
);
list_item("--quit_acct_mgr",
"Quit the current account manager."
);
list_bar("State queries");
list_item("--get_state", "show complete client state");
list_item("--get_results", "show results");
@ -110,9 +116,6 @@ list_item(
",
"Set proxy settings (all fields are mandatory)"
);
list_item("--acct_mgr_rpc URL name password",
"Instruct core client to contact an account manager server."
);
list_item("--run_benchmarks", "Run CPU benchmarks");
list_item(
"--set_screensaver_mode on|off blank_time

View File

@ -375,11 +375,37 @@ int main(int argc, char** argv) {
HOST_INFO hi;
retval = rpc.get_host_info(hi);
if (!retval) hi.print();
} else if (!strcmp(cmd, "--acct_mgr_rpc")) {
} else if (!strcmp(cmd, "--join_acct_mgr")) {
char* am_url = next_arg(argc, argv, i);
char* am_name = next_arg(argc, argv, i);
char* am_passwd = next_arg(argc, argv, i);
retval = rpc.acct_mgr_rpc(am_url, am_name, am_passwd);
if (!retval) {
while (1) {
ACCT_MGR_RPC_REPLY amrr;
retval = rpc.acct_mgr_rpc_poll(amrr);
if (retval) {
printf("poll status: %s\n", boincerror(retval));
} else {
if (amrr.error_num) {
printf("poll status: %s\n", boincerror(amrr.error_num));
if (amrr.error_num != ERR_IN_PROGRESS) break;
boinc_sleep(1);
} else {
unsigned int i, n = amrr.messages.size();
if (n) {
printf("Messages from account manager:\n");
for (i=0; i<n; i++) {
printf("%s\n", amrr.messages[i].c_str());
}
}
break;
}
}
}
}
} else if (!strcmp(cmd, "--quit_acct_mgr")) {
retval = rpc.acct_mgr_rpc("", "", "");
} else if (!strcmp(cmd, "--run_benchmarks")) {
retval = rpc.run_benchmarks();
} else if (!strcmp(cmd, "--get_screensaver_mode")) {