[Asterisk-bsd] O_NONBLOCK in app_dahdiscan.c

Michel Seliverstoff michel at seliverstoff.fr
Wed Apr 7 13:02:17 CDT 2010


Hello,
is it possible to change apps/app_dahdiscan.c line fd = 
open(DAHDI_FILE_PSEUDO, O_RDWR); somehow setting the O_NONBLOCK flag 
after opening the file doesn't work on freebsd 7.2.
Thanks,
Michel

--- apps/app_dahdiscan.orig 2008-12-19 14:48:00.000000000 -0500
+++ apps/app_dahdiscan.c    2009-12-04 10:41:27.000000000 -0500
@@ -135,23 +135,11 @@
  zapretry:
    origfd = chan->fds[0];
    if (retryzap) {
-       fd = open(DAHDI_FILE_PSEUDO, O_RDWR);
+       fd = open(DAHDI_FILE_PSEUDO, O_RDWR | O_NONBLOCK);
        if (fd < 0) {
            ast_log(LOG_WARNING, "Unable to open pseudo channel: %s\n", 
strerror(errno));
            goto outrun;
        }
-       /* Make non-blocking */
-       flags = fcntl(fd, F_GETFL);
-       if (flags < 0) {
-           ast_log(LOG_WARNING, "Unable to get flags: %s\n", 
strerror(errno));
-           close(fd);
-                        goto outrun;
-       }
-       if (fcntl(fd, F_SETFL, flags | O_NONBLOCK)) {
-           ast_log(LOG_WARNING, "Unable to set flags: %s\n", 
strerror(errno));
-           close(fd);
-           goto outrun;
-       }
        /* Setup buffering information */
        memset(&bi, 0, sizeof(bi));
        bi.bufsize = CONF_SIZE;





More information about the Asterisk-BSD mailing list