- gw_log (GW_LOG_DEBUG, "gips", "open readonly of %s", gip->name);
- gip->rfd = open (gip->name, O_RDONLY);
- gw_log (GW_LOG_DEBUG, "gips", "got rfd %d", gip->rfd);
- gw_log (GW_LOG_DEBUG, "gips", "open writeonly of %s", client);
- gip->wfd = open (client, O_WRONLY);
- gw_log (GW_LOG_DEBUG, "gips", "got wfd %d", gip->wfd);
+ do
+ {
+ gw_log (GW_LOG_DEBUG, module, "open readonly of %s", gip->name);
+ gip->rfd = open (gip->name, block ? O_RDONLY : (O_RDONLY|O_NONBLOCK));
+ gw_log (GW_LOG_DEBUG, module, "got rfd %d", gip->rfd);
+ } while (gip->rfd == -1 && errno == EINTR);
+ do
+ {
+ gw_log (GW_LOG_DEBUG, module, "open writeonly of %s", client);
+ gip->wfd = open (client, block ? O_WRONLY : (O_WRONLY|O_NONBLOCK));
+ gw_log (GW_LOG_DEBUG, module, "got wfd %d", gip->wfd);
+ } while (gip->wfd == -1 && errno == EINTR);