function connect() {
if (empty($this->nntp_host)) {
$this->ERROR_MSG = $this->ERR_NNTP_HOST_NOT_SET;
return false; } •
$this->socket = fsockopen($this->nntp_host, $this->nntp_port, &$err_no, &$errstr);
if (!$this->socket) {
if (!$err_no) $err_str = $this->ERR_INIT_SOCKET_ERROR; $this->ERROR_MSG = $thiS->ERR_NNTP_CONNECTION_FAILED
. " $err_no: $err_str";
return false;
if (!$this->getResponse()) {
$tfiis->ERROR_MSG = $this->ERR_UNKNOWN_RESPONSE_FROM_SERVER .
":" . $this->response_msg; return false;
}
if ($this->response_code == 200) return true; else: if <$this->response_code == 201) {
$this~>ERROR_MSG = $thiS->ERR_POSTING_NOT^ALLOWED;
return false; } else {
$this->ERROR„MSG = $this->ERR_NNTP_CONNECTION„FAILEO;
return false;
}
return true;
. } getResponse()
Этот метод разбирает на части ответ, возвращенный сервером, и записывает код ответа и строку комментария в свойства $response_code и $response_msg соответственно. Единственное отличие от прежней версии касается сообщения, записываемого в случае ошибки:
function getResponseO
if (!$this->socket) {
* $this->ERROR_MSG = $this->ERR„NNTP_NOT_CONNECTED;
return false; :
) ■
$server_response = fgets($thi s-> soc ket, 1024); if (ereg(""([0-9]{3} )(■.*)$", $server_response, $match)) { $this->response_code = $match[1]; $this->response_msg = $match[2]; return true;
$this->response_msg = $server_response; return false;
}
talk()
Метод talk() весьма схож с тем же методом в классе tny_srntр. Единственное отличие состоит в кодах ответов сервера, которые указывают на успешное выполнение операции:
function talk($cmd, $arg=") {
if (!$this->socket> {
$this->ERROR_MSG = $this->ERR_NNTP_NOT_CONNECTED;
return false; {
)
switch ($cmd) {
Для отправки статьи команда GROUP не нужна. Она применяется для проверки классом имени телеконференции:
case "GROUP":
if (empty($arg)) {
$this->ERROR_MSG = $this->ERR_GROUPJ/ITHOUT_ARG;
return false;
}
$nntp_cmd = "GROUP $arg\r\n"; fwrite($this->socket, $nntp_cmd); if (!$this->getResponse()) {
$this->ERROR_MSG = $this->ERR_UNKNOWN_RESPONSE_FROM_SERVER .
":" . $this->response_msg; return false;
. ) , ' 1
.: if ($this->response_code I = 211 &&
$this->response_code != 411) { $this->ERROR_MSG = $this->ERR_GROUP_FAILED . " " .