⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 options.c

📁 vxworks的tcpip协议栈源码
💻 C
📖 第 1 页 / 共 3 页
字号:
/* * setchapfile - specifies CHAP info for authenticating with peer. */static intsetchapfile(argv)char *argv;{    FILE * ufile;    ppp_if[ppp_unit]->lcp_allowoptions.neg_chap = 1;    ppp_if[ppp_unit]->options->chap_file = (char *)stringdup(argv);    /* open user info file */    if ((ufile = fopen(argv, "r")) == NULL) {	syslog(LOG_ERR, "unable to open CHAP secrets file %s", argv);	return 0;    }    if (!readable(fileno(ufile))) {        syslog(LOG_ERR, "%s: access denied", argv);        fclose(ufile);        return 0;    }    check_access(ufile, argv);    fclose(ufile);    return (1);}/* * setnovj - disable vj compression */static intsetnovj(){    ppp_if[ppp_unit]->ipcp_wantoptions.neg_vj = 0;    ppp_if[ppp_unit]->ipcp_allowoptions.neg_vj = 0;    return (1);}/* * setnovjccomp - disable VJ connection-ID compression */static intsetnovjccomp(){    ppp_if[ppp_unit]->ipcp_wantoptions.cflag = 0;    ppp_if[ppp_unit]->ipcp_allowoptions.cflag = 0;    return (1);}/* * setvjslots - set maximum number of connection slots for VJ compression */static intsetvjslots(argv)    char *argv;{    int value;    if (!int_option(argv, &value))        return 0;    if (value < 2 || value > 16) {        syslog(LOG_ERR, "pppd: vj-max-slots value must be between 2 and 16");        return 0;    }    ppp_if[ppp_unit]->ipcp_wantoptions.maxslotindex =        ppp_if[ppp_unit]->ipcp_allowoptions.maxslotindex = value - 1;    return 1;}#ifdef	notyet/* * setconnector - Set a program to connect to a serial line */static intsetconnector(argv)    char *argv;{    ppp_if[ppp_unit]->connector = (char *)stringdup(argv);    if (ppp_if[ppp_unit]->connector == NULL)	novm("connector string");    return (1);}#endif	/* notyet */#ifdef	notyet/* * setdisconnector - Set a program to disconnect from the serial line */static intsetdisconnector(argv)    char *argv;{    ppp_if[ppp_unit]->disconnector = (char *)stringdup(argv);    if (ppp_if[ppp_unit]->disconnector == NULL)        novm("disconnector string");    return (1);}#endif	/* notyet */#ifdef	notyet/* * setdomain - Set domain name to append to hostname  */static intsetdomain(argv)    char *argv;{    strncat(ppp_if[ppp_unit]->hostname, argv,	    MAXNAMELEN - strlen(ppp_if[ppp_unit]->hostname));    ppp_if[ppp_unit]->hostname[MAXNAMELEN-1] = 0;    return (1);}#endif	/* notyet *//* * setasyncmap - add bits to asyncmap (what we request peer to escape). */static intsetasyncmap(argv)    char *argv;{    long asyncmap;    if (!number_option(argv, &asyncmap, 16))	return 0;    ppp_if[ppp_unit]->lcp_wantoptions.asyncmap |= asyncmap;    ppp_if[ppp_unit]->lcp_wantoptions.neg_asyncmap = 1;    return (1);}/* * setescape - add chars to the set we escape on transmission. */static intsetescape(argv)    char *argv;{    int n, ret;    char *p, *endp;    p = argv;    ret = 1;    while (*p) {        n = strtoul(p, &endp, 16);        if (p == endp) {            syslog(LOG_ERR, "invalid hex number: %s", p);            return 0;        }        p = endp;        if (n < 0 || (0x20 <= n && n <= 0x3F) || n == 0x5E || n > 0xFF) {            syslog(LOG_ERR, "can't escape character 0x%x", n);            ret = 0;        } else            ppp_if[ppp_unit]->xmit_accm[n >> 5] |= 1 << (n & 0x1F);        while (*p == ',' || *p == ' ')            ++p;    }    return ret;}/* * setspeed - Set the speed. */static intsetspeed(arg, is_string)    int arg;    int is_string;{    char *ptr;    int spd;    if (is_string) {        spd = strtol((char *)arg, &ptr, 0);        if (ptr == (char *)arg || *ptr != 0 || spd == 0)	    return 0;        ppp_if[ppp_unit]->inspeed = spd;    }    else 	ppp_if[ppp_unit]->inspeed = arg;        return 1;}/* * setdevname - Set the device name. */intsetdevname(cp)    char *cp;{    (void) strncpy(ppp_if[ppp_unit]->devname, cp, MAXPATHLEN);    ppp_if[ppp_unit]->devname[MAXPATHLEN-1] = 0;      return 1;}/* * setipaddr - Set the IP address * * This function also accepts hostnames apart from ip address strings. * If hostnames are passed to this function, the hostnames should be * added to the system by making calls to hostAdd() prior to calling this * function. This requires the hostTblInit be called before hostGetByName * is called. */intsetipaddr(local_addr, remote_addr)    char *local_addr;    char *remote_addr;{    u_long local, remote;    ipcp_options *wo = &ppp_if[ppp_unit]->ipcp_wantoptions;    if ((local = hostGetByName (local_addr)) == ERROR)	{	if ((((local = inet_addr(local_addr)) == ERROR)) || 	    (bad_ip_adrs(local)))	    {	    syslog(LOG_ERR, "bad local IP address: %s", ip_ntoa(local));	    return 0;	    }	}    else	{	strncpy(ppp_if[ppp_unit]->our_name, local_addr, MAXNAMELEN);	ppp_if[ppp_unit]->our_name[MAXNAMELEN-1] = 0;	}    if (local != 0)        wo->ouraddr = local;    if ((remote = hostGetByName (remote_addr)) == ERROR)	{	if ((((remote = inet_addr(remote_addr)) == ERROR)) || 	    (bad_ip_adrs(remote)))	    {	    syslog(LOG_ERR, "bad remote IP address: %s", ip_ntoa(remote));	    return 0;	    }	}    else	{	strncpy(ppp_if[ppp_unit]->remote_name, remote_addr, MAXNAMELEN);	ppp_if[ppp_unit]->remote_name[MAXNAMELEN-1] = 0;	}    if (remote != 0)        wo->hisaddr = remote;    return 1;}#ifdef	notyet/* * setnoipdflt - disable setipdefault() */static intsetnoipdflt(){    ppp_if[ppp_unit]->disable_defaultip = 1;    return 1;}#endif	/* notyet *//* * setipcpaccl - accept peer's idea of our address */static intsetipcpaccl(){    ppp_if[ppp_unit]->ipcp_wantoptions.accept_local = 1;    return 1;}/* * setipcpaccr - accept peer's idea of its address */static intsetipcpaccr(){    ppp_if[ppp_unit]->ipcp_wantoptions.accept_remote = 1;    return 1;}/* * setipdefault - default our local IP address based on our hostname. */voidsetipdefault(){    u_long local;    ipcp_options *wo = &ppp_if[ppp_unit]->ipcp_wantoptions;    /*     * If local IP address already given, don't bother.     */    if (wo->ouraddr != 0 || ppp_if[ppp_unit]->disable_defaultip)	return;    /*     * Look up our hostname (possibly with domain name appended)     * and take the first IP address as our local IP address.     * If there isn't an IP address for our hostname, too bad.     */    wo->accept_local = 1;       /* don't insist on this default value */    if ((local = hostGetByName(ppp_if[ppp_unit]->hostname)) == ERROR)	return;    if (local != 0 && !bad_ip_adrs(local))	wo->ouraddr = local;}/* * setnetmask - set the netmask to be used on the interface. */static intsetnetmask(argv)    char *argv;{    u_long mask;	    if ((mask = inet_addr(argv)) == ERROR || (ppp_if[ppp_unit]->netmask & ~mask) != 0) {	syslog(LOG_ERR, "Invalid netmask %s\n", argv);	return 0;    }    ppp_if[ppp_unit]->netmask = mask;    return (1);}/* * Return user specified netmask. A value of zero means no netmask has * been set. *//* ARGSUSED */u_longGetMask(addr)    u_long addr;{    return(ppp_if[ppp_unit]->netmask);}static intsetname(argv)    char *argv;{    if (ppp_if[ppp_unit]->our_name[0] == 0) {	strncpy(ppp_if[ppp_unit]->our_name, argv, MAXNAMELEN);	ppp_if[ppp_unit]->our_name[MAXNAMELEN-1] = 0;    }    return 1;}static intsetuser(argv)    char *argv;{    strncpy(ppp_if[ppp_unit]->user, argv, MAXNAMELEN);    ppp_if[ppp_unit]->user[MAXNAMELEN-1] = 0;    return 1;}static intsetpasswd(argv)    char *argv;{    strncpy(ppp_if[ppp_unit]->passwd, argv, MAXSECRETLEN);    ppp_if[ppp_unit]->passwd[MAXSECRETLEN-1] = 0;    return 1;}static intsetremote(argv)    char *argv;{    strncpy(ppp_if[ppp_unit]->remote_name, argv, MAXNAMELEN);    ppp_if[ppp_unit]->remote_name[MAXNAMELEN-1] = 0;    return 1;}#ifdef	notyetstatic intsetauth(){    ppp_if[ppp_unit]->auth_required = 1;    return 1;}#endif	/* notyet */static intsetdefaultroute(){    ppp_if[ppp_unit]->ipcp_wantoptions.default_route = 1;    return 1;}static intsetproxyarp(){    ppp_if[ppp_unit]->ipcp_wantoptions.proxy_arp = 1;    return 1;}static intsetdologin(){    ppp_if[ppp_unit]->uselogin = 1;    return 1;}/* * Functions to set the echo interval for modem-less monitors */static intsetlcpechointv(argv)    char *argv;{    return int_option(argv, &ppp_if[ppp_unit]->lcp_echo_interval);}static intsetlcpechofails(argv)    char *argv;{    return int_option(argv, &ppp_if[ppp_unit]->lcp_echo_fails);}/* * Functions to set timeouts, max transmits, etc. */static intsetlcptimeout(argv)    char *argv;{    return int_option(argv, &ppp_if[ppp_unit]->lcp_fsm.timeouttime);}static int setlcpterm(argv)    char *argv;{    return int_option(argv, &ppp_if[ppp_unit]->lcp_fsm.maxtermtransmits);}static int setlcpconf(argv)    char *argv;{    return int_option(argv, &ppp_if[ppp_unit]->lcp_fsm.maxconfreqtransmits);}static int setlcpfails(argv)    char *argv;{    return int_option(argv, &ppp_if[ppp_unit]->lcp_fsm.maxnakloops);}static int setipcptimeout(argv)    char *argv;{    return int_option(argv, &ppp_if[ppp_unit]->ipcp_fsm.timeouttime);}static int setipcpterm(argv)    char *argv;{    return int_option(argv, &ppp_if[ppp_unit]->ipcp_fsm.maxtermtransmits);}static int setipcpconf(argv)    char *argv;{    return int_option(argv, &ppp_if[ppp_unit]->ipcp_fsm.maxconfreqtransmits);}static int setipcpfails(argv)    char *argv;{    return int_option(argv, &ppp_if[ppp_unit]->ipcp_fsm.maxnakloops);}static int setpaptimeout(argv)    char *argv;{    return int_option(argv, &ppp_if[ppp_unit]->upap.us_timeouttime);}static int setpapreqs(argv)    char *argv;{    return int_option(argv, &ppp_if[ppp_unit]->upap.us_maxtransmits);}static int setchaptimeout(argv)    char *argv;{    return int_option(argv, &ppp_if[ppp_unit]->chap.timeouttime);}static int setchapchal(argv)    char *argv;{    return int_option(argv, &ppp_if[ppp_unit]->chap.max_transmits);}static int setchapintv(argv)    char *argv;{    return int_option(argv, &ppp_if[ppp_unit]->chap.chal_interval);}

⌨️ 快捷键说明

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