亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? sys-linux.c

?? 經(jīng)典的ppp程序
?? C
?? 第 1 頁(yè) / 共 5 頁(yè)
字號(hào):
 * sifvjcomp - config tcp header compression */int sifvjcomp (int u, int vjcomp, int cidcomp, int maxcid){    u_int x = get_flags(ppp_dev_fd);    if (vjcomp) {        if (ioctl (ppp_dev_fd, PPPIOCSMAXCID, (caddr_t) &maxcid) < 0) {	    if (! ok_error (errno))		error("ioctl(PPPIOCSMAXCID): %m(%d)", errno);	    vjcomp = 0;	}    }    x = vjcomp  ? x | SC_COMP_TCP     : x &~ SC_COMP_TCP;    x = cidcomp ? x & ~SC_NO_TCP_CCID : x | SC_NO_TCP_CCID;    set_flags (ppp_dev_fd, x);    return 1;}/******************************************************************** * * sifup - Config the interface up and enable IP packets to pass. */int sifup(int u){    struct ifreq ifr;    memset (&ifr, '\0', sizeof (ifr));    strlcpy(ifr.ifr_name, ifname, sizeof (ifr.ifr_name));    if (ioctl(sock_fd, SIOCGIFFLAGS, (caddr_t) &ifr) < 0) {	if (! ok_error (errno))	    error("ioctl (SIOCGIFFLAGS): %m(%d)", errno);	return 0;    }    ifr.ifr_flags |= (IFF_UP | IFF_POINTOPOINT);    if (ioctl(sock_fd, SIOCSIFFLAGS, (caddr_t) &ifr) < 0) {	if (! ok_error (errno))	    error("ioctl(SIOCSIFFLAGS): %m(%d)", errno);	return 0;    }    if_is_up++;    return 1;}/******************************************************************** * * sifdown - Disable the indicated protocol and config the interface *	     down if there are no remaining protocols. */int sifdown (int u){    struct ifreq ifr;    if (if_is_up && --if_is_up > 0)	return 1;    memset (&ifr, '\0', sizeof (ifr));    strlcpy(ifr.ifr_name, ifname, sizeof (ifr.ifr_name));    if (ioctl(sock_fd, SIOCGIFFLAGS, (caddr_t) &ifr) < 0) {	if (! ok_error (errno))	    error("ioctl (SIOCGIFFLAGS): %m(%d)", errno);	return 0;    }    ifr.ifr_flags &= ~IFF_UP;    ifr.ifr_flags |= IFF_POINTOPOINT;    if (ioctl(sock_fd, SIOCSIFFLAGS, (caddr_t) &ifr) < 0) {	if (! ok_error (errno))	    error("ioctl(SIOCSIFFLAGS): %m(%d)", errno);	return 0;    }    return 1;}/******************************************************************** * * sifaddr - Config the interface IP addresses and netmask. */int sifaddr (int unit, u_int32_t our_adr, u_int32_t his_adr,	     u_int32_t net_mask){    struct ifreq   ifr;     struct rtentry rt;        memset (&ifr, '\0', sizeof (ifr));    memset (&rt,  '\0', sizeof (rt));        SET_SA_FAMILY (ifr.ifr_addr,    AF_INET);     SET_SA_FAMILY (ifr.ifr_dstaddr, AF_INET);     SET_SA_FAMILY (ifr.ifr_netmask, AF_INET);     strlcpy (ifr.ifr_name, ifname, sizeof (ifr.ifr_name));/* *  Set our IP address */    SIN_ADDR(ifr.ifr_addr) = our_adr;    if (ioctl(sock_fd, SIOCSIFADDR, (caddr_t) &ifr) < 0) {	if (errno != EEXIST) {	    if (! ok_error (errno))		error("ioctl(SIOCSIFADDR): %m(%d)", errno);	}        else {	    warn("ioctl(SIOCSIFADDR): Address already exists");	}        return (0);    }/* *  Set the gateway address */    SIN_ADDR(ifr.ifr_dstaddr) = his_adr;    if (ioctl(sock_fd, SIOCSIFDSTADDR, (caddr_t) &ifr) < 0) {	if (! ok_error (errno))	    error("ioctl(SIOCSIFDSTADDR): %m(%d)", errno); 	return (0);    } /* *  Set the netmask. *  For recent kernels, force the netmask to 255.255.255.255. */    if (kernel_version >= KVERSION(2,1,16))	net_mask = ~0L;    if (net_mask != 0) {	SIN_ADDR(ifr.ifr_netmask) = net_mask;	if (ioctl(sock_fd, SIOCSIFNETMASK, (caddr_t) &ifr) < 0) {	    if (! ok_error (errno))		error("ioctl(SIOCSIFNETMASK): %m(%d)", errno); 	    return (0);	}     }/* *  Add the device route */    if (kernel_version < KVERSION(2,1,16)) {	SET_SA_FAMILY (rt.rt_dst,     AF_INET);	SET_SA_FAMILY (rt.rt_gateway, AF_INET);	rt.rt_dev = ifname;	SIN_ADDR(rt.rt_gateway) = 0L;	SIN_ADDR(rt.rt_dst)     = his_adr;	rt.rt_flags = RTF_UP | RTF_HOST;	if (kernel_version > KVERSION(2,1,0)) {	    SET_SA_FAMILY (rt.rt_genmask, AF_INET);	    SIN_ADDR(rt.rt_genmask) = -1L;	}	if (ioctl(sock_fd, SIOCADDRT, &rt) < 0) {	    if (! ok_error (errno))		error("ioctl(SIOCADDRT) device route: %m(%d)", errno);	    return (0);	}    }    /* set ip_dynaddr in demand mode if address changes */    if (demand && tune_kernel && !dynaddr_set	&& our_old_addr && our_old_addr != our_adr) {	/* set ip_dynaddr if possible */	char *path;	int fd;	path = path_to_procfs("/sys/net/ipv4/ip_dynaddr");	if (path != 0 && (fd = open(path, O_WRONLY)) >= 0) {	    if (write(fd, "1", 1) != 1)		error("Couldn't enable dynamic IP addressing: %m");	    close(fd);	}	dynaddr_set = 1;	/* only 1 attempt */    }    our_old_addr = 0;    return 1;}/******************************************************************** * * cifaddr - Clear the interface IP addresses, and delete routes * through the interface if possible. */int cifaddr (int unit, u_int32_t our_adr, u_int32_t his_adr){    struct ifreq ifr;    if (kernel_version < KVERSION(2,1,16)) {/* *  Delete the route through the device */	struct rtentry rt;	memset (&rt, '\0', sizeof (rt));	SET_SA_FAMILY (rt.rt_dst,     AF_INET);	SET_SA_FAMILY (rt.rt_gateway, AF_INET);	rt.rt_dev = ifname;	SIN_ADDR(rt.rt_gateway) = 0;	SIN_ADDR(rt.rt_dst)     = his_adr;	rt.rt_flags = RTF_UP | RTF_HOST;	if (kernel_version > KVERSION(2,1,0)) {	    SET_SA_FAMILY (rt.rt_genmask, AF_INET);	    SIN_ADDR(rt.rt_genmask) = -1L;	}	if (ioctl(sock_fd, SIOCDELRT, &rt) < 0 && errno != ESRCH) {	    if (still_ppp() && ! ok_error (errno))		error("ioctl(SIOCDELRT) device route: %m(%d)", errno);	    return (0);	}    }    /* This way it is possible to have an IPX-only or IPv6-only interface */    memset(&ifr, 0, sizeof(ifr));    SET_SA_FAMILY(ifr.ifr_addr, AF_INET);    strlcpy(ifr.ifr_name, ifname, sizeof(ifr.ifr_name));        if (ioctl(sock_fd, SIOCSIFADDR, (caddr_t) &ifr) < 0) {	if (! ok_error (errno)) {	    error("ioctl(SIOCSIFADDR): %m(%d)", errno);	    return 0;	}    }    our_old_addr = our_adr;    return 1;}#ifdef INET6/******************************************************************** *  * sif6addr - Config the interface with an IPv6 link-local address */int sif6addr (int unit, eui64_t our_eui64, eui64_t his_eui64){    struct in6_ifreq ifr6;    struct ifreq ifr;    struct in6_rtmsg rt6;    if (sock6_fd < 0) {	errno = -sock6_fd;	error("IPv6 socket creation failed: %m");	return 0;    }    memset(&ifr, 0, sizeof (ifr));    strlcpy(ifr.ifr_name, ifname, sizeof(ifr.ifr_name));    if (ioctl(sock6_fd, SIOCGIFINDEX, (caddr_t) &ifr) < 0) {	error("sif6addr: ioctl(SIOCGIFINDEX): %m (%d)", errno);	return 0;    }        /* Local interface */    memset(&ifr6, 0, sizeof(ifr6));    IN6_LLADDR_FROM_EUI64(ifr6.ifr6_addr, our_eui64);    ifr6.ifr6_ifindex = ifr.ifr_ifindex;    ifr6.ifr6_prefixlen = 10;    if (ioctl(sock6_fd, SIOCSIFADDR, &ifr6) < 0) {	error("sif6addr: ioctl(SIOCSIFADDR): %m (%d)", errno);	return 0;    }        /* Route to remote host */    memset(&rt6, 0, sizeof(rt6));    IN6_LLADDR_FROM_EUI64(rt6.rtmsg_dst, his_eui64);    rt6.rtmsg_flags = RTF_UP;    rt6.rtmsg_dst_len = 10;    rt6.rtmsg_ifindex = ifr.ifr_ifindex;    rt6.rtmsg_metric = 1;        if (ioctl(sock6_fd, SIOCADDRT, &rt6) < 0) {	error("sif6addr: ioctl(SIOCADDRT): %m (%d)", errno);	return 0;    }    return 1;}/******************************************************************** * * cif6addr - Remove IPv6 address from interface */int cif6addr (int unit, eui64_t our_eui64, eui64_t his_eui64){    struct ifreq ifr;    struct in6_ifreq ifr6;    if (sock6_fd < 0) {	errno = -sock6_fd;	error("IPv6 socket creation failed: %m");	return 0;    }    memset(&ifr, 0, sizeof(ifr));    strlcpy(ifr.ifr_name, ifname, sizeof(ifr.ifr_name));    if (ioctl(sock6_fd, SIOCGIFINDEX, (caddr_t) &ifr) < 0) {	error("cif6addr: ioctl(SIOCGIFINDEX): %m (%d)", errno);	return 0;    }        memset(&ifr6, 0, sizeof(ifr6));    IN6_LLADDR_FROM_EUI64(ifr6.ifr6_addr, our_eui64);    ifr6.ifr6_ifindex = ifr.ifr_ifindex;    ifr6.ifr6_prefixlen = 10;    if (ioctl(sock6_fd, SIOCDIFADDR, &ifr6) < 0) {	if (errno != EADDRNOTAVAIL) {	    if (! ok_error (errno))		error("cif6addr: ioctl(SIOCDIFADDR): %m (%d)", errno);	}        else {	    warn("cif6addr: ioctl(SIOCDIFADDR): No such address");	}        return (0);    }    return 1;}#endif /* INET6 *//* * get_pty - get a pty master/slave pair and chown the slave side * to the uid given.  Assumes slave_name points to >= 16 bytes of space. */intget_pty(master_fdp, slave_fdp, slave_name, uid)    int *master_fdp;    int *slave_fdp;    char *slave_name;    int uid;{    int i, mfd, sfd = -1;    char pty_name[16];    struct termios tios;#ifdef TIOCGPTN    /*     * Try the unix98 way first.     */    mfd = open("/dev/ptmx", O_RDWR);    if (mfd >= 0) {	int ptn;	if (ioctl(mfd, TIOCGPTN, &ptn) >= 0) {	    slprintf(pty_name, sizeof(pty_name), "/dev/pts/%d", ptn);	    chmod(pty_name, S_IRUSR | S_IWUSR);#ifdef TIOCSPTLCK	    ptn = 0;	    if (ioctl(mfd, TIOCSPTLCK, &ptn) < 0)		warn("Couldn't unlock pty slave %s: %m", pty_name);#endif	    if ((sfd = open(pty_name, O_RDWR | O_NOCTTY)) < 0)		warn("Couldn't open pty slave %s: %m", pty_name);	}    }#endif /* TIOCGPTN */    if (sfd < 0) {	/* the old way - scan through the pty name space */	for (i = 0; i < 64; ++i) {	    slprintf(pty_name, sizeof(pty_name), "/dev/pty%c%x",		     'p' + i / 16, i % 16);	    mfd = open(pty_name, O_RDWR, 0);	    if (mfd >= 0) {		pty_name[5] = 't';		sfd = open(pty_name, O_RDWR | O_NOCTTY, 0);		if (sfd >= 0) {		    fchown(sfd, uid, -1);		    fchmod(sfd, S_IRUSR | S_IWUSR);		    break;		}		close(mfd);	    }	}    }    if (sfd < 0)	return 0;    strlcpy(slave_name, pty_name, 16);    *master_fdp = mfd;    *slave_fdp = sfd;    if (tcgetattr(sfd, &tios) == 0) {	tios.c_cflag &= ~(CSIZE | CSTOPB | PARENB);	tios.c_cflag |= CS8 | CREAD | CLOCAL;	tios.c_iflag  = IGNPAR;	tios.c_oflag  = 0;	tios.c_lflag  = 0;	if (tcsetattr(sfd, TCSAFLUSH, &tios) < 0)	    warn("couldn't set attributes on pty: %m");    } else	warn("couldn't get attributes on pty: %m");    return 1;}/******************************************************************** * * open_loopback - open the device we use for getting packets * in demand mode.  Under Linux, we use a pty master/slave pair. */intopen_ppp_loopback(void){    int flags;    looped = 1;    if (new_style_driver) {	/* allocate ourselves a ppp unit */	if (make_ppp_unit() < 0)	    die(1);	set_flags(ppp_dev_fd, SC_LOOP_TRAFFIC);	set_kdebugflag(kdebugflag);	ppp_fd = -1;	return ppp_dev_fd;    }    if (!get_pty(&master_fd, &slave_fd, loop_name, 0))	fatal("No free pty for loopback");    SYSDEBUG(("using %s for loopback", loop_name));    set_ppp_fd(slave_fd);    flags = fcntl(master_fd, F_GETFL);    if (flags == -1 ||	fcntl(master_fd, F_SETFL, flags | O_NONBLOCK) == -1)	warn("couldn't set master loopback to nonblock: %m(%d)", errno);    flags = fcntl(ppp_fd, F_GETFL);    if (flags == -1 ||	fcntl(ppp_fd, F_SETFL, flags | O_NONBLOCK) == -1)	warn("couldn't set slave loopback to nonblock: %m(%d)", errno);    if (ioctl(ppp_fd, TIOCSETD, &ppp_disc) < 0)	fatal("ioctl(TIOCSETD): %m(%d)", errno);/* * Find out which interface we were given. */    if (ioctl(ppp_fd, PPPIOCGUNIT, &ifunit) < 0)	fatal("ioctl(PPPIOCGUNIT): %m(%d)", errno);/* * Enable debug in the driver if requested. */    set_kdebugflag (kdebugflag);    return master_fd;}/******************************************************************** * * restore_loop - reattach the ppp unit to the loopback. * * The kernel ppp driver automatically reattaches the ppp unit to * the loopback if the serial port is set to a line discipline other * than ppp, or if it detects a modem hangup.  The former will happen * in disestablish_ppp if the latter hasn't already happened, so we * shouldn't need to do anything. * * Just to be sure, set the real serial port to the normal discipline. */static voidrestore_loop(void){    looped = 1;    if (new_style_driver) {	set_flags(ppp_dev_fd, get_flags(ppp_dev_fd) | SC_LOOP_TRAFFIC);	return;    }    if (ppp_fd != slave_fd) {	(void) ioctl(ppp_fd, TIOCSETD, &tty_disc);	set_ppp_fd(slave_fd);    }}/******************************************************************** * * sifnpmode - Set the mode for handling packets for a given NP. */intsifnpmode(u, proto, mode)    int u;    int proto;    enum NPmode mode;{    struct npioctl npi;    npi.protocol = proto;    npi.mode     = mode;    if (ioctl(ppp_dev_fd, PPPIOCSNPMODE, (caddr_t) &npi) < 0) {	if (! ok_error (errno))	    error("ioctl(PPPIOCSNPMODE, %d, %d): %m (%d)",		   proto, mode, errno);	return 0;    }    return 1;}/******************************************************************** * * sipxfaddr - Config the interface IPX networknumber */int sipxfaddr (int unit, unsigned long int network, unsigned char * node ){    int    result = 1;#ifdef IPX_CHANGE    int    skfd;     struct ifreq         ifr;    struct sockaddr_ipx *sipx = (struct sockaddr_ipx *) &ifr.ifr_addr;    skfd = socket (AF_IPX, SOCK_DGRAM, 0);    if (skfd < 0) { 	if (! ok_error (errno))	    dbglog("socket(AF_IPX): %m (%d)", errno);	result = 0;

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
综合自拍亚洲综合图不卡区| 国产成人免费9x9x人网站视频| 麻豆传媒一区二区三区| 亚洲欧美日韩国产手机在线| 亚洲欧洲成人自拍| 亚洲情趣在线观看| 亚洲女厕所小便bbb| 亚洲日本va在线观看| 亚洲色图视频免费播放| 亚洲一区二区在线播放相泽| 亚洲一区精品在线| 日韩精品亚洲一区二区三区免费| 日本中文字幕一区二区有限公司| 日本欧洲一区二区| 精品一二线国产| 国产精品2024| jizz一区二区| 欧美午夜不卡在线观看免费| 欧美日韩国产一级片| 91精品国产一区二区三区| 91精品国产综合久久精品麻豆| 欧美福利电影网| 欧美xxxx在线观看| 欧美国产国产综合| 一卡二卡三卡日韩欧美| 婷婷夜色潮精品综合在线| 免费人成精品欧美精品| 国产一区二区在线影院| 暴力调教一区二区三区| 欧美午夜电影网| 精品国产乱码久久久久久夜甘婷婷| 久久综合色8888| 日韩一区中文字幕| 日日摸夜夜添夜夜添亚洲女人| 精品一区二区三区久久| 国产99一区视频免费| 日本久久电影网| 日韩欧美精品在线| 国产精品看片你懂得| 亚洲一区免费观看| 国产一区二区三区免费| 91影院在线免费观看| 欧美一级高清大全免费观看| 国产欧美日韩精品在线| 亚洲成a人在线观看| 国产精品一区二区91| 日本久久电影网| 久久综合九色综合97婷婷| 亚洲欧美国产三级| 精品一区二区三区视频| 91毛片在线观看| 日韩免费视频线观看| 亚洲色图在线看| 国产一区二区不卡| 欧洲视频一区二区| 欧美国产日韩一二三区| 日韩av电影免费观看高清完整版在线观看| 欧美在线不卡一区| 久久久久久电影| 性感美女极品91精品| 处破女av一区二区| 欧美一卡二卡在线| 亚洲色图欧美在线| 国产呦精品一区二区三区网站| 欧美午夜影院一区| 国产精品久久三区| 精品一区二区三区在线观看| 色偷偷久久一区二区三区| 26uuu精品一区二区 | 日韩精品成人一区二区在线| 国产成a人无v码亚洲福利| 91精品欧美福利在线观看| 亚洲欧美日韩国产手机在线| 国产黑丝在线一区二区三区| 欧美一级日韩一级| 亚洲午夜精品17c| caoporn国产精品| 久久久久99精品一区| 日韩av电影免费观看高清完整版在线观看 | 亚洲色图都市小说| 国产不卡在线播放| 久久日韩粉嫩一区二区三区| 性感美女极品91精品| 欧美在线短视频| 亚洲精品五月天| 91热门视频在线观看| 国产精品人成在线观看免费 | 欧美性一二三区| 亚洲欧美日韩国产综合| 99精品1区2区| 最新不卡av在线| 97精品国产97久久久久久久久久久久| 国产亚洲va综合人人澡精品| 久草热8精品视频在线观看| 777a∨成人精品桃花网| 午夜视频在线观看一区| 欧美图区在线视频| 亚洲一区二区黄色| 欧美日韩一区二区在线视频| 夜夜操天天操亚洲| 欧洲精品一区二区三区在线观看| 亚洲欧美日韩久久| 91久久国产综合久久| 亚洲乱码国产乱码精品精的特点 | 欧美精品在线观看一区二区| 亚洲国产成人av网| 欧美少妇xxx| 日本视频在线一区| 精品不卡在线视频| 黄色精品一二区| 亚洲综合图片区| 欧美日韩免费在线视频| 天天影视涩香欲综合网| 91精品国产麻豆| 成人午夜视频免费看| 欧美一级片在线| 亚洲欧美偷拍三级| 欧美午夜在线一二页| 爽爽淫人综合网网站| 日韩欧美黄色影院| 国产乱色国产精品免费视频| 久久久精品天堂| 波多野结衣的一区二区三区| 国产色综合久久| 99精品久久久久久| 亚洲一级片在线观看| 欧美一二三区在线观看| 国产精品影视天天线| 亚洲欧洲在线观看av| 欧美三级电影在线观看| 日本大胆欧美人术艺术动态| 久久青草国产手机看片福利盒子| 国产不卡在线播放| 一区二区三区四区精品在线视频| 91精品国产综合久久小美女| 经典一区二区三区| 国产精品另类一区| 欧美日韩另类一区| 国产一区 二区 三区一级| 国产精品免费aⅴ片在线观看| 91精品1区2区| 国产一区二区精品久久| 自拍偷在线精品自拍偷无码专区 | 精品国产欧美一区二区| 不卡的av在线| 日韩主播视频在线| 亚洲国产成人自拍| 51精品视频一区二区三区| 国产91在线观看| 日欧美一区二区| 亚洲欧美自拍偷拍| 日韩欧美一级片| 色综合久久天天| 国产一区二区三区四| 亚洲与欧洲av电影| 欧美国产成人精品| 欧美一二三区在线| 91国产成人在线| 国内国产精品久久| 午夜国产不卡在线观看视频| 国产欧美日韩另类视频免费观看| 欧美日韩国产美| 99re免费视频精品全部| 久久不见久久见免费视频1| 亚洲男同1069视频| 久久久久久久电影| 欧美一区二区精美| 91国产精品成人| 成人黄动漫网站免费app| 久久精品999| 亚洲网友自拍偷拍| 国产精品久久久久久户外露出| 日韩欧美一区在线| 欧美日韩一区不卡| 97久久超碰精品国产| 国产91富婆露脸刺激对白| 午夜av电影一区| 亚洲精品网站在线观看| 日韩毛片一二三区| 国产日韩欧美高清| 精品日韩一区二区| 欧美一区二区在线视频| 色婷婷国产精品| 91影视在线播放| 成人av网站免费| 国产成人精品免费看| 国产一区美女在线| 麻豆精品精品国产自在97香蕉 | 国产99久久久国产精品免费看| 免费一级片91| 日韩电影免费在线看| 亚洲综合自拍偷拍| 亚洲视频中文字幕| 国产精品夫妻自拍| 国产精品护士白丝一区av| 国产日韩成人精品| 欧美国产日韩精品免费观看| 国产偷国产偷精品高清尤物| 久久免费精品国产久精品久久久久| 日韩欧美卡一卡二|