Fix to xfrd stream handling which was messing up save/restore/migrate on some systems.
Signed-off-by: ian@xensource.com
/** IOStream for stderr. */
IOStream *iostderr = &_iostderr;
-/** Get the underlying FILE*.
- *
+/* Get the underlying FILE*.
+ *
* @param s file stream
* @return the stream s wraps
*/
static inline FILE *get_file(IOStream *s){
- switch((long)s->data){
- case 1: s->data = stdin; break;
- case 2: s->data = stdout; break;
- case 3: s->data = stderr; break;
- }
- return (FILE*)s->data;
+ FILE *data = NULL;
+ switch((long)s->data){
+ case 1:
+ data = stdin;
+ break;
+ case 2:
+ data = stdout;
+ break;
+ case 3:
+ data = stderr;
+ break;
+ default:
+ data = (FILE*)s->data;
+ break;
+ }
+ return data;
}
/** Control buffering on the underlying stream, like setvbuf().
}
iprintf("> Accepted connection from %s:%d on %d\n",
inet_ntoa(peer_in.sin_addr), htons(peer_in.sin_port), sock);
+ fflush(stdout);
+ fflush(stderr);
pid = fork();
if(pid > 0){
// Parent, fork succeeded.