Bug #10706: yp_next does not report the next entry in the map
| From: | rabellino at di dot unito dot it | Date: | Mon, 07 May 2001 14:55:22 +0000 |
| Subject: | Bug #10706: yp_next does not report the next entry in the map | ||
| Groups: | php.dev | ||
| Request: | Send a blank email to php-dev+get-54224@lists.php.net to get a copy of this message | ||
From: rabellino@di.unito.it
Operating system: Solaris
PHP version: 4.0.5
PHP Bug Type: YP/NIS related
Bug description: yp_next does not report the next entry in the map
If I use the Key returned from yp_first or yp_next, on my systems (Solaris 2.6/2.7/2.8 either
sparc/Intel), the yp_next return every time the same entry.
I've discovered, after some hours of debugging, that php add a CR at the end of the key, so the
keylength is bigger than the real keylength of 1 char.
Stripping it, php is definitely happy.
I wrote some lines to show that... use them as you think better
Thanks.
<?php
// Code By Rabellino Sergio
// Department of Computer Science of Torino - Italy
// Rabellino@di.unito.it
echo"<PRE>";
$map="passwd.byname";
$domain = yp_get_default_domain();
echo "Map ".$map." for domain: " . $domain." is \n";
// Get the first entry from YP
$entry = yp_first($domain, $map);
// Extract key and value
$key = $entry ["key"];
$value = $entry ["value"];
// Print key and value
echo $key;
echo $value;
// Remove the CR at the end of the key ... (? Solaris requirement only ?)
$key=substr($key,0,strlen($key)-1);
// the start the cycle to get the others values
while( is_array($entry = yp_next ($domain, "passwd.byname", $key)) )
{
// Extract the value
$keyn = key ($entry);
// Print key and value
echo $keyn;
echo $entry[$keyn];
// Remove the CR at the end of the key ... (? Solaris requirement only ?)
$key=substr($keyn,0,strlen($keyn)-1);
}
echo"</PRE>";
?>
--
Edit Bug report at: http://bugs.php.net/?id=10706&edit=1