From 2026b2597675d0f8d2a2389f8b42e7891f8dc1ec Mon Sep 17 00:00:00 2001 From: skeeter Date: Fri, 30 Mar 2001 00:58:38 +0000 Subject: [PATCH] Fixes for NNTP. Was not returning results. Also, cleanups and now meets coding standards. --- phpgwapi/inc/class.network.inc.php | 363 ++++++++++++++++------------- 1 file changed, 199 insertions(+), 164 deletions(-) diff --git a/phpgwapi/inc/class.network.inc.php b/phpgwapi/inc/class.network.inc.php index cae2e31fd2..bacd3f4b1c 100644 --- a/phpgwapi/inc/class.network.inc.php +++ b/phpgwapi/inc/class.network.inc.php @@ -21,182 +21,217 @@ * Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * \**************************************************************************/ - /* $Id$ */ + /* $Id$ */ class network { - var $socket; - var $addcrlf = TRUE; - var $error; - var $errorset = 0; + var $socket; + var $addcrlf = TRUE; + var $error; + var $errorset = 0; - function network($addcrlf=true) - { - $this->errorset = 0; - $this->set_addcrlf($addcrlf); - } - - function set_addcrlf($value) - { - $this->addcrlf = $value; - } - - function add_crlf($str) - { - if($this->addcrlf) { - $str .= "\r\n"; - } - return $str; - } - - function set_error($code,$msg,$desc) - { - $this->error = array("code","msg","desc"); - $this->error["code"] = $code; - $this->error["msg"] = $msg; - $this->error["desc"] = $desc; -// $this->close_port(); - $this->errorset = 1; - return 0; - } - - function open_port($server,$port,$timeout=15) - { - global $phpgw_info; - - switch($port) { - case 80: - case 443: - if((isset($phpgw_info["server"]["httpproxy_server"]) && $phpgw_info["server"]["httpproxy_server"]) && - (isset($phpgw_info["server"]["httpproxy_port"]) && $phpgw_info["server"]["httpproxy_port"])) { - $server = $phpgw_info["server"]["httpproxy_server"]; - $port = (int)$phpgw_info["server"]["httpproxy_port"]; + function network($addcrlf=true) + { + $this->errorset = 0; + $this->set_addcrlf($addcrlf); } - break; - } - if(floor(phpversion()) == 4) - $this->socket = fsockopen($server,$port,&$errcode,&$errmsg,$timeout); - else - $this->socket = fsockopen($server,$port,&$errcode,&$errmsg); - if (!$this->socket) { - return $this->set_error("Error","$errcode:$errmsg","Connection to $server:$port failed - could not open socket."); - } else { - return 1; - } - } - function close_port() - { - return fclose($this->socket); - } + function set_addcrlf($value) + { + $this->addcrlf = $value; + } - function read_port() - { - return fgets($this->socket, 1024); - } + function add_crlf($str) + { + if($this->addcrlf) + { + $str .= "\r\n"; + } + return $str; + } - function bs_read_port($bytes) - { - return fread($this->socket, $bytes); - } + function set_error($code,$msg,$desc) + { + $this->error = array('code','msg','desc'); + $this->error['code'] = $code; + $this->error['msg'] = $msg; + $this->error['desc'] = $desc; +// $this->close_port(); + $this->errorset = 1; + return 0; + } - function write_port($str) - { - $ok = fputs($this->socket,$this->add_crlf($str)); - if (!$ok) - { - return $this->set_error("Error","Connection Lost","lost connection to server"); - } else { - return 1; - } - } + function open_port($server,$port,$timeout=15) + { + global $phpgw_info; - function bs_write_port($str,$bytes=0) - { - if ($bytes) - $ok = fwrite($this->socket,$this->add_crlf($str),$bytes); - else - $ok = fwrite($this->socket,$this->add_crlf($str)); + switch($port) + { + case 80: + case 443: + if((isset($phpgw_info['server']['httpproxy_server']) && $phpgw_info['server']['httpproxy_server']) && + (isset($phpgw_info['server']['httpproxy_port']) && $phpgw_info['server']['httpproxy_port'])) + { + $server = $phpgw_info['server']['httpproxy_server']; + $port = (int)$phpgw_info['server']['httpproxy_port']; + } + break; + } + if(floor(phpversion()) == 4) + { + $this->socket = fsockopen($server,$port,&$errcode,&$errmsg,$timeout); + } + else + { + $this->socket = fsockopen($server,$port,&$errcode,&$errmsg); + } + if (!$this->socket) + { + return $this->set_error('Error',$errcode.':'.$errmsg,'Connection to '.$server.':'.$port.' failed - could not open socket.'); + } + else + { + return 1; + } + } - if (!$ok) - { - return $this->set_error("Error","Connection Lost","lost connection to server"); - } else { - return 1; - } - } + function close_port() + { + return fclose($this->socket); + } - function msg2socket($str,$expected_response,$response) - { - if(!$this->socket && substr($expected_response,1,1) == "+") { - return $this->set_error("521", - "socket does not exist", - "The required socket does not exist. The settings for your mail server may be wrong."); - } - if (!$this->write_port($str)) { - if(substr($expected_response,1,1) == "+") { - return $this->set_error("420", - "lost connection", - "Lost connection to pop server."); - } else { - return 0; - } - } - $response = $this->read_port(); - if (!ereg(strtoupper($expected_response),strtoupper($response))) { - if(substr($expected_response,1,1) == "+") { - return $this->set_error("550", - "", - ""); - } - $pos = strpos(" ",$response); - return $this->set_error(substr($response,0,$pos), - "invalid response($expected_response)", - substr($response,($pos + 1),(strlen($response)-$pos))); - } else { - return 1; - } - } + function read_port() + { + return fgets($this->socket, 1024); + } - // return contents of a web url as an array or false if timeout - function gethttpsocketfile($file) - { - global $phpgw_info; + function bs_read_port($bytes) + { + return fread($this->socket, $bytes); + } - $server = str_replace("http://","",$file); - $file = strstr($server,"/"); - $server = str_replace("$file","",$server); - if ($phpgw_info["server"]["httpproxy_server"]) { - if ($this->open_port($server,80, 15)) { - if (! $this->write_port("GET http://" . $server . $file . " HTTP/1.0\n\n")) { - return False; - } - $i = 0; - while ($line = $this->read_port()) { - if (feof($this->socket)) { - break; - } - $lines[] = $line; - $i++; - } - $this->close_port(); - return $lines; - } else { - return False; - } - } else { - if ($this->open_port($server, 80, 15)) { - if (!$this->write_port("GET $file HTTP/1.0\nHost: $server\n\n")) { - return 0; - } - while ($line = $this->read_port()) { - $lines[] = $line; - } - $this->close_port(); - return $lines; - } else { - return 0; - } - } - } + function write_port($str) + { + $ok = fputs($this->socket,$this->add_crlf($str)); + if (!$ok) + { + return $this->set_error('Error','Connection Lost','lost connection to server'); + } + else + { + return 1; + } + } + + function bs_write_port($str,$bytes=0) + { + if ($bytes) + { + $ok = fwrite($this->socket,$this->add_crlf($str),$bytes); + } + else + { + $ok = fwrite($this->socket,$this->add_crlf($str)); + } + if (!$ok) + { + return $this->set_error('Error','Connection Lost','lost connection to server'); + } + else + { + return 1; + } + } + + function msg2socket($str,$expected_response,&$response) + { + if(!$this->socket && substr($expected_response,1,1) == '+') + { + return $this->set_error('521','socket does not exist', + 'The required socked does not exist. The settings for your mail server may be wrong.'); + } + if (!$this->write_port($str)) + { + if(substr($expected_response,1,1) == '+') + { + return $this->set_error('420','lost connection','Lost connection to pop server.'); + } + else + { + return 0; + } + } + $response = $this->read_port(); + if (!ereg(strtoupper($expected_response),strtoupper($response))) + { + if(substr($expected_response,1,1) == '+') + { + return $this->set_error('550','',''); + } + $pos = strpos(' ',$response); + return $this->set_error(substr($response,0,$pos), + 'invalid response('.$expected_response.')', + substr($response,($pos + 1),(strlen($response)-$pos))); + } + else + { + return 1; + } + } + + // return contents of a web url as an array or false if timeout + function gethttpsocketfile($file) + { + global $phpgw_info; + + $server = str_replace('http://','',$file); + $file = strstr($server,'/'); + $server = str_replace($file,'',$server); + if ($phpgw_info['server']['httpproxy_server']) + { + if ($this->open_port($server,80, 15)) + { + if (! $this->write_port('GET http://' . $server . $file . ' HTTP/1.0'."\n\n")) + { + return False; + } + $i = 0; + while ($line = $this->read_port()) + { + if (feof($this->socket)) + { + break; + } + $lines[] = $line; + $i++; + } + $this->close_port(); + return $lines; + } + else + { + return False; + } + } + else + { + if ($this->open_port($server, 80, 15)) + { + if (!$this->write_port('GET '.$file.' HTTP/1.0'."\n".'Host: '.$server."\n\n")) + { + return 0; + } + while ($line = $this->read_port()) + { + $lines[] = $line; + } + $this->close_port(); + return $lines; + } + else + { + return 0; + } + } + } }