1 /* 2 * Author: Tatu Ylonen <ylo@cs.hut.fi> 3 * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland 4 * All rights reserved 5 * Functions for allocating a pseudo-terminal and making it the controlling 6 * tty. 7 * 8 * As far as I am concerned, the code I have written for this software 9 * can be used freely for any purpose. Any derived versions of this 10 * software must be clearly marked as such, and if the derived work is 11 * incompatible with the protocol description in the RFC file, it must be 12 * called by a name other than "ssh" or "Secure Shell". 13 */ 14 15 /* RCSID("$OpenBSD: sshpty.h,v 1.1 2001/03/04 01:46:30 djm Exp $"); */ 16 17 #ifndef SSHPTY_H 18 #define SSHPTY_H 19 20 /* 21 * Allocates and opens a pty. Returns 0 if no pty could be allocated, or 22 * nonzero if a pty was successfully allocated. On success, open file 23 * descriptors for the pty and tty sides and the name of the tty side are 24 * returned (the buffer must be able to hold at least 64 characters). 25 */ 26 int pty_allocate(int *ptyfd, int *ttyfd, char *ttyname, int ttynamelen); 27 28 /* 29 * Releases the tty. Its ownership is returned to root, and permissions to 30 * 0666. 31 */ 32 void pty_release(const char *ttyname); 33 34 /* 35 * Makes the tty the processes controlling tty and sets it to sane modes. 36 * This may need to reopen the tty to get rid of possible eavesdroppers. 37 */ 38 void pty_make_controlling_tty(int *ttyfd, const char *ttyname); 39 40 /* Changes the window size associated with the pty. */ 41 void 42 pty_change_window_size(int ptyfd, int row, int col, 43 int xpixel, int ypixel); 44 45 void pty_setowner(struct passwd *pw, const char *ttyname); 46 47 #endif /* SSHPTY_H */ 48