original_string: public function doSslHandshake($socket){
          if (feof($socket)) {
              $this->destroy();
              return false;
          }
          $async = $this instanceof AsyncTcpConnection;
          
          /**
            *  We disabled ssl3 because https://blog.qualys.com/ssllabs/2014/10/15/ssl-3-is-dead-killed-by-the-poodle-attack.
            *  You can enable ssl3 by the codes below.
            */
          /*if($async){
              $type = STREAM_CRYPTO_METHOD_SSLv2_CLIENT | STREAM_CRYPTO_METHOD_SSLv23_CLIENT | STREAM_CRYPTO_METHOD_SSLv3_CLIENT;
          }else{
              $type = STREAM_CRYPTO_METHOD_SSLv2_SERVER | STREAM_CRYPTO_METHOD_SSLv23_SERVER | STREAM_CRYPTO_METHOD_SSLv3_SERVER;
          }*/
          
          if($async){
              $type = STREAM_CRYPTO_METHOD_SSLv2_CLIENT | STREAM_CRYPTO_METHOD_SSLv23_CLIENT;
          }else{
              $type = STREAM_CRYPTO_METHOD_SSLv2_SERVER | STREAM_CRYPTO_METHOD_SSLv23_SERVER;
          }
          
          // Hidden error.
          set_error_handler(function($errno, $errstr, $file){
              if (!Worker::$daemonize) {
                  Worker::safeEcho("SSL handshake error: $errstr \n");
              }
          });
          $ret     = stream_socket_enable_crypto($socket, true, $type);
          restore_error_handler();
          // Negotiation has failed.
          if (false === $ret) {
              $this->destroy();
              return false;
          } elseif (0 === $ret) {
              // There isn't enough data and should try again.
              return false;
          }
          if (isset($this->onSslHandshake)) {
              try {
                  call_user_func($this->onSslHandshake, $this);
              } catch (\Exception $e) {
                  Worker::log($e);
                  exit(250);
              } catch (\Error $e) {
                  Worker::log($e);
                  exit(250);
              }
          }
          return true;
      }
code: public function doSslHandshake($socket){
          if (feof($socket)) {
              $this->destroy();
              return false;
          }
          $async = $this instanceof AsyncTcpConnection;
          
          /**
            *  We disabled ssl3 because https://blog.qualys.com/ssllabs/2014/10/15/ssl-3-is-dead-killed-by-the-poodle-attack.
            *  You can enable ssl3 by the codes below.
            */
          /*if($async){
              $type = STREAM_CRYPTO_METHOD_SSLv2_CLIENT | STREAM_CRYPTO_METHOD_SSLv23_CLIENT | STREAM_CRYPTO_METHOD_SSLv3_CLIENT;
          }else{
              $type = STREAM_CRYPTO_METHOD_SSLv2_SERVER | STREAM_CRYPTO_METHOD_SSLv23_SERVER | STREAM_CRYPTO_METHOD_SSLv3_SERVER;
          }*/
          
          if($async){
              $type = STREAM_CRYPTO_METHOD_SSLv2_CLIENT | STREAM_CRYPTO_METHOD_SSLv23_CLIENT;
          }else{
              $type = STREAM_CRYPTO_METHOD_SSLv2_SERVER | STREAM_CRYPTO_METHOD_SSLv23_SERVER;
          }
          
          // Hidden error.
          set_error_handler(function($errno, $errstr, $file){
              if (!Worker::$daemonize) {
                  Worker::safeEcho("SSL handshake error: $errstr \n");
              }
          });
          $ret     = stream_socket_enable_crypto($socket, true, $type);
          restore_error_handler();
          // Negotiation has failed.
          if (false === $ret) {
              $this->destroy();
              return false;
          } elseif (0 === $ret) {
              // There isn't enough data and should try again.
              return false;
          }
          if (isset($this->onSslHandshake)) {
              try {
                  call_user_func($this->onSslHandshake, $this);
              } catch (\Exception $e) {
                  Worker::log($e);
                  exit(250);
              } catch (\Error $e) {
                  Worker::log($e);
                  exit(250);
              }
          }
          return true;
      }
code_tokens: public function doSslHandshake ( $ socket ) { if ( feof ( $ socket ) ) { $ this -> destroy ( ) ; return false ; } $ async = $ this instanceof AsyncTcpConnection ; /**
            *  We disabled ssl3 because https://blog.qualys.com/ssllabs/2014/10/15/ssl-3-is-dead-killed-by-the-poodle-attack.
            *  You can enable ssl3 by the codes below.
            */ /*if($async){
              $type = STREAM_CRYPTO_METHOD_SSLv2_CLIENT | STREAM_CRYPTO_METHOD_SSLv23_CLIENT | STREAM_CRYPTO_METHOD_SSLv3_CLIENT;
          }else{
              $type = STREAM_CRYPTO_METHOD_SSLv2_SERVER | STREAM_CRYPTO_METHOD_SSLv23_SERVER | STREAM_CRYPTO_METHOD_SSLv3_SERVER;
          }*/ if ( $ async ) { $ type = STREAM_CRYPTO_METHOD_SSLv2_CLIENT | STREAM_CRYPTO_METHOD_SSLv23_CLIENT ; } else { $ type = STREAM_CRYPTO_METHOD_SSLv2_SERVER | STREAM_CRYPTO_METHOD_SSLv23_SERVER ; } // Hidden error. set_error_handler ( function ( $ errno , $ errstr , $ file ) { if ( ! Worker :: $ daemonize ) { Worker :: safeEcho ( "SSL handshake error: $errstr \n" ) ; } } ) ; $ ret = stream_socket_enable_crypto ( $ socket , true , $ type ) ; restore_error_handler ( ) ; // Negotiation has failed. if ( false === $ ret ) { $ this -> destroy ( ) ; return false ; } elseif ( 0 === $ ret ) { // There isn't enough data and should try again. return false ; } if ( isset ( $ this -> onSslHandshake ) ) { try { call_user_func ( $ this -> onSslHandshake , $ this ) ; } catch ( \ Exception $ e ) { Worker :: log ( $ e ) ; exit ( 250 ) ; } catch ( \ Error $ e ) { Worker :: log ( $ e ) ; exit ( 250 ) ; } } return true ; }
docstring: SSL handshake.
  
  @param $socket
  @return bool
docstring_tokens: SSL handshake .