Edit report at https://bugs.php.net/bug.php?id=60779&edit=1

 ID:                 60779
 Comment by:         phpmpan at mpan dot pl
 Reported by:        wojtos at gmail dot com
 Summary:            Incorrect return value for getprotobyname
 Status:             Duplicate
 Type:               Bug
 Package:            *Network Functions
 Operating System:   Debian Squeeze
 PHP Version:        Irrelevant
 Block user comment: N
 Private report:     N

 New Comment:

There is nothing negative in having your post marked as DUP in this case. I 
believe it's purely organisational thing and laruence's intention wasn't 
telling you that you did something wrong. If one of the two reports is closed 
after fixing an issue, the second one needs to be set to DUP. This is not a 
contest on who will get more successful reports ;), so it doesn't matter which 
one it is. The goal was accomplished: PHP is better than it was before.

Don't get discouraged and keep helping to improve PHP.


Previous Comments:
------------------------------------------------------------------------
[2012-01-20 12:01:04] wojtos at gmail dot com

That is a duplicate of this and not the other way around! (id and time).
Anyhow. Glad it's fixed.

------------------------------------------------------------------------
[2012-01-20 02:22:30] larue...@php.net

dup to #60781

------------------------------------------------------------------------
[2012-01-18 08:21:40] wojtos at gmail dot com

Thank You for your reply. Indeed I checked and it does return FALSE. The bug or 
rather misinformation lies in the documentation where it states "Returns the 
protocol number or -1 if the protocol is not found.". When in the test script I 
checked for === FALSE it worked as expected.

------------------------------------------------------------------------
[2012-01-17 16:25:28] phpmpan at mpan dot pl

Or you can't...

Are you sure that you're receiving 0, not `FALSE`? If yes, than I'm NOT 
confirming this behaviour with 5.3.9, 5.3-dev, 5.4-dev or trunk-dev (on 
Arch64). In all four versions `getprotobyname` returns `FALSE`.

Also returning 0 seems very strange. PHP just forwards the call to 
`getprotobyname` from netdb. In case of an error or if a protocol is not found, 
this function should return `NULL`. PHP checks if the call has returned `NULL` 
and, if it did, returns `FALSE`. Therefore if you're receiving 0, this would 
indicate a bug in the host environment, not in PHP itself.

-------- BEGIN CODE --------
// ext/standard/basic_functions.c from SVN
// ...
ent = getprotobyname(name);

if (ent == NULL) {
    RETURN_FALSE;
}
// ...
--------- END CODE ---------

------------------------------------------------------------------------
[2012-01-17 15:46:49] phpmpan at mpan dot pl

This is not a bug in `getprotobyname`. It's a bug in documentation for the 
function. `getprotobyname` returns `FALSE`, not 0 in case of an error. I will 
fill a report for that in a moment. You can close this one.

------------------------------------------------------------------------


The remainder of the comments for this report are too long. To view
the rest of the comments, please view the bug report online at

    https://bugs.php.net/bug.php?id=60779


-- 
Edit this bug report at https://bugs.php.net/bug.php?id=60779&edit=1

Reply via email to