[OpenVMPS-devel] External program: answer not being accepted
Brought to you by:
dori_seliskar
From: Sean B. <se...@bo...> - 2005-11-04 15:27:35
|
Hi, I've having problems getting a basic external plug-in to work. I have a simple PHP script: while (true) { $fd = fopen("php://stdin", "r"); $line=rtrim( fgets($fd, 1024) ); if (strlen($line) > 0) { list($domain, $switch, $port, $lastvlan, $mac)=explode(" ", $line); echo("ALLOW $lastvlan\n"); flush(); // don't know if this needed, but doesn't seem to matter } fclose($fd); sleep(1); # wait 1 secs, before retrying } The data arrives OK, but what I send back never seems to be sent by vmpsd, I've tried echo("ALLOW $lastvlan\n\n"); echo("ALLOW $lastvlan\n"); echo("ALLOW $lastvlan"); but no luck. IN vmpsd's external.c is seems to happen around here: write(tocli[1], str, strlen(str)); n = readline(fromcli[0], buf, 255); The first line seems to work fine, the second never comes back. I added in vmps_log(VQP|DEBUG, ">>>> Sending: %s ", str); before the "write" line and this works. When I look at the code for readline() it seems to read char by char until it hits 255 or \n. So it should work. In syslog I see: Nov 3 23:04:37 INOCESvmps1 vmpsd: ================================== Nov 3 23:04:37 INOCESvmps1 vmpsd: VQP Request Nov 3 23:04:37 INOCESvmps1 vmpsd: Unknown: 1 Nov 3 23:04:37 INOCESvmps1 vmpsd: Request Type: 1 Nov 3 23:04:37 INOCESvmps1 vmpsd: Response: 0 Nov 3 23:04:37 INOCESvmps1 vmpsd: No. Data Items: 6 Nov 3 23:04:37 INOCESvmps1 vmpsd: Sequence No.: 4660 Nov 3 23:04:37 INOCESvmps1 vmpsd: Client IP address: 193.111.222.1 Nov 3 23:04:37 INOCESvmps1 vmpsd: Port name: Fa0/17 Nov 3 23:04:37 INOCESvmps1 vmpsd: Vlan name: test Nov 3 23:04:37 INOCESvmps1 vmpsd: Domain name: Domain Nov 3 23:04:37 INOCESvmps1 vmpsd: MAC address: 080020b0cb95 Nov 3 23:04:37 INOCESvmps1 vmpsd: >>>> Sending: Domain 193.111.222.1 Fa0/17 switch1 0800.20b0.cb95 My external sends back: "ALLOW test", but vmpsd never sees it arriving and vmpsd just sits there waiting. Any sugsestions /tips? Thanks, Sean |