*** empty log message ***

svn path=/trunk/boinc/; revision=3847
This commit is contained in:
David Anderson 2004-07-11 21:54:00 +00:00
parent f851b5d38e
commit 48a5049edb
6 changed files with 47 additions and 7 deletions

View File

@ -15014,3 +15014,21 @@ David 9 July 2004
gui_test.C
tools/
create_work.C
David 11 July 2004
- changes in core client related to attaching to projects
- commented out "maybe_rename_old_filename_format()" stuff.
Not needed, and contains hazardous asserts
- CLIENT_STATE::add_project()
- check that master URL starts with http://,
and has other chars after that
[WHY WASN'T THIS BEING DONE??]
- check that authenticator is non-null
client/
cs_account.C
win/
wingui_dialog.cpp
lib/
error_numbers.h
util.C,h

View File

@ -35,7 +35,8 @@
using std::string;
static inline string filename_to_project_dirname(const string& filename) {
#if 0
static string filename_to_project_dirname(const string& filename) {
assert(starts_with(filename, "account_"));
assert(ends_with(filename, ".xml"));
return string(PROJECTS_DIR) + PATH_SEPARATOR + filename.substr(8,filename.size()-12);
@ -66,6 +67,7 @@ static bool maybe_rename_old_filename_format(string& filename) {
}
return false;
}
#endif
int CLIENT_STATE::parse_account_files() {
string name;
@ -75,10 +77,12 @@ int CLIENT_STATE::parse_account_files() {
DirScanner dir(".");
while (dir.scan(name)) {
if (is_account_file((char*)name.c_str())) {
#if 0
if (maybe_rename_old_filename_format(name)) {
msg_printf(NULL, MSG_ERROR, "Warning: not adding project %s", name.c_str());
continue; // Error occurred renaming
}
#endif
f = fopen(name.c_str(), "r");
if (!f) continue;
project = new PROJECT;
@ -90,14 +94,26 @@ int CLIENT_STATE::parse_account_files() {
return 0;
}
int CLIENT_STATE::add_project(const char* master_url, const char* authenticator) {
char path[256], canonical_master_url[256];
int CLIENT_STATE::add_project(const char* master_url, const char* _auth) {
char path[256], canonical_master_url[256], auth[256];
PROJECT* project;
FILE* f;
int retval;
safe_strcpy(canonical_master_url, master_url);
strip_whitespace(canonical_master_url);
canonicalize_master_url(canonical_master_url);
if (invalid_url(canonical_master_url)) {
msg_printf(0, MSG_ERROR, "Invalid project URL: %s", canonical_master_url);
return ERR_INVALID_URL;
}
safe_strcpy(auth, _auth);
strip_whitespace(auth);
if (!strlen(auth)) {
msg_printf(0, MSG_ERROR, "Invalid account ID: %s", auth);
return ERR_AUTHENTICATOR;
}
// check if this project is already running
//
@ -110,8 +126,7 @@ int CLIENT_STATE::add_project(const char* master_url, const char* authenticator)
//
project = new PROJECT;
strcpy(project->master_url, canonical_master_url);
strcpy(project->authenticator, authenticator);
strip_whitespace(project->authenticator);
strcpy(project->authenticator, auth);
project->tentative = true;
retval = project->write_account_file();

View File

@ -63,7 +63,7 @@ BOOL CLoginDialog::OnInitDialog()
{
CDialog::OnInitDialog();
m_strUrlTT.Format("The URL for the website of the project.");
m_strAuthTT.Format("The authorization code received in your confirmation email.");
m_strAuthTT.Format("The account ID received in your confirmation email.");
LoadLanguage();
CWnd* pWndUrl = GetDlgItem(IDC_LOGIN_URL);
if(pWndUrl) {

View File

@ -136,4 +136,4 @@
#define ERR_RESULT_START -185
#define ERR_RESULT_DOWNLOAD -186
#define ERR_RESULT_UPLOAD -187
#define ERR_INVALID_URL -189

View File

@ -457,6 +457,12 @@ void canonicalize_master_url(char *xurl) {
strcpy(xurl, url.c_str());
}
bool invalid_url(char* p) {
if (strstr(p, "http://") != p) return true;
if (strlen(p) == strlen("http://")) return true;
return false;
}
void safe_strncpy(char* dst, const char* src, int len) {
strncpy(dst, src, len);
dst[len-1]=0;

View File

@ -48,6 +48,7 @@ extern void strip_whitespace(std::string&);
extern void unescape_url(char *url);
extern void escape_url(char *in, char*out);
extern void escape_url_readable(char* in, char* out);
extern bool invalid_url(char*);
extern void canonicalize_master_url(char *url);
extern void safe_strncpy(char*, const char*, int);
#define safe_strcpy(x, y) safe_strncpy(x, y, sizeof(x))