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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? bootpcmd.c

?? 這是新華龍(www.xhl.xom.xn)開發的
?? C
?? 第 1 頁 / 共 2 頁
字號:
/*************************************************/
/* Center for Information Technology Integration */
/*           The University of Michigan          */
/*                                               */
/* BOOTP is documented in RFC 951 and RFC 1048   */
/*************************************************/



#include <stdio.h>
#include <sys\types.h>
#include <sys\stat.h>
#include <time.h>
#include <ctype.h>
#include <stdarg.h>
#include "global.h"
#include "config.h"
#include "cmdparse.h"
#include "bootpd.h"
#include "netuser.h"
#include "iface.h"
#include "udp.h"
#include "arp.h"

#define BP_DEFAULT_TAB "bootptab"
#define BP_DEFAULT_LOG "bootplog"
#define BP_DEFAULT_DIR "bpfiles"
#define BP_DEFAULT_FILE "boot"

static char    *bootptab = BP_DEFAULT_TAB;
static FILE    *bootfp;                 /* bootptab fp */
static long     modtime;          	/* last modification time of bootptab */

static char    bootplog[64] = BP_DEFAULT_LOG;
static int	LogInFile = 0;	 	/* Should bp_log log in a file? */
static int	LogOnScreen = 0;	/* Should bp_log log on screen? */

static char    *line;            /* line buffer for reading bootptab */
static int     linenum;          /* current ilne number in bootptab */

extern int	Nhosts;          /* number of hosts in host structure */
extern struct host hosts[MHOSTS];

extern char    homedir[64];      /* bootfile homedirectory */
extern char    defaultboot[64];  /* default file to boot */
extern int32   bp_DefaultDomainNS[BP_MAXDNS]; /* default domain name server */
extern int	Nhosts;
extern struct udp_cb *Bootpd_cb;





static int bp_Homedir(int argc,char *argv[],void *p);
static int bp_DefaultFile(int argc,char *argv[],void *p);
static int bp_DynamicRange(int argc,char *argv[],void *p);
static int bp_donothing(int argc,char *argv[],void *p);
static int bp_Host(int argc,char *argv[],void *p);
static int bp_rmHost(int argc,char *argv[],void *p);
static int bp_DomainNS(int argc,char *argv[],void *p);
static int bp_Start(int argc,char *argv[],void *p);
static int bp_Stop(int argc,char *argv[],void *p);
static int bp_logFile(int argc,char *argv[],void *p);
static int bp_logScreen(int argc,char *argv[],void *p);
static void dumphosts(void);

void bootpd(struct iface *iface, struct udp_cb *sock, int cnt);

static struct cmds BootpdCmds[] = {
        "",             bp_donothing,           0, 0, NULL,
	"start", 	bp_Start,		0, 0, NULL,
	"stop",		bp_Stop,		0, 0, NULL,
	"dns",		bp_DomainNS,		0, 0, NULL,
        "dynip",    	bp_DynamicRange,     	0, 0, NULL,
	"host",		bp_Host,		0, 0, NULL,
	"rmhost",	bp_rmHost,		0, 0, NULL,
        "homedir",      bp_Homedir,          	0, 0, NULL,
        "defaultfile",  bp_DefaultFile,      	0, 0, NULL,
	"logfile",	bp_logFile,		0, 0, NULL,
	"logscreen",	bp_logScreen,		0, 0, NULL,
        NULL,       NULL,                 0, 0, NULL
};



int 
bootpdcmd (argc, argv, p)
int argc;
char *argv[];
void *p;
{
	return subcmd (BootpdCmds, argc, argv, p);
}


/* Start up bootp service */
static int
bp_Start (argc,argv,p)
int argc;
char *argv[];
void *p;
{

        struct socket lsock;
        time_t tloc;
	char *usage = "bootpd start\n";

	if (argc != 1) {
		printf (usage);
		return (-1);
	}

	time(&tloc);
        bp_log ("\n\n####BOOTP server starting at %s\n", ctime(&tloc));

        lsock.address = INADDR_ANY;
        lsock.port = IPPORT_BOOTPS;

        /* This way is better than recvfrom because it passes the iface in bootpd call */
       /* Listen doesn't work for datagrams. */

        if (Bootpd_cb == NULL) {
                if ((Bootpd_cb = open_udp(&lsock, bootpd)) == NULL) {
			printf ("bootpd: can't open_udp\n");	
			return (-1);
		}
        }

        /*
         * Read the bootptab file once immediately upon startup.
         */

        da_init();

        readtab();

        return (0);
}



/* Stop bootp service */
static int
bp_Stop (argc, argv, p)
int argc;
char *argv[];
void *p;
{
	time_t now;
	char *usage = "bootpd stop\n";

	if (argc != 1) {
		printf (usage);
		return -1;
	}

	time (&now);

        Nhosts = 0;
        da_shut();
        readtab_shut();
        del_udp (Bootpd_cb);
        Bootpd_cb = NULL;

	bp_log ("Bootpd shutdown %s", ctime (&now));
        return (0);
};



static int
bp_logFile (argc, argv, p)
int argc;
char *argv[];
void *p;
{
	int i;
	time_t now;
	char *usage = "bootpd logfile [<file_name> | default] [on | off] \n"; 

	time (&now);

	if (argc == 1) {
		if (LogInFile)
                	printf ("Bootpd logging to file '%s' turned on.\n", bootplog);
		else 
                	printf ("Bootpd logging to file '%s' turned off.\n", bootplog);
	}
	else {
		for (i = 1; i < argc; i++) {

			if (strcmp ("?", argv[i]) == 0) 
				printf (usage);

			else if (strcmp ("off", argv[i]) == 0) {
				bp_log ("Stopping file logging at %s", ctime(&now));
				LogInFile = 0;
			}
			else if (strcmp ("on", argv[i]) == 0) {
				LogInFile = 1;
				bp_log ("Starting file logging at %s", ctime(&now));
			}
			else if (strcmp ("default", argv[i]) == 0) {
				strcpy (bootplog, BP_DEFAULT_LOG);
				bp_log ("File for logging set to %s\n", bootplog);
			}
			else {
				strcpy (bootplog, argv[1]);
				bp_log ("File for logging set to %s\n", bootplog);
			}	
		}
	}
	return 0;
}


static int
bp_logScreen (argc, argv, p)
int argc;
char *argv[];
void *p;
{
	char *usage = "bootpd logscreen [on | off]\n";	

        if (argc == 1)
		if (LogOnScreen)	
                	printf ("Bootpd logging on screen turned on.\n");
		else 
                	printf ("Bootpd logging on screen turned off.\n");

        else if (argc == 2)  {
                if  (strcmp ("on", argv[1]) == 0)
                        LogOnScreen = 1;
                else if  (strcmp ("off", argv[1]) == 0)
                        LogOnScreen = 0;
		else printf (usage);
	}
	else printf (usage);
	return 0;
}




static int
bp_DomainNS (argc, argv, p)
int argc;
char *argv[];
void *p;
{
	int a0, a1, a2, a3;
	int i;
	char *usage = "bootpd dns [<IP addr of domain name server>...]\n";

	if (argc == 1) {
		printf ("Bootp domain name servers: ");
		for (i=0; (i < BP_MAXDNS) && (bp_DefaultDomainNS[i] != 0); i++) 
			printf (" %s", inet_ntoa (bp_DefaultDomainNS[i]));
		printf ("\n");
		return (0);
	}

	if (argc > 1) {
		if ((argc == 2) && (strcmp ("?", argv[1]) == 0)) {
			printf (usage);
			return 0;
		}
			
		/* A list of name servers has been given */
		/* reset the domain name server list */
		for (i= 0; i < BP_MAXDNS; i++) 
			bp_DefaultDomainNS[i] = 0;

		/* get ip address */
		for (i = 1; (i < argc) && (i < BP_MAXDNS); i++) {
                	if (4 != sscanf (argv[i], "%d.%d.%d.%d", &a0, &a1, &a2, &a3)) {
                       	 	printf("bad internet address: %s\n", argv[1], linenum);
				return  -1;
                	}
	        	bp_DefaultDomainNS[i-1] = aton(argv[i]);
		}
	}
	/* record for the loggers sake */
	bp_log ("Bootp domain name servers: ");
	for (i=0; (i < BP_MAXDNS) && (bp_DefaultDomainNS[i] != 0); i++) 
		bp_log (" %s", inet_ntoa (bp_DefaultDomainNS[i]));
	bp_log ("\n");
	return 0;
}



static int
bp_rmHost (argc, argv, p)
int argc;
char *argv[];
void *p;
{
	int i;
	struct host *hp = NULL;
	struct host *cp = NULL;
	char *usage = "bootpd rmhost <host name>\n";


	if (argc == 2) {
		
		/* Find the host record */
		for (i=0; i < Nhosts; i++) {
			if (strcmp (hosts[i].name, argv[1]) == 0) {
				hp = &(hosts[i]);
				break;
			}
		}	
		/* Return if not found */
		if (hp == NULL) {
			printf ("Host %s not in host tables.\n", argv[1]);
			return -1;
		}
		bp_log ("Host %s removed from host table\n", hp->name);
		cp = &(hosts [Nhosts - 1]);
		if (hp < cp) 
			memcpy(hp,cp,sizeof(struct host));
		Nhosts--;
		return 0;
	}
	else printf (usage);
	return 0;
}


/*
 * Printout the hosts table.
*/

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久精品99国产精品| 亚洲精品综合在线| 国产精品三级久久久久三级| 一区二区三区欧美激情| 国产在线精品视频| 欧美亚洲国产bt| 久久久精品免费网站| 亚洲国产综合人成综合网站| 国产盗摄视频一区二区三区| 欧美日韩在线一区二区| 国产精品护士白丝一区av| 日韩福利电影在线| 在线观看网站黄不卡| 国产精品久久久久影院亚瑟| 久久成人免费日本黄色| 欧美日本视频在线| 亚洲一区中文在线| 9久草视频在线视频精品| 国产亚洲一区二区在线观看| 日韩精品亚洲一区| 欧美三级视频在线观看| 一区二区视频在线| 99国产一区二区三精品乱码| 国产欧美日韩综合| 黄页视频在线91| 欧美成人一级视频| 美女久久久精品| 欧美群妇大交群的观看方式| 亚洲激情在线播放| 91成人免费在线| 亚洲欧美另类久久久精品| proumb性欧美在线观看| 国产精品欧美久久久久无广告| 国产一区二区三区免费观看| 精品少妇一区二区三区日产乱码 | 亚洲国产一区二区在线播放| 国产丝袜美腿一区二区三区| 蜜桃视频一区二区三区| 日韩欧美国产不卡| 日韩av电影一区| 日韩一区二区电影在线| 九一九一国产精品| 久久久久久久网| 国产成人av电影在线观看| 国产校园另类小说区| 国产91精品精华液一区二区三区| 国产女主播在线一区二区| 国产成人av电影在线| 国产精品久99| 欧美性猛片xxxx免费看久爱| 视频一区在线视频| 日韩一区二区在线播放| 国产乱码精品一区二区三区五月婷| 26uuu国产电影一区二区| 成人avav影音| 亚洲国产精品一区二区久久恐怖片| 精品视频一区三区九区| 日韩二区在线观看| 国产色产综合色产在线视频| av毛片久久久久**hd| 亚洲一级片在线观看| 日韩一区二区免费高清| 国产精品123区| 一区二区三区在线不卡| 日韩一区二区精品在线观看| 国产高清精品久久久久| 亚洲欧美偷拍另类a∨色屁股| 欧美久久一二区| 国产精品1区二区.| 亚洲综合小说图片| 久久久久久久久久久黄色| 91麻豆精品秘密| 另类的小说在线视频另类成人小视频在线| 精品国产乱码久久久久久浪潮| 成人国产精品免费观看| 婷婷开心久久网| 国产精品久久久久久妇女6080| 欧美久久一二区| 成人av电影在线播放| 蜜桃传媒麻豆第一区在线观看| 国产精品国产精品国产专区不蜜| 欧美日韩美女一区二区| 国产精品影视天天线| 亚洲国产欧美一区二区三区丁香婷| 2017欧美狠狠色| 欧美精选在线播放| 91视视频在线直接观看在线看网页在线看| 日韩电影在线一区| 一区二区三区中文字幕电影| 欧美激情中文字幕| 欧美va在线播放| 欧美日韩一本到| 91婷婷韩国欧美一区二区| 精品一区二区在线播放| 婷婷成人综合网| 亚洲综合免费观看高清完整版 | 日本一区二区成人| 欧美日韩三级视频| 91小宝寻花一区二区三区| 国产精品69毛片高清亚洲| 青青草原综合久久大伊人精品优势 | 国产福利一区在线| 裸体在线国模精品偷拍| 亚洲国产另类av| 亚洲精品国产精华液| 欧美韩国日本一区| 国产亚洲欧美一区在线观看| 日韩一级免费观看| 在线播放日韩导航| 欧美精品精品一区| 欧美日韩中文一区| 欧美日韩精品一区二区三区 | 在线日韩av片| 91天堂素人约啪| 91丝袜美女网| 91免费精品国自产拍在线不卡| 成人国产精品免费观看视频| 风间由美一区二区三区在线观看| 国产成人综合亚洲网站| 国内精品国产成人| 国产成人在线观看| 国产成a人无v码亚洲福利| 国产成都精品91一区二区三| 成人性生交大片免费看视频在线| 成人听书哪个软件好| 懂色av一区二区三区免费观看| 成人午夜私人影院| 久久综合色8888| 免费观看日韩av| 午夜成人免费视频| 亚洲.国产.中文慕字在线| 亚洲国产一区视频| 日本在线观看不卡视频| 久久99精品久久久久久国产越南 | 亚洲欧洲性图库| 亚洲伦理在线免费看| 五月天国产精品| 黄色小说综合网站| 蜜桃视频在线一区| 在线一区二区三区做爰视频网站| 99re成人精品视频| 在线一区二区三区| 欧美一区二区三区的| 亚洲精品一区在线观看| 国产精品久久久久影院亚瑟| 亚洲主播在线观看| 蜜桃视频在线一区| 成人性视频网站| 欧美色爱综合网| 精品国产成人系列| 亚洲人xxxx| 日韩成人免费电影| 成人午夜电影网站| 欧美精品日韩一区| 亚洲国产精品成人综合色在线婷婷| 成人欧美一区二区三区小说 | 粉嫩aⅴ一区二区三区四区五区| 99精品在线观看视频| 91精品国产麻豆国产自产在线| 久久久精品免费免费| 香蕉久久一区二区不卡无毒影院| 国产精品一二三| 欧美视频一区二| 中文文精品字幕一区二区| 亚洲成人中文在线| 成人性生交大片免费看视频在线| 欧美日本韩国一区| 国产精品看片你懂得| 毛片av中文字幕一区二区| 成人一级黄色片| 精品国产91乱码一区二区三区 | 樱花草国产18久久久久| 国内精品免费**视频| 欧美日韩成人在线一区| 亚洲欧洲日本在线| 久久成人18免费观看| 欧美日韩成人综合天天影院| 国产精品国产三级国产专播品爱网| 日韩**一区毛片| 欧美中文字幕久久| 日韩一区中文字幕| 国产91综合网| 久久免费电影网| 久久国产精品色| 欧美另类久久久品| 亚洲一区av在线| 色成年激情久久综合| 国产精品三级av| 国产成人免费视频一区| 亚洲精品一区二区三区蜜桃下载| 香蕉久久一区二区不卡无毒影院 | 久久亚洲一区二区三区四区| 视频精品一区二区| 欧美性大战xxxxx久久久| 亚洲日本中文字幕区| 99久久精品免费| 亚洲欧洲精品一区二区精品久久久| 国产麻豆91精品| 国产欧美日韩另类一区| 国产福利一区在线|