From 66c84208e7de0f9a48b63099287349afb1f5da32 Mon Sep 17 00:00:00 2001 From: David Anderson Date: Tue, 27 Jun 2006 19:38:22 +0000 Subject: [PATCH] *** empty log message *** svn path=/trunk/boinc/; revision=10523 --- checkin_notes | 9 + client/client_state.C | 11 - client/client_types.C | 18 +- client/proxy.C | 470 ------------------------------------------ client/proxy.h | 94 --------- doc/dialup.php | 2 +- doc/wrapper.php | 2 +- 7 files changed, 25 insertions(+), 581 deletions(-) delete mode 100644 client/proxy.C delete mode 100644 client/proxy.h diff --git a/checkin_notes b/checkin_notes index 188143d40e..b1f3bb4ff6 100755 --- a/checkin_notes +++ b/checkin_notes @@ -6916,3 +6916,12 @@ David 27 June 2006 client_types.C cs_statefile.C file_xfer.C + +David 27 June 2006 + - core client: put stderr output in a CDATA block, + so it doesn't break XML parsers if it has < + + client/ + client_state.C + client_types.C + proxy.C,h (removed) diff --git a/client/client_state.C b/client/client_state.C index 5a4bf23bb1..b64ecbebbf 100644 --- a/client/client_state.C +++ b/client/client_state.C @@ -616,17 +616,6 @@ int CLIENT_STATE::link_app(PROJECT* p, APP* app) { int CLIENT_STATE::link_file_info(PROJECT* p, FILE_INFO* fip) { if (lookup_file_info(p, fip->name)) return ERR_NOT_UNIQUE; fip->project = p; -#if 0 - // I got rid of the from_server arg - if (from_server) { - if (p->associate_file(fip)) { - return 0; - } else { - return 1; - } - } -#endif - return 0; } diff --git a/client/client_types.C b/client/client_types.C index 3637bd081e..4dc598ba4a 100644 --- a/client/client_types.C +++ b/client/client_types.C @@ -1433,6 +1433,8 @@ int RESULT::parse_state(MIOFILE& in) { else if (match_tag(buf, "")) { while (in.fgets(buf, 256)) { if (match_tag(buf, "")) break; + if (strstr(buf, "")) continue; stderr_out.append(buf); } continue; @@ -1487,8 +1489,12 @@ int RESULT::write(MIOFILE& out, bool to_server) { ); } n = stderr_out.length(); - if (n) { + if (n || to_server) { out.printf("\n"); + + // the following is here so that it gets recorded on server + // (there's no core_client_version field of result table) + // if (to_server) { out.printf( "%d.%d.%d\n", @@ -1497,9 +1503,13 @@ int RESULT::write(MIOFILE& out, bool to_server) { gstate.core_client_release ); } - out.printf(stderr_out.c_str()); - if (stderr_out[n-1] != '\n') { - out.printf("\n"); + if (n) { + out.printf("\n"); } out.printf("\n"); } diff --git a/client/proxy.C b/client/proxy.C deleted file mode 100644 index 22c0c8f64e..0000000000 --- a/client/proxy.C +++ /dev/null @@ -1,470 +0,0 @@ -// Berkeley Open Infrastructure for Network Computing -// http://boinc.berkeley.edu -// Copyright (C) 2005 University of California -// -// This is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; -// either version 2.1 of the License, or (at your option) any later version. -// -// This software is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. -// See the GNU Lesser General Public License for more details. -// -// To view the GNU Lesser General Public License visit -// http://www.gnu.org/copyleft/lesser.html -// or write to the Free Software Foundation, Inc., -// 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - -#include "cpp.h" - -#ifdef _WIN32 -#include "boinc_win.h" -#else -#include "config.h" -#include -#ifdef HAVE_SYS_SOCKET_H -#include -#endif -#include -#ifdef HAVE_UNISTD_H -#include -#endif -#endif - -#include -#include - -#include "error_numbers.h" -#include "filesys.h" -#include "util.h" -#include "network.h" -#include "client_msgs.h" -#include "parse.h" - -#include "proxy.h" - -// Read the contents of the socket into buf -// -static int proxy_read_reply(int socket, char* buf, int len) { - int i, n; - for (i=0; i 0) { - len = send(socket, buf+ret, size, 0); - if ( len == -1 && errno != ) fatal("atomic_out() failed to send(), %d\n", socks_errno()); - ret += len; - size -= len; - } - return ret; -} -*/ - -void print_buf( char *buf, int n ) { - for (int i=0;iuse_http_proxy; - strcpy(pi.http_user_name, new_pi->http_user_name); - strcpy(pi.http_user_passwd, new_pi->http_user_passwd); - strcpy(pi.http_server_name, new_pi->http_server_name); - pi.http_server_port = new_pi->http_server_port; - pi.use_http_auth = new_pi->use_http_auth; - - pi.use_socks_proxy = new_pi->use_socks_proxy; - strcpy(pi.socks5_user_name, new_pi->socks5_user_name); - strcpy(pi.socks5_user_passwd, new_pi->socks5_user_passwd); - strcpy(pi.socks_server_name, new_pi->socks_server_name); - pi.socks_server_port = new_pi->socks_server_port; - pi.socks_version = new_pi->socks_version; - - return 0; -} - -char *PROXY::get_proxy_server_name(char *regular_server) { - if (pi.use_socks_proxy) return pi.socks_server_name; - else if (pi.use_http_proxy) return pi.http_server_name; - else return regular_server; -} - -int PROXY::get_proxy_port(int regular_port) { - if (pi.use_socks_proxy) return pi.socks_server_port; - else if (pi.use_http_proxy) return pi.http_server_port; - else return regular_port; -} - -int PROXY::proxy_failed(int failure_code) { - proxy_state = PROXY_STATE_DONE; - proxy_retval = failure_code; - - return 0; -} - -// Initialize proxy_data with a socks4 or socks5 connection request -// see http://www.socks.nec.com/rfc/rfc1928.txt -// see http://www.socks.nec.com/protocol/socks4.protocol -// TODO: add support for GSSAPI authentication, IPv6 addresses, name -> IP resolution -// One current problem is that the client may not fully read/write messages -// to the server if buffers are full. proxy_atomic_send is an attempt to -// compensate, it should be fully implemented and tested if this becomes a -// significant issue. I'm not too worried though, since the messages are -// always very small, and unlikely to cause space concerns (Eric Heien 3/26/04) - -// Check available methods on the socks server -// -int PROXY::socks_prepare_method_req(char *buf) { - int nbytes = 0; - char *marker = buf; - - if (pi.socks_version != SOCKS_VERSION_5) return ERR_SOCKS_UNKNOWN_FAILURE; - - nbytes = 3; - *marker++ = SOCKS_VERSION_5; - if (*pi.socks5_user_name && *pi.socks5_user_passwd) { - *marker++ = 2; // 2 possible methods - *marker++ = SOCKS_AUTH_USER_PASS; // user/pass - nbytes++; - } else { - *marker++ = 1; // 1 possible method: - } - *marker++ = SOCKS_AUTH_NONE_NEEDED; // no authentication - - return nbytes; -} - -int PROXY::socks_prepare_user_pass(char *buf) { - int nbytes; - char *marker = buf; - - if (pi.socks_version != SOCKS_VERSION_5) return ERR_SOCKS_UNKNOWN_FAILURE; - - // Send user and password - *marker++ = SOCKS5_USER_SUBNEG_VERSION_1; - *marker++ = strlen(pi.socks5_user_name); - strncpy(marker, pi.socks5_user_name, strlen(pi.socks5_user_name)); - marker += strlen(pi.socks5_user_name); - *marker++ = strlen(pi.socks5_user_passwd); - strncpy(marker, pi.socks5_user_passwd, strlen(pi.socks5_user_passwd)); - nbytes = 1+1+strlen(pi.socks5_user_name)+1+strlen(pi.socks5_user_passwd); - - return nbytes; -} - -int PROXY::socks_prepare_connect_req(char *buf, int ns_port, int ip_addr, char *domain_name) { - int nbytes; - char *marker = buf, *p; - - if (pi.socks_version == SOCKS_VERSION_4) { - *marker++ = SOCKS_VERSION_4; - *marker++ = 1; // Request connection - p = (char*)&ns_port; // to this port - for (int i=0;i<2;i++) *marker++ = *p++; - p = (char*)&ip_addr; // at this IP address - for (int i=0;i<4;i++) *marker++ = *p++; - strncpy(marker, pi.socks5_user_name, strlen(pi.socks5_user_name)); - nbytes = 1+1+2+4+strlen(pi.socks5_user_name); - } else if (pi.socks_version == SOCKS_VERSION_5) { - if (strlen(domain_name) > 255) return ERR_SOCKS_UNKNOWN_FAILURE; - - *marker++ = SOCKS_VERSION_5; - *marker++ = 1; // request connection - *marker++ = 0; // reserved - nbytes = 3; - - if (strlen(domain_name) > 0) { - nbytes += 2+strlen(domain_name); - *marker++ = SOCKS5_ADDR_TYPE_DOMAIN_NAME; - *marker++ = strlen(domain_name); - p = domain_name; - for (unsigned int i=0;iClick the 'Advanced' menu and click 'Options'.
  • Select the 'Connections' tab
  • Select the connection to be used by BOINC -
  • Click the 'Set default' checkbox +
  • Click the 'Set default' button
  • Click the 'OK' button
  • Set network preferences on project web site diff --git a/doc/wrapper.php b/doc/wrapper.php index 612e2c4cf0..74ddcb09fa 100644 --- a/doc/wrapper.php +++ b/doc/wrapper.php @@ -10,7 +10,7 @@ Such applications can be run using BOINC, as follows:
    • Compile the program 'wrapper' from the -boinc_samples tree, +boinc_samples tree, producing (say) 'wrapper_5.10_windows_intelx86.exe'.
    • Create a file 'job.xml=job_0.xml' (0 is a version number) containing