Diff for /libaitio/src/aitio.c between versions 1.17.8.2 and 1.17.8.3

version 1.17.8.2, 2016/08/10 14:01:51 version 1.17.8.3, 2016/08/10 14:19:50
Line 156  ioPromptPassword(int *h, const char *csPrompt, char *  Line 156  ioPromptPassword(int *h, const char *csPrompt, char * 
         int ret, ok = 0;          int ret, ok = 0;
         FILE *inp, *out;          FILE *inp, *out;
         char szLine[2][STRSIZ];          char szLine[2][STRSIZ];
   #ifndef __linux__
         struct sgttyb tty_state;          struct sgttyb tty_state;
   #else
           struct termios o;
   #endif
   
         if (!psPass || !passLen)          if (!psPass || !passLen)
                 return -1;                  return -1;
Line 172  ioPromptPassword(int *h, const char *csPrompt, char *  Line 176  ioPromptPassword(int *h, const char *csPrompt, char * 
                 return -1;                  return -1;
         }          }
   
   #ifndef __linux__
         if (ioctl(fileno(inp), TIOCGETP, &tty_state) == -1) {          if (ioctl(fileno(inp), TIOCGETP, &tty_state) == -1) {
                 LOGERR;                  LOGERR;
                 return -1;                  return -1;
Line 182  ioPromptPassword(int *h, const char *csPrompt, char *  Line 187  ioPromptPassword(int *h, const char *csPrompt, char * 
                         return -1;                          return -1;
                 }                  }
         }          }
   #else
           if (tcgetattr(fileno(inp), &o) == -1) {
                   LOGERR;
                   return -1;
           } else {
                   o.c_lflag &= ~ECHO;
                   if (tcsetattr(fileno(inp), TCSANOW, &o) == -1) {
                           LOGERR;
                           return -1;
                   }
           }
   #endif
   
         while (!ok) {          while (!ok) {
                 switch ((ret = ioPromptRead(h, (!csPrompt || !*csPrompt) ? "Password:" : csPrompt,                   switch ((ret = ioPromptRead(h, (!csPrompt || !*csPrompt) ? "Password:" : csPrompt, 
Line 218  ioPromptPassword(int *h, const char *csPrompt, char *  Line 235  ioPromptPassword(int *h, const char *csPrompt, char * 
         }          }
   
 next:  next:
   #ifndef __linux__
         tty_state.sg_flags |= ECHO;          tty_state.sg_flags |= ECHO;
         if (ioctl(fileno(inp), TIOCSETP, &tty_state) == -1) {          if (ioctl(fileno(inp), TIOCSETP, &tty_state) == -1) {
                 LOGERR;                  LOGERR;
                 return -1;                  return -1;
         }          }
   #else
           o.c_lflag |= ECHO;
           if (tcsetattr(fileno(inp), TCSANOW, &o) == -1) {
                   LOGERR;
                   return -1;
           }
   #endif
   
         return ok;          return ok;
 }  }
Line 286  int Line 311  int
 ioWatchDirLoop(const char *csDir, int (*callback)(const char *csName, int nOp))  ioWatchDirLoop(const char *csDir, int (*callback)(const char *csName, int nOp))
 {  {
         glob_t g[2] = {{ 0 }, { 0 }};          glob_t g[2] = {{ 0 }, { 0 }};
        int d, kq, n = 0;        int d, n = 0;
         register int j, i;          register int j, i;
   #ifndef __linux__
           int kq;
         struct kevent req, chg;          struct kevent req, chg;
   #endif
         char wrk[MAXPATHLEN * 2], str[MAXPATHLEN] = { 0 };          char wrk[MAXPATHLEN * 2], str[MAXPATHLEN] = { 0 };
   
         if (!csDir || !callback)          if (!csDir || !callback)
Line 297  ioWatchDirLoop(const char *csDir, int (*callback)(cons Line 325  ioWatchDirLoop(const char *csDir, int (*callback)(cons
         strlcpy(str, csDir, MAXPATHLEN);          strlcpy(str, csDir, MAXPATHLEN);
         strlcat(str, "/*", MAXPATHLEN);          strlcat(str, "/*", MAXPATHLEN);
   
        kq = kqueue();        d = open(csDir, O_RDONLY);
        if (kq == -1) {        if (d == -1) {
                 LOGERR;                  LOGERR;
                 return -1;                  return -1;
         }          }
        d = open(csDir, O_RDONLY);
        if (d == -1) {#ifndef __linux__
         kq = kqueue();
         if (kq == -1) {
                 LOGERR;                  LOGERR;
                close(kq);                close(d);
                 return -1;                  return -1;
         }          }
   
         EV_SET(&req, d, EVFILT_VNODE, EV_ADD | EV_CLEAR, NOTE_WRITE, 0, 0);          EV_SET(&req, d, EVFILT_VNODE, EV_ADD | EV_CLEAR, NOTE_WRITE, 0, 0);
   #endif
   
         if ((n = glob(str, GLOB_NOCHECK, NULL, &g[0]))) {          if ((n = glob(str, GLOB_NOCHECK, NULL, &g[0]))) {
                 LOGERR;                  LOGERR;
                 close(d);                  close(d);
   #ifndef __linux__
                 close(kq);                  close(kq);
   #endif
                 return -1;                  return -1;
         } /*else          } /*else
                 ioDEBUG(3, "Start files %d in %s\n", g[0].gl_matchc, str);*/                  ioDEBUG(3, "Start files %d in %s\n", g[0].gl_matchc, str);*/
   
   #ifndef __linux__
         while (kevent(kq, &req, 1, &chg, 1, NULL) > 0) {          while (kevent(kq, &req, 1, &chg, 1, NULL) > 0) {
                 /*ioDEBUG(1, "Event:: req=0x%x -> chg=0x%x data=%x\n", req.fflags, chg.fflags, chg.data);*/                  /*ioDEBUG(1, "Event:: req=0x%x -> chg=0x%x data=%x\n", req.fflags, chg.fflags, chg.data);*/
   
Line 380  ioWatchDirLoop(const char *csDir, int (*callback)(cons Line 414  ioWatchDirLoop(const char *csDir, int (*callback)(cons
                         g[0] = g[1];                          g[0] = g[1];
                 }                  }
         }          }
   #endif
   
         globfree(&g[0]);          globfree(&g[0]);
        close(d);#ifndef __linux__
         close(kq);          close(kq);
   #endif
           close(d);
         return n;          return n;
 }  }
   

Removed from v.1.17.8.2  
changed lines
  Added in v.1.17.8.3


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>