I was just about to reply that I found the problem, and you are correct.
Fgets was reaching EOF, finding nothing, and tripping the die().  I was
killing myself, quite literally.  Thanks!

-biv

------
Ben Vaughn
Security Analyst
Blackbird Technologies
703-796-1438 W / 703-868-5258 C
[EMAIL PROTECTED]
------
 

-----Original Message-----
From: Marek Kilimajer [mailto:[EMAIL PROTECTED]] 
Sent: Tuesday, January 07, 2003 11:57 AM
To: Ben Vaughn
Cc: [EMAIL PROTECTED]
Subject: Re: [PHP] Issues w/ WHOIS and Fgets


try 
if(($packet = fgets($fp, 4096)) === false) die(...);

instead. The same for array_push

Ben Vaughn wrote:

>Hello,
>
>       Long time reader, first time e-mailer :-).  I am having a pretty
>strange issue with fgets and a socket, and was hoping that perhaps
>someone here can help me.  First, my code:
>
>function dowhois($who) {
>
>        $data = array("");
>
>        $whom = trim($who);
>
>        $fp = fsockopen ("127.0.0.1", 43, $errno, $errstr, 30) or
>die("Could not open socket to proxy");
>
>        if (!$fp) {
>                die("$errstr ($errno)\n");
>        } else {
>                fputs ($fp, "$whom\r\n") or die("Could not write to
>socket");
>                while ($fp && !feof($fp)) {
>                        $packet = fgets($fp, 4096) or die("Could not
>read from socket");
>                        array_push($data, $packet) or die("Could not
>push data into array");
>                }
>        fclose ($fp);
>        }
>        return $data;
>}
>
>As you can see, this is a function that accepts a string as an argument
>and is supposed to open a connection to a local WHOIS server, query for
>that string and return the results in an array.  Unfortunately, when I
>call this function I always trip the third die();, "Could not read from
>socket."  fgets always trips this.  I am running PHP 4.3.0.  I will
also
>share some things I have learned in the last two days worth of
>problem-solving:
>
>- If I use fread instead of fget, I can pull the data, although it
looks
>pretty worthless (I need \n terminated to parse the output properly)
>- Changing $fp from blocking to non-blocking alleviates no problems
>- Changing the max line length to anything does not cause issues
>- I have turned on auto_detect_line_endings to no avail
>- I have a pretty much identical script that does an HTTP query and
that
>works.  3rd party php scripts that use sockets also work.  It seems
that
>WHOIS is      causing the problem?
>
>
>Thanks for any help anyone can provide!
>
>Regards,
>Ben
>
>------
>Ben Vaughn
>Security Analyst
>Blackbird Technologies
>703-796-1438 W / 703-868-5258 C
>[EMAIL PROTECTED]
>------
> 
>  
>

BEGIN:VCARD
VERSION:2.1
N:Vaughn;Ben
FN:Ben Vaughn
TEL;WORK;VOICE:703.796.1438
TEL;HOME;VOICE:703.205.9719
TEL;CELL;VOICE:703.868.5258
ADR;WORK:;217-C
LABEL;WORK:217-C
EMAIL;PREF;INTERNET:[EMAIL PROTECTED]
REV:20020607T194757Z
END:VCARD

Attachment: smime.p7s
Description: application/pkcs7-signature

Reply via email to