kern.diff

来自「Linux下的socks的程序源程序,用于socks的代理服务」· DIFF 代码 · 共 309 行

DIFF
309
字号
*** h/ioctl.h.old	Tue May 23 14:50:42 1989--- h/ioctl.h	Tue Aug 29 18:24:49 1989****************** 214,219 ****--- 214,220 ----  #define		TIOCPKT_START		0x08	/* start output */  #define		TIOCPKT_NOSTOP		0x10	/* no more ^S, ^Q */  #define		TIOCPKT_DOSTOP		0x20	/* now do ^S ^Q */+ #define		TIOCPKT_IOCTL		0x40	/* state change of pty driver */  #define	TIOCSTOP	_IO('t', 111)		/* stop output, like ^S */  #define	TIOCSTART	_IO('t', 110)		/* start output, like ^Q */  #define	TIOCMSET	_IOW('t', 109, int)	/* set all modem bits */****************** 226,231 ****--- 227,235 ----  #define	TIOCUCNTL	_IOW('t', 102, int)	/* pty: set/clr usr cntl mode */  #define		UIOCCMD(n)	_IO('u', n)		/* usr cntl op "n" */  #define	TIOCCONS	_IO('t', 98)		/* become virtual console */+ #define	TIOCEXT		_IOW('t', 97, int)	/* pty: external processing */+ #define	TIOCGSTATE	_IOR('t', 96, int)	/* pty: get internal state */+ #define	TIOCSIG		_IO('t', 95)		/* pty: generate signal */    #define	OTTYDISC	0		/* old, v7 std tty driver */  #define	NETLDISC	1		/* line discip for berk net */*** h/tty.h.old	Tue May 23 14:51:01 1989--- h/tty.h	Wed Aug 23 11:30:40 1989****************** 70,75 ****--- 70,76 ----  	struct	ttychars t_chars;	/* tty */  	struct	winsize t_winsize;	/* window size */  /* be careful of tchars & co. */+ #ifndef	NO_T_CHARS_DEFINES  #define	t_erase		t_chars.tc_erase  #define	t_kill		t_chars.tc_kill  #define	t_intrc		t_chars.tc_intrc****************** 84,89 ****--- 85,91 ----  #define	t_flushc	t_chars.tc_flushc  #define	t_werasc	t_chars.tc_werasc  #define	t_lnextc	t_chars.tc_lnextc+ #endif  };    #define	TTIPRI	28****************** 124,129 ****--- 126,132 ----  #define	TS_LNCH		0x080000	/* next character is literal */  #define	TS_TYPEN	0x100000	/* retyping suspended input (PENDIN) */  #define	TS_CNTTB	0x200000	/* counting tab width; leave FLUSHO alone */+ #define	TS_EXTPROC	0x400000	/* external processing of data */    #define	TS_LOCAL	(TS_BKSL|TS_QUOT|TS_ERASE|TS_LNCH|TS_TYPEN|TS_CNTTB)  *** sys/tty.c.old	Tue May 23 14:52:28 1989--- sys/tty.c	Thu Aug 24 09:31:49 1989****************** 275,280 ****--- 275,285 ----  	 */  	switch (com) {  + 	/* get internal state - needed for TS_EXTPROC bit */+ 	case TIOCGSTATE:+ 		*(int *)data = tp->t_state;+ 		break;+   	/* get discipline number */  	case TIOCGETD:  		*(int *)data = tp->t_line;****************** 752,757 ****--- 757,763 ----  	 */  	if ((tp->t_state&TS_TYPEN) == 0 && (t_flags&PASS8) == 0)  		c &= 0177;+     if ((tp->t_state&TS_EXTPROC) == 0) {  	/*  	 * Check for literal nexting very first  	 */****************** 834,839 ****--- 840,846 ----  		else if (c == '\\')  			tp->t_state |= TS_BKSL;  	}+     }    	/*  	 * Cbreak mode, don't process line editing****************** 851,856 ****--- 858,864 ----  		goto endcase;  	}  +     if ((tp->t_state&TS_EXTPROC) == 0) {  	/*  	 * From here on down cooked mode character  	 * processing takes place.****************** 911,916 ****--- 919,925 ----  			goto endcase;  		}  	}+     }    	/*  	 * Check for input buffer overflow****************** 933,938 ****--- 942,948 ----  		} else if (tp->t_rocount++ == 0)  			tp->t_rocol = tp->t_col;  		tp->t_state &= ~TS_QUOT;+ 	    if ((tp->t_state&TS_EXTPROC) == 0) {  		if (c == '\\')  			tp->t_state |= TS_QUOT;  		if (tp->t_state&TS_ERASE) {****************** 948,953 ****--- 958,964 ----  				i--;  			}  		}+ 	    }  	}  endcase:  	/******************* 998,1005 ****  		return (-1);  	/*  	 * Turn tabs to spaces as required  	 */! 	if (c == '\t' && (tp->t_flags&TBDELAY) == XTABS) {  		register int s;    		c = 8 - (tp->t_col&7);--- 1009,1022 ----  		return (-1);  	/*  	 * Turn tabs to spaces as required+ 	 *+ 	 * Special case if we have external processing, we don't+ 	 * do the tab expansion because we'll probably get it+ 	 * wrong.  If tab expansion needs to be done, let it+ 	 * happen externally.  	 */! 	if ((tp->t_state&TS_EXTPROC) == 0 &&! 	    c == '\t' && (tp->t_flags&TBDELAY) == XTABS) {  		register int s;    		c = 8 - (tp->t_col&7);****************** 1497,1503 ****  	int s;  	char *nextc();  ! 	if ((tp->t_flags&ECHO) == 0)  		return;  	tp->t_flags &= ~FLUSHO;  	c &= 0377;--- 1514,1520 ----  	int s;  	char *nextc();  ! 	if ((tp->t_flags&ECHO) == 0 || (tp->t_state&TS_EXTPROC))  		return;  	tp->t_flags &= ~FLUSHO;  	c &= 0377;****************** 1618,1624 ****    	if ((tp->t_state&TS_CNTTB) == 0)  		tp->t_flags &= ~FLUSHO;! 	if ((tp->t_flags&ECHO) == 0)  		return;  	c &= 0377;  	if (tp->t_flags&RAW) {--- 1635,1641 ----    	if ((tp->t_state&TS_CNTTB) == 0)  		tp->t_flags &= ~FLUSHO;! 	if ((tp->t_flags&ECHO) == 0 || (tp->t_state&TS_EXTPROC))  		return;  	c &= 0377;  	if (tp->t_flags&RAW) {*** sys/tty_pty.c.old	Tue May 23 14:52:43 1989--- sys/tty_pty.c	Tue Aug 29 18:48:36 1989****************** 208,213 ****--- 208,214 ----  		return (EIO);  	tp->t_oproc = ptsstart;  	(void)(*linesw[tp->t_line].l_modem)(tp, 1);+ 	tp->t_state &= ~TS_EXTPROC;  	pti = &pt_ioctl[minor(dev)];  	pti->pt_flags = 0;  	pti->pt_send = 0;****************** 247,252 ****--- 248,275 ----  				error = ureadc((int)pti->pt_send, uio);  				if (error)  					return (error);+ 				if (pti->pt_send & TIOCPKT_IOCTL) {+ 					struct xx {+ 						struct sgttyb a;+ 						struct tchars b;+ 						struct ltchars c;+ 						int d;+ 						int e;+ 					} cb;+ 					cb.a.sg_ispeed = tp->t_ispeed;+ 					cb.a.sg_ospeed = tp->t_ospeed;+ 					cb.a.sg_erase = tp->t_erase;+ 					cb.a.sg_kill = tp->t_kill;+ 					cb.a.sg_flags = tp->t_flags;+ 					bcopy((caddr_t)&tp->t_intrc,+ 					      (caddr_t)&cb.b, sizeof(cb.b));+ 					bcopy((caddr_t)&tp->t_suspc,+ 					      (caddr_t)&cb.c, sizeof(cb.c));+ 					cb.d = tp->t_state;+ 					cb.e = ((unsigned)tp->t_flags)>>16;+ 					cc = MIN(uio->uio_resid, sizeof(cb));+ 					uiomove(&cb, cc, UIO_READ, uio);+ 				}  				pti->pt_send = 0;  				return (0);  			}****************** 483,488 ****--- 506,533 ----  	 * IF CONTROLLER STTY THEN MUST FLUSH TO PREVENT A HANG.  	 * ttywflush(tp) will hang if there are characters in the outq.  	 */+ 	if (cmd == TIOCEXT) {+ 		/*+ 		 * When the TS_EXTPROC bit is being toggled, we need+ 		 * to send an TIOCPKT_IOCTL if the packet driver+ 		 * is turned on.+ 		 */+ 		if (*(int *)data) {+ 			if (pti->pt_flags & PF_PKT) {+ 				pti->pt_send |= TIOCPKT_IOCTL;+ 				ptcwakeup(tp);+ 			}+ 			tp->t_state |= TS_EXTPROC;+ 		} else {+ 			if ((tp->t_state & TS_EXTPROC) &&+ 			    (pti->pt_flags & PF_PKT)) {+ 				pti->pt_send |= TIOCPKT_IOCTL;+ 				ptcwakeup(tp);+ 			}+ 			tp->t_state &= ~TS_EXTPROC;+ 		}+ 		return (0);+ 	} else  	if (cdevsw[major(dev)].d_open == ptcopen)  		switch (cmd) {  ****************** 525,530 ****--- 570,583 ----  			while (getc(&tp->t_outq) >= 0)  				;  			break;+ + 		case TIOCSIG:+ 			if (*(unsigned int *)data >= NSIG)+ 				return(EINVAL);+ 			if ((tp->t_flags&NOFLSH) == 0)+ 				ttyflush(tp, FREAD|FWRITE);+ 			gsignal(tp->t_pgrp, *(unsigned int *)data);+ 			return(0);  		}  	error = ttioctl(tp, cmd, data, flag);  	/******************* 549,554 ****--- 602,624 ----  			return (0);  		}  		error = ENOTTY;+ 	}+ 	/*+ 	 * If external processing and packet mode send ioctl packet.+ 	 */+ 	if ((tp->t_state & TS_EXTPROC) && (pti->pt_flags & PF_PKT)) {+ 		switch(cmd) {+ 		case TIOCSETP:+ 		case TIOCSETN:+ 		case TIOCSETC:+ 		case TIOCSLTC:+ 		case TIOCLBIS:+ 		case TIOCLBIC:+ 		case TIOCLSET:+ 			pti->pt_send |= TIOCPKT_IOCTL;+ 		default:+ 			break;+ 		}  	}  	stop = (tp->t_flags & RAW) == 0 &&  	    tp->t_stopc == CTRL('s') && tp->t_startc == CTRL('q');

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?