*** empty log message ***

svn path=/trunk/boinc/; revision=2880
This commit is contained in:
David Anderson 2004-01-15 01:42:49 +00:00
parent 9a790726c6
commit b885e31677
4 changed files with 92 additions and 48 deletions

View File

@ -9195,3 +9195,12 @@ David Jan 14 2004
client/win/
wingui_mainwindow.cpp,h
David Jan 14 2004
- windows console version works again (from Rom Walton)
client/
main.C
net_xfer.C
win_build/
boinc_cli.vcproj

View File

@ -22,6 +22,11 @@
// This file contains no GUI-related code,
// and is not included in the source code for Mac or Win GUI clients
#ifdef WIN32
#include <afxwin.h>
#include "stackwalker.h"
#endif
#ifdef HAVE_UNISTD_H
#include <unistd.h>
#endif
@ -141,22 +146,50 @@ void quit_client(int a) {
gstate.requested_exit = true;
}
#ifndef _WIN32
void susp_client(int a) {
gstate.active_tasks.suspend_all();
msg_printf(NULL, MSG_INFO, "Suspending activity - user request");
signal(SIGTSTP, SIG_DFL);
#ifndef _WIN32
signal(SIGTSTP, SIG_DFL);
raise(SIGTSTP);
#endif
}
void resume_client(int a) {
gstate.active_tasks.unsuspend_all();
msg_printf(NULL, MSG_INFO, "Resuming activity");
}
#ifdef _WIN32
BOOL WINAPI ConsoleControlHandler ( DWORD dwCtrlType ){
BOOL bReturnStatus = FALSE;
switch( dwCtrlType ){
case CTRL_C_EVENT:
if(gstate.activities_suspended)
resume_client(NULL);
else
susp_client(NULL);
bReturnStatus = TRUE;
break;
case CTRL_BREAK_EVENT:
case CTRL_CLOSE_EVENT:
case CTRL_LOGOFF_EVENT:
case CTRL_SHUTDOWN_EVENT:
quit_client(NULL);
bReturnStatus = TRUE;
break;
}
return bReturnStatus;
}
#endif
int main(int argc, char** argv) {
int retval;
#ifdef WIN32
InitAllocCheck();
#endif
int retval;
double dt;
setbuf(stdout, 0);
@ -165,13 +198,8 @@ int main(int argc, char** argv) {
exit(1);
}
read_log_flags();
gstate.parse_cmdline(argc, argv);
gstate.parse_env_vars();
retval = gstate.init();
if (retval) exit(retval);
#ifndef _WIN32
// Unix/Linux console controls
#ifndef WIN32
// Handle quit signals gracefully
signal(SIGHUP, quit_client);
signal(SIGINT, quit_client);
@ -183,6 +211,25 @@ int main(int argc, char** argv) {
signal(SIGCONT, resume_client);
#endif
// Windows console controls
#ifdef WIN32
if (!SetConsoleCtrlHandler((PHANDLER_ROUTINE)ConsoleControlHandler, TRUE)){
fprintf(stderr, "Failed to register the console control handler\n");
exit(1);
} else {
printf(
"\nTo pause/resume tasks hit CTRL-C, to exit hit CTRL-BREAK\n"
);
}
#endif
read_log_flags();
gstate.parse_cmdline(argc, argv);
gstate.parse_env_vars();
retval = gstate.init();
if (retval) exit(retval);
while (1) {
if (!gstate.do_something()) {
dt = dtime();
@ -207,5 +254,10 @@ int main(int argc, char** argv) {
}
}
gstate.cleanup_and_exit();
return 0;
#ifdef WIN32
DeInitAllocCheck();
#endif
return 0;
}

View File

@ -18,7 +18,7 @@
//
// Revision History:
// $Log$
// Revision 1.78 2004/01/10 06:40:44 davea
// Revision 1.79 2004/01/15 01:42:48 davea
// *** empty log message ***
//
// Revision 1.77 2003/12/12 23:13:01 davea
@ -100,7 +100,7 @@ typedef size_t socklen_t;
int get_socket_error(int fd) {
socklen_t intsize = sizeof(int);
int n;
#ifdef _WIN32
#ifdef WIN32
getsockopt(fd, SOL_SOCKET, SO_ERROR, (char *)&n, &intsize);
#elif __APPLE__
getsockopt(fd, SOL_SOCKET, SO_ERROR, &n, (int *)&intsize);
@ -113,7 +113,7 @@ int get_socket_error(int fd) {
int NET_XFER::get_ip_addr(char *hostname, int &ip_addr) {
hostent* hep;
#ifdef _WIN32
#ifdef WIN32
int retval;
retval = NetOpen();
if (retval) return retval;
@ -124,7 +124,7 @@ int NET_XFER::get_ip_addr(char *hostname, int &ip_addr) {
int n;
n = sprintf(msg, "Can't resolve hostname %s ", hostname);
#ifdef _WIN32
#ifdef WIN32
switch (WSAGetLastError()) {
case WSANOTINITIALISED:
@ -194,13 +194,13 @@ int NET_XFER::open_server() {
fd = ::socket(AF_INET, SOCK_STREAM, 0);
if (fd < 0) {
#ifdef _WIN32
#ifdef WIN32
NetClose();
#endif
return ERR_SOCKET;
}
#ifdef _WIN32
#ifdef WIN32
unsigned long one = 1;
ioctlsocket(fd, FIONBIO, &one);
#else
@ -219,14 +219,14 @@ int NET_XFER::open_server() {
addr.sin_addr.s_addr = ((long)ipaddr);
retval = connect(fd, (sockaddr*)&addr, sizeof(addr));
if (retval) {
#ifdef _WIN32
#ifdef WIN32
errno = WSAGetLastError();
if (errno != WSAEINPROGRESS && errno != WSAEWOULDBLOCK) {
closesocket(fd);
NetClose();
return ERR_CONNECT;
}
#ifndef WIN_CLI
#ifndef WIN32 && _CONSOLE
if (WSAAsyncSelect( fd, g_myWnd->GetSafeHwnd(), g_myWnd->m_nNetActivityMsg, FD_READ|FD_WRITE )) {
errno = WSAGetLastError();
if (errno != WSAEINPROGRESS && errno != WSAEWOULDBLOCK) {
@ -251,7 +251,7 @@ int NET_XFER::open_server() {
}
void NET_XFER::close_socket() {
#ifdef _WIN32
#ifdef WIN32
NetClose();
if (socket) closesocket(socket);
#else
@ -364,7 +364,7 @@ int NET_XFER_SET::net_sleep(double x) {
//
int NET_XFER_SET::do_select(double& bytes_transferred, double timeout) {
int n, fd, retval, nsocks_queried;
unsigned int i;
unsigned int i;
NET_XFER *nxp;
struct timeval tv;
@ -517,7 +517,7 @@ int NET_XFER::do_xfer(int& nbytes_transferred) {
ScopeMessages scope_messages(log_messages, ClientMessages::DEBUG_NET_XFER);
if (want_download) {
#ifdef _WIN32
#ifdef WIN32
n = recv(socket, buf, blocksize, 0);
#else
n = read(socket, buf, blocksize);
@ -558,7 +558,7 @@ int NET_XFER::do_xfer(int& nbytes_transferred) {
}
nleft = file_read_buf_len - file_read_buf_offset;
while (nleft) {
#ifdef _WIN32
#ifdef WIN32
n = send(socket, file_read_buf+file_read_buf_offset, nleft, 0);
would_block = (WSAGetLastError() == WSAEWOULDBLOCK);
#else

View File

@ -22,7 +22,7 @@
Name="VCCLCompilerTool"
Optimization="0"
AdditionalIncludeDirectories="../lib/,../api/,../RSAEuro/source/,../client/win/,../client"
PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;WIN_CLI"
PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_CONSOLE"
BasicRuntimeChecks="3"
RuntimeLibrary="0"
UsePrecompiledHeader="2"
@ -46,7 +46,7 @@
IgnoreDefaultLibraryNames="libc,nafxcwd,libcmtd,libcmt,libcd"
GenerateDebugInformation="TRUE"
ProgramDatabaseFile=".\Build\Debug/boinc_cli.pdb"
SubSystem="2"
SubSystem="1"
TargetMachine="1"/>
<Tool
Name="VCMIDLTool"
@ -979,6 +979,9 @@
CompileAs="2"/>
</FileConfiguration>
</File>
<File
RelativePath="..\client\win\Stackwalker.cpp">
</File>
<File
RelativePath="..\Client\time_stats.C">
<FileConfiguration
@ -1048,29 +1051,6 @@
CompileAs="2"/>
</FileConfiguration>
</File>
<File
RelativePath="..\Client\win\Win_main.cpp">
<FileConfiguration
Name="Debug|Win32">
<Tool
Name="VCCLCompilerTool"
Optimization="0"
AdditionalIncludeDirectories=""
PreprocessorDefinitions=""
BasicRuntimeChecks="3"
BrowseInformation="1"
CompileAs="2"/>
</FileConfiguration>
<FileConfiguration
Name="Release|Win32">
<Tool
Name="VCCLCompilerTool"
Optimization="2"
AdditionalIncludeDirectories=""
PreprocessorDefinitions=""
CompileAs="2"/>
</FileConfiguration>
</File>
<File
RelativePath="..\Client\win\Win_net.cpp">
<FileConfiguration
@ -1170,6 +1150,9 @@
<File
RelativePath="..\client\ss_logic.h">
</File>
<File
RelativePath="..\client\win\Stackwalker.h">
</File>
<File
RelativePath="..\client\time_stats.h">
</File>