本文整理汇总了C++中DB_HOST::fix_nans方法的典型用法代码示例。如果您正苦于以下问题:C++ DB_HOST::fix_nans方法的具体用法?C++ DB_HOST::fix_nans怎么用?C++ DB_HOST::fix_nans使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类DB_HOST
的用法示例。
在下文中一共展示了DB_HOST::fix_nans方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: authenticate_user
//.........这里部分代码省略.........
if (find_host_by_cpid(user, g_request->host.host_cpid, host)) {
log_messages.printf(MSG_NORMAL,
"[HOST#%d] [USER#%d] No host ID in request, but host with matching CPID found.\n",
host.id, host.userid
);
if ((g_request->allow_multiple_clients != 1)
&& (g_request->other_results.size() == 0)
) {
mark_results_over(host);
}
goto got_host;
}
}
make_new_host:
// One final attempt to locate an existing host record:
// scan backwards through this user's hosts,
// looking for one with the same host name,
// IP address, processor and amount of RAM.
// If found, use the existing host record,
// and mark in-progress results as over.
//
// NOTE: If the client was run with --allow_multiple_clients, skip this.
//
if ((g_request->allow_multiple_clients != 1)
&& find_host_by_other(user, g_request->host, host)
) {
log_messages.printf(MSG_NORMAL,
"[HOST#%d] [USER#%d] Found similar existing host for this user - assigned.\n",
host.id, host.userid
);
mark_results_over(host);
goto got_host;
}
// either of the above cases,
// or host ID didn't match user ID,
// or RPC seqno was too low.
//
// Create a new host.
// g_reply->user is filled in and valid at this point
//
host = g_request->host;
host.id = 0;
host.create_time = time(0);
host.userid = g_reply->user.id;
host.rpc_seqno = 0;
host.expavg_time = time(0);
safe_strcpy(host.venue, g_reply->user.venue);
host.fix_nans();
retval = host.insert();
if (retval) {
g_reply->insert_message(
"Couldn't create host record in database", "low"
);
boinc_db.print_error("host.insert()");
log_messages.printf(MSG_CRITICAL, "host.insert() failed\n");
return retval;
}
host.id = boinc_db.insert_id();
got_host:
g_reply->host = host;
g_reply->hostid = g_reply->host.id;
// this tells client to updates its host ID
g_request->rpc_seqno = 0;
// this value eventually gets written to host DB record;
// for new hosts it must be zero.
// This kludge forces this.
}
// have user record in g_reply->user at this point
//
if (g_reply->user.teamid) {
retval = team.lookup_id(g_reply->user.teamid);
if (!retval) g_reply->team = team;
}
// compute email hash
//
md5_block(
(unsigned char*)g_reply->user.email_addr,
strlen(g_reply->user.email_addr),
g_reply->email_hash
);
// if new user CPID, update user record
//
if (!g_request->using_weak_auth && strlen(g_request->cross_project_id)) {
if (strcmp(g_request->cross_project_id, g_reply->user.cross_project_id)) {
user.id = g_reply->user.id;
escape_string(g_request->cross_project_id, sizeof(g_request->cross_project_id));
sprintf(buf, "cross_project_id='%s'", g_request->cross_project_id);
unescape_string(g_request->cross_project_id, sizeof(g_request->cross_project_id));
user.update_field(buf);
}
}
return 0;
}