Hello there,
Well i signed up to the mailing list having in mind i would pick
anything as far as php is concerned because am just trying to try to
learn php. It is on this not therefore that i request any one out
there to help me introduce to php, any links that are helpful to
beginners etc and any other kind of help.
Hear from u soon,
Franciuos.

On 8/23/07, [EMAIL PROTECTED] <[EMAIL PROTECTED]> wrote:
>  ID:               42387
>  Updated by:       [EMAIL PROTECTED]
>  Reported By:      chad at herballure dot com
>  Status:           Open
> -Bug Type:         Streams related
> +Bug Type:         Documentation problem
>  Operating System: Linux
>  PHP Version:      5.2.4RC2
>  New Comment:
>
> It's not an error callback, it's notification callback.
> Try this and you'll see what it actually does:
>
> <?php
>
> function stream_err()
> {
>   $args = func_get_args();
>   var_dump($args);
> }
>
> $ctx =
> stream_context_create(array('http'=>array('method'=>"GET",'header'=>"Accept-language:
> en\r\nCookie: foo=bar\r\n")));
> $ret = stream_context_set_params($ctx,
> array('notification'=>'stream_err'));
> $fp = fopen('http://www.example.com', 'r', false, $ctx);
>
> ?>
>
> The streams documentation really needs some loving care.. :)
>
>
> Previous Comments:
> ------------------------------------------------------------------------
>
> [2007-08-22 18:34:48] chad at herballure dot com
>
> Description:
> ------------
> The streams API doesn't appear to actually call the error callback.
> This is definitely true if the connection fails, or if the expected
> hostname doesn't match the SSL certificate. In the latter case, there is
> no reliable way of detecting the error.
>
> The reproduce code is a cut-down version of a test script being run
> through the CLI, while I figure out the streams API. I get the same
> behavior from 5.2.3 and 5.2.4RC2.
>
> Reproduce code:
> ---------------
> <?php
>
> $HOST_NAME = 'secureservicesonline.com';
> $CA_DIR = '/etc/ssl/certs'; // change this if needed
>
> function stream_err() {
>   $args = func_get_args();
>   echo("[stream_err, args=");
>   print_r($args); // which are undocumented, btw
>   echo("]\n");
> }
>
> $ctx = stream_context_create(array('ssl'=>array('verify_peer' => true,
> 'CN_match' => "$HOST_NAME.invalid", 'capath'=>$CA_DIR)));
> $ret = stream_context_set_params($ctx,
> array('notification'=>'stream_err'));
>
> var_dump($ret);
>
> $errno = $errstr = null;
> $fp = stream_socket_client("ssl://$HOST_NAME:443", $errno, $errstr, 30,
> STREAM_CLIENT_CONNECT, $ctx);
>
> var_dump($errno);
> var_dump($errstr);
>
> if( $fp !== false ) {
>   fclose($fp);
> }
>
> ?>
>
> Expected result:
> ----------------
> [stream_err, args=Array ( ...... )]
>
> Actual result:
> --------------
> PHP Warning:  stream_socket_client(): Peer certificate
> CN=`secureservicesonline.com' did not match expected
> CN=`secureservicesonline.com.invalid' in /.../https_client.php on line
> 52
>
> Warning: stream_socket_client(): Peer certificate
> CN=`secureservicesonline.com' did not match expected
> CN=`secureservicesonline.com.invalid' in /.../https_client.php on line
> 52
>
>
>
> ------------------------------------------------------------------------
>
>
> --
> Edit this bug report at http://bugs.php.net/?id=42387&edit=1
>


-- 
sfx

Reply via email to