original_string: protected function connect()
      {
          $errno = null;
          $errstr = null;
          if ( $this->options->connectionType !== self::CONNECTION_PLAIN &&
               !ezcBaseFeatures::hasExtensionSupport( 'openssl' ) )
          {
              throw new ezcBaseExtensionNotFoundException( 'openssl', null, "PHP not configured --with-openssl." );
          }
          if ( count( $this->options->connectionOptions ) > 0 )
          {
              $context = stream_context_create( $this->options->connectionOptions );
              $this->connection = @stream_socket_client( "{$this->options->connectionType}://{$this->serverHost}:{$this->serverPort}",
                                                         $errno, $errstr, $this->options->timeout, STREAM_CLIENT_CONNECT, $context );
          }
          else
          {
              $this->connection = @stream_socket_client( "{$this->options->connectionType}://{$this->serverHost}:{$this->serverPort}",
                                                         $errno, $errstr, $this->options->timeout );
          }
  
          if ( is_resource( $this->connection ) )
          {
              stream_set_timeout( $this->connection, $this->options->timeout );
              $this->status = self::STATUS_CONNECTED;
              $greeting = $this->getData();
              $this->login();
          }
          else
          {
              throw new ezcMailTransportSmtpException( "Failed to connect to the smtp server: {$this->serverHost}:{$this->serverPort}." );
          }
      }
code: protected function connect()
      {
          $errno = null;
          $errstr = null;
          if ( $this->options->connectionType !== self::CONNECTION_PLAIN &&
               !ezcBaseFeatures::hasExtensionSupport( 'openssl' ) )
          {
              throw new ezcBaseExtensionNotFoundException( 'openssl', null, "PHP not configured --with-openssl." );
          }
          if ( count( $this->options->connectionOptions ) > 0 )
          {
              $context = stream_context_create( $this->options->connectionOptions );
              $this->connection = @stream_socket_client( "{$this->options->connectionType}://{$this->serverHost}:{$this->serverPort}",
                                                         $errno, $errstr, $this->options->timeout, STREAM_CLIENT_CONNECT, $context );
          }
          else
          {
              $this->connection = @stream_socket_client( "{$this->options->connectionType}://{$this->serverHost}:{$this->serverPort}",
                                                         $errno, $errstr, $this->options->timeout );
          }
  
          if ( is_resource( $this->connection ) )
          {
              stream_set_timeout( $this->connection, $this->options->timeout );
              $this->status = self::STATUS_CONNECTED;
              $greeting = $this->getData();
              $this->login();
          }
          else
          {
              throw new ezcMailTransportSmtpException( "Failed to connect to the smtp server: {$this->serverHost}:{$this->serverPort}." );
          }
      }
code_tokens: protected function connect ( ) { $ errno = null ; $ errstr = null ; if ( $ this -> options -> connectionType !== self :: CONNECTION_PLAIN && ! ezcBaseFeatures :: hasExtensionSupport ( 'openssl' ) ) { throw new ezcBaseExtensionNotFoundException ( 'openssl' , null , "PHP not configured --with-openssl." ) ; } if ( count ( $ this -> options -> connectionOptions ) > 0 ) { $ context = stream_context_create ( $ this -> options -> connectionOptions ) ; $ this -> connection = @ stream_socket_client ( "{$this->options->connectionType}://{$this->serverHost}:{$this->serverPort}" , $ errno , $ errstr , $ this -> options -> timeout , STREAM_CLIENT_CONNECT , $ context ) ; } else { $ this -> connection = @ stream_socket_client ( "{$this->options->connectionType}://{$this->serverHost}:{$this->serverPort}" , $ errno , $ errstr , $ this -> options -> timeout ) ; } if ( is_resource ( $ this -> connection ) ) { stream_set_timeout ( $ this -> connection , $ this -> options -> timeout ) ; $ this -> status = self :: STATUS_CONNECTED ; $ greeting = $ this -> getData ( ) ; $ this -> login ( ) ; } else { throw new ezcMailTransportSmtpException ( "Failed to connect to the smtp server: {$this->serverHost}:{$this->serverPort}." ) ; } }
docstring: Creates a connection to the SMTP server and initiates the login
  procedure.
  
  @todo The @ should be removed when PHP doesn't throw warnings for connect problems
  
  @throws ezcMailTransportSmtpException
  if no connection could be made
  or if the login failed
  @throws ezcBaseExtensionNotFoundException
  if trying to use SSL and the openssl extension is not installed
docstring_tokens: Creates a connection to the SMTP server and initiates the login procedure .