Hi,

I was skimming trough the code some more when I found some more
duplicated code. getconsolefd in vt.c and console_fd suspend.c. The
differences are that console_fd opens like:

  fd = open(fname, O_RDONLY);
       if (fd < 0 && errno == EACCES)
               fd = open(fname, O_WRONLY);

and getconsolefd

    fd = open(fnam, O_RDWR);
        if (fd < 0)
                return -1;

Also getconsolefd tries a bunch of device nodes, while console_fd only
tries /dev/console.

Attached patch makes resume use getconsolefd.

What do you think?

--- suspend.c   2007-01-24 13:43:55.000000000 +0100
+++ suspend.c   2007-01-24 14:02:54.000000000 +0100
@@ -828,26 +828,6 @@
        return error;
 }
 
-/**
- *     console_fd - get file descriptor for given file name and verify
- *     if that's a console descriptor (based on the code of openvt)
- */
-
-static inline int console_fd(const char *fname)
-{
-       int fd;
-       char arg;
-
-       fd = open(fname, O_RDONLY);
-       if (fd < 0 && errno == EACCES)
-               fd = open(fname, O_WRONLY);
-       if (fd >= 0 && (ioctl(fd, KDGKBTYPE, &arg) || (arg != KB_101 && arg != 
KB_84))) {
-               close(fd);
-               return -ENOTTY;
-       }
-       return fd;
-}
-
 #ifndef TIOCL_GETKMSGREDIRECT
 #define TIOCL_GETKMSGREDIRECT  17
 #endif
@@ -867,7 +847,7 @@
        struct vt_stat vtstat;
        char clear_vt, tiocl[2];
 
-       fd = console_fd("/dev/console");
+       fd = getconsolefd();
        if (fd < 0)
                return fd;
 

-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys - and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
Suspend-devel mailing list
Suspend-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/suspend-devel

Reply via email to