]> git.wh0rd.org Git - patches.git/blob - telnetd-ptmx.patch
initial import
[patches.git] / telnetd-ptmx.patch
1 Index: user/telnetd/sys_term.c
2 ===================================================================
3 RCS file: /usr/local/src/blackfin/rsync/uclinux533/uClinux-dist/user/telnetd/sys_term.c,v
4 retrieving revision 1.2
5 diff -u -p -r1.2 sys_term.c
6 --- user/telnetd/sys_term.c     25 Jul 2005 06:44:04 -0000      1.2
7 +++ user/telnetd/sys_term.c     9 Sep 2006 03:36:52 -0000
8 @@ -453,6 +453,27 @@ int getpty(void) {
9      int p;
10  #ifndef CRAY
11  
12 +#ifdef USE_PTMX
13 +       char *pts;
14 +       int ptm = open("/dev/ptmx", O_RDWR | O_NOCTTY);
15 +       if (ptm < 0)
16 +               fatalperror(net, "Could not open /dev/ptmx");
17 +       if (grantpt(ptm) < 0)
18 +               fatalperror(net, "Could not grantpt(/dev/ptmx)");
19 +       if (unlockpt(ptm) < 0)
20 +               fatalperror(net, "Could not unlockpt(/dev/ptmx)");
21 +       pts = ptsname(ptm);
22 +       if (pts == NULL)
23 +               fatalperror(net, "Could not get ptsname()");
24 +       free(line);
25 +       line = strdup(pts);
26 +       ptyslavefd = open(pts, O_RDWR | O_NOCTTY);
27 +       if (ptyslavefd < 0)
28 +               fatalperror(net, "Could not open slave pty");
29 +
30 +       return ptm;
31 +#else
32 +
33  #ifndef DEVFS
34      char *p1, *p2;
35      int i,j;
36 @@ -502,6 +523,8 @@ int getpty(void) {
37  
38  #endif /* DEVFS */
39  
40 +#endif /* PTMX */
41 +
42  #else  /* CRAY */
43      int npty;
44      extern lowpty, highpty;