Changeset 4573 for trunk/Ohana/src/opihi/pantasks/ControllerOps.c
- Timestamp:
- Jul 16, 2005, 6:01:28 AM (21 years ago)
- File:
-
- 1 edited
-
trunk/Ohana/src/opihi/pantasks/ControllerOps.c (modified) (6 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/Ohana/src/opihi/pantasks/ControllerOps.c
r4552 r4573 5 5 static int status = FALSE; 6 6 static int stdin_cntl, stdout_cntl, stderr_cntl; 7 static IOBuffer stdout_buffer; 8 static IOBuffer stderr_buffer; 7 9 8 10 int CheckControllerStatus () { … … 108 110 line = NULL; 109 111 status = -1; 110 for (i = 0; (i < CONTROLLER_TIMEOUT) && (status == -1) && (line == NULL); i++) {112 for (i = 0; (i < CONTROLLER_TIMEOUT) && (status != 0) && (line == NULL); i++) { 111 113 status = ReadtoIOBuffer (buffer, stdout_cntl); 112 114 if ((buffer[0].Nbuffer - Nstart) >= Nbytes) { … … 261 263 p = NULL; 262 264 status = -1; 263 for (i = 0; (i < CONNECT_TIMEOUT) && (status == -1) && (p == NULL); i++) {265 for (i = 0; (i < CONNECT_TIMEOUT) && (status != 0) && (p == NULL); i++) { 264 266 status = ReadtoIOBuffer (&buffer, stdout_fd[0]); 265 267 p = memstr (buffer.buffer, "CONNECTED", buffer.Nbuffer); … … 274 276 stdout_cntl = stdout_fd[0]; 275 277 stderr_cntl = stderr_fd[0]; 278 279 InitIOBuffer (&stdout_buffer, 0x100); 280 InitIOBuffer (&stderr_buffer, 0x100); 276 281 277 282 fprintf (stderr, "Connected\n"); … … 319 324 line = NULL; 320 325 status = -1; 321 for (i = 0; (i < CONTROLLER_TIMEOUT) && (status == -1) && (line == NULL); i++) {326 for (i = 0; (i < CONTROLLER_TIMEOUT) && (status != 0) && (line == NULL); i++) { 322 327 status = ReadtoIOBuffer (buffer, stdout_cntl); 323 328 line = memstr (buffer[0].buffer, response, buffer[0].Nbuffer); … … 330 335 } 331 336 337 int CheckControllerOutput () { 338 339 int Nread; 340 341 /* read stdout buffer */ 342 Nread = ReadtoIOBuffer (&stdout_buffer, stdout_cntl); 343 switch (Nread) { 344 case -2: /* error in read (programming error? system level error?) */ 345 fprintf (stderr, "serious IO error\n"); 346 exit (2); 347 case -1: /* no data in pipe */ 348 break; 349 case 0: /* pipe is closed */ 350 /** change child state? **/ 351 break; 352 default: /* data in pipe */ 353 break; 354 } 355 356 /* read stderr buffer */ 357 Nread = ReadtoIOBuffer (&stderr_buffer, stderr_cntl); 358 switch (Nread) { 359 case -2: /* error in read (programming error? system level error?) */ 360 fprintf (stderr, "serious IO error\n"); 361 exit (2); 362 case -1: /* no data in pipe */ 363 break; 364 case 0: /* pipe is closed */ 365 /** change child state? **/ 366 break; 367 default: /* data in pipe */ 368 break; 369 } 370 return (TRUE); 371 } 372 373 int PrintControllerOutput () { 374 375 fprintf (stderr, "--- stdout ---\n"); 376 fwrite (stdout_buffer.buffer, 1, stdout_buffer.Nbuffer, stderr); 377 fprintf (stderr, "--- stdout ---\n"); 378 fwrite (stderr_buffer.buffer, 1, stderr_buffer.Nbuffer, stderr); 379 fprintf (stderr, "--- done ---\n"); 380 return (TRUE); 381 } 382 383 332 384 /* memstr returns a view, not an allocated string : don't free */
Note:
See TracChangeset
for help on using the changeset viewer.
