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

📄 upgrade-v130-v140.c

📁 IPcop软路由防火墙 FREE 开源源代码
💻 C
📖 第 1 页 / 共 2 页
字号:
	return 0;}int _add_dnsmasq_user() {	mysystem("/bin/chroot /harddisk /usr/sbin/userdel dnsmasq");	mysystem("/bin/chroot /harddisk /usr/sbin/groupdel dnsmasq");	mysystem("/bin/chroot /harddisk /usr/sbin/groupadd -g 103 dnsmasq");	mysystem("/bin/chroot /harddisk /usr/sbin/useradd  -u 103 -g dnsmasq -d / -s /bin/false -M dnsmasq");    	return 0;}int _add_cron_user() {	mysystem("/bin/chroot /harddisk /usr/sbin/userdel cron");	mysystem("/bin/chroot /harddisk /usr/sbin/groupdel cron");	mysystem("/bin/chroot /harddisk /usr/sbin/groupadd -g 104 cron");	mysystem("/bin/chroot /harddisk /usr/sbin/useradd  -u 104 -g cron -d / -s /bin/false -M cron");    	return 0;}int _add_sysklogd_user() {	mysystem("/bin/chroot /harddisk /usr/sbin/userdel syslogd");	mysystem("/bin/chroot /harddisk /usr/sbin/groupdel syslogd");	mysystem("/bin/chroot /harddisk /usr/sbin/groupadd -g 105 syslogd");	mysystem("/bin/chroot /harddisk /usr/sbin/useradd  -u 105 -g syslogd -d / -s /bin/false -M syslogd");	mysystem("/bin/chroot /harddisk /usr/sbin/userdel klogd");	mysystem("/bin/chroot /harddisk /usr/sbin/groupdel klogd");	mysystem("/bin/chroot /harddisk /usr/sbin/groupadd -g 106 klogd");	mysystem("/bin/chroot /harddisk /usr/sbin/useradd  -u 106 -g klogd -d / -s /bin/false -M klogd");    	return 0;}int _del_setup_user() {	mysystem("/bin/chroot /harddisk /usr/sbin/userdel setup");    	return 0;}int _create_nobody_dir(){	mysystem("/bin/chroot /harddisk /usr/sbin/usermod -d /home/nobody nobody");	return 0;}int _del_useless_user_group(){	mysystem("/bin/chroot /harddisk /usr/sbin/userdel games");	mysystem("/bin/chroot /harddisk /usr/sbin/groupdel games");	mysystem("/bin/chroot /harddisk /usr/sbin/userdel news");	mysystem("/bin/chroot /harddisk /usr/sbin/groupdel news");	mysystem("/bin/chroot /harddisk /usr/sbin/userdel ftp");	mysystem("/bin/chroot /harddisk /usr/sbin/userdel gopher");	mysystem("/bin/chroot /harddisk /usr/sbin/userdel lp");	mysystem("/bin/chroot /harddisk /usr/sbin/userdel uucp");	mysystem("/bin/chroot /harddisk /usr/sbin/userdel adm");	mysystem("/bin/chroot /harddisk /usr/sbin/groupdel adm");	mysystem("/bin/chroot /harddisk /usr/sbin/userdel operator");	mysystem("/bin/chroot /harddisk /usr/sbin/userdel sync");	mysystem("/bin/chroot /harddisk /usr/sbin/userdel shutdown");	mysystem("/bin/chroot /harddisk /usr/sbin/userdel halt");	mysystem("/bin/chroot /harddisk /usr/sbin/groupdel man");	return 0;}void _del_pulsardsl_dir(){	mysystem("/bin/chroot /harddisk /bin/rm -rf " CONFIG_ROOT "/pulsardsl");}void _del_fritzdsl_dir(){	mysystem("/bin/chroot /harddisk /bin/rm -rf " CONFIG_ROOT "/fritzdsl");}int _convert_vpn() {	int count=1;	FILE *vpn1, *vpn2;	char vpnip[STRING_SIZE] = "";	char greennetaddr[STRING_SIZE] = "";	struct keyvalue *kv = initkeyvalues();	char vpnsrctemp[STRING_SIZE], vpndsttemp[STRING_SIZE];	char *name, *left, *left_nexthop, *left_subnet, *right, *right_nexthop, *right_subnet, *secret, *enabled, *compression;	if (!(vpn1 = fopen ("/harddisk" CONFIG_ROOT "/vpn/config", "r"))) return 1;	if (!(vpn2 = fopen ("/harddisk" CONFIG_ROOT "/vpn/config.new", "w"))) 	{		fclose(vpn1);		return 1;	}	if (!(readkeyvalues(kv, "/harddisk" CONFIG_ROOT "/ethernet/settings")))	{		fclose (vpn1);		fclose (vpn2);		freekeyvalues(kv);		errorbox(ctr[TR_UNABLE_TO_OPEN_SETTINGS_FILE]);		return 0;	}	findkey(kv, "GREEN_NETADDRESS", greennetaddr);	freekeyvalues(kv);	kv = initkeyvalues();	if (!(readkeyvalues(kv, "/harddisk" CONFIG_ROOT "/vpn/settings")))	{		fclose (vpn1);		fclose (vpn2);		freekeyvalues(kv);		errorbox(ctr[TR_UNABLE_TO_OPEN_SETTINGS_FILE]);		return 0;	}			/* if no VPN_IP is defined, we must turn it off to force the user	 * to enter a value once upgraded */	findkey(kv, "VPN_IP", vpnip);	if (strlen(vpnip) == 0) {		replacekeyvalue(kv, "ENABLED", "off");		writekeyvalues(kv, "/harddisk" CONFIG_ROOT "/vpn/settings");	}	freekeyvalues(kv);        while (fgets (vpnsrctemp, STRING_SIZE, vpn1) != NULL) {		if (isdigit (vpnsrctemp[0])) {			/* Already converted to new format */			fputs(vpnsrctemp, vpn2);			continue;		}		name          = NULL;		left          = NULL;		left_nexthop  = NULL;		left_subnet   = NULL;		right         = NULL;		right_nexthop = NULL;		right_subnet  = NULL;		secret        = NULL;		enabled       = NULL;		compression   = NULL;				if (vpnsrctemp[strlen(vpnsrctemp) - 1] == '\n')			vpnsrctemp[strlen(vpnsrctemp) - 1] = '\0';		name          = strtok (vpnsrctemp, ",");		left          = strtok (NULL, ",");		left_nexthop  = strtok (NULL, ",");		left_subnet   = strtok (NULL, ",");		right         = strtok (NULL, ",");		right_nexthop = strtok (NULL, ",");		right_subnet  = strtok (NULL, ",");		secret        = strtok (NULL, ",");		enabled       = strtok (NULL, ",");		compression   = strtok (NULL, ",");		if (!(name && left && left_subnet &&			right && right_subnet &&			secret && enabled && compression ))			continue;		/* Try and guess what side IPCop is on; defaults to left */		if (strstr(greennetaddr, right_subnet)) {			sprintf (vpndsttemp, "%d,%s,%s,,net,psk,%s,right,,%s,,%s,%s,,%s,,,,,,,,,,,,,RED\n",							count, enabled, name, secret, right_subnet,							left, left_subnet, compression);		} else {			sprintf (vpndsttemp, "%d,%s,%s,,net,psk,%s,left,,%s,,%s,%s,,%s,,,,,,,,,,,,,RED\n",							count, enabled, name, secret, left_subnet,							right, right_subnet, compression);		}		fputs(vpndsttemp, vpn2);		count++;	}	/* Close source and destination vpn files */	fclose (vpn1);	fclose (vpn2);	/* Move the new vpn file */	rename ("/harddisk" CONFIG_ROOT "/vpn/config.new",		"/harddisk" CONFIG_ROOT "/vpn/config");	chown  ("/harddisk" CONFIG_ROOT "/vpn/config", 99, 99);	return 0;}void _convert_ppp_settings_V140() {	DIR *dirp;	struct dirent *dp;	char filename[STRING_SIZE];		dirp = opendir( "/harddisk" CONFIG_ROOT "/ppp" );	while ( (dp = readdir( dirp )) != NULL ) {		if ( strstr( dp->d_name, "settings" ) == dp->d_name ) {			snprintf (filename, STRING_SIZE-1, "%s/%s", 				"/harddisk" CONFIG_ROOT "/ppp", dp->d_name);			replace (filename, "PERSISTENT=on", "RECONNECTION=persistent");			replace (filename, "DIALONDEMAND=on", "RECONNECTION=dialondemand");			replace (filename, "MODULATION=GDTM", "MODULATION=GDMT");			chown (filename, 99, 99);		}		}	(void) closedir( dirp );}void _convert_net_settings_V140(){	replace ("/harddisk" CONFIG_ROOT "/ethernet/settings", "eepro100", "e100");	chown   ("/harddisk" CONFIG_ROOT "/ethernet/settings", 99, 99);}void _convert_keymap() {	replace("/harddisk" CONFIG_ROOT "/main/settings", "KEYMAP=/lib/kbd", "KEYMAP=/usr/share/kbd");	replace("/harddisk" CONFIG_ROOT "/main/settings", ".kmap.gz", ".map.gz");	chown  ("/harddisk" CONFIG_ROOT "/main/settings", 99, 99);}void _convert_speedtouch() {	FILE *speedtchbootfile;	FILE *speedtchfirmfile;	if (( speedtchfirmfile = fopen ("/harddisk" CONFIG_ROOT "/alcatelusb/firmware.v4.bin", "r")))	{		fclose (speedtchfirmfile);		if  ((speedtchbootfile = fopen ("/harddisk" CONFIG_ROOT "/alcatelusb/boot.v4.bin", "r")))  {			fclose (speedtchbootfile);			system("/bin/cat /harddisk" CONFIG_ROOT "/alcatelusb/boot.v4.bin "				"/harddisk" CONFIG_ROOT "/alcatelusb/firmware.v4.bin"				"> /harddisk" CONFIG_ROOT "/alcatelusb/firmware.v4_b.bin");			remove ("/harddisk" CONFIG_ROOT "/alcatelusb/boot.v4.bin");			remove ("/harddisk" CONFIG_ROOT "/alcatelusb/firmware.v4.bin");			chown ("/harddisk" CONFIG_ROOT "/alcatelusb/firmware.v4_b.bin", 99, 99);		}	}	if (( speedtchfirmfile = fopen ("/harddisk" CONFIG_ROOT "/alcatelusb/firmware.v123.bin", "r"))) {		fclose (speedtchfirmfile);		system("/bin/cat /harddisk" CONFIG_ROOT "/alcatelusb/boot.v123.bin "			"/harddisk" CONFIG_ROOT "/alcatelusb/firmware.v123.bin"			"> /harddisk" CONFIG_ROOT "/alcatelusb/firmware.v0123.bin");		remove ("/harddisk" CONFIG_ROOT "/alcatelusb/firmware.v123.bin");	}	remove ("/harddisk" CONFIG_ROOT "/alcatelusb/boot.v123.bin");	rename ("/harddisk" CONFIG_ROOT "/alcatelusb/mgmt.o", "/harddisk" CONFIG_ROOT "/alcatelusb/firmware.v0123.bin");	chown ("/harddisk" CONFIG_ROOT "/alcatelusb/firmware.v0123.bin", 99, 99);}void _convert_isapnp() {	FILE *isapnpfile;	mkdir ("/harddisk" CONFIG_ROOT "/isapnp", S_IRWXU|S_IRWXG|S_IRWXO );	if (( isapnpfile = fopen ("/harddisk/etc/isapnp.conf", "r"))) {		fclose (isapnpfile);		rename ("/harddisk/etc/isapnp.conf", "/harddisk" CONFIG_ROOT "/isapnp/isapnp.conf");	} else {		if (( isapnpfile = fopen ("/harddisk" CONFIG_ROOT "/isapnp/isapnp.conf", "r"))) {			fclose(isapnpfile);		} else {			isapnpfile = fopen ("/harddisk" CONFIG_ROOT "/isapnp/isapnp.conf", "w");			fclose(isapnpfile);		}	}}int upgrade_v130_v140() {	_del_setup_user();	_del_useless_user_group();	_add_logwatch_user();	_add_sshd_user();	_add_dnsmasq_user();	_add_cron_user();	_add_sysklogd_user();	_del_pulsardsl_dir();	_del_fritzdsl_dir();	_convert_vpn();	_handledomainname();	_fixsquid();	_fixeagleusb();	_create_nobody_dir();	_convert_ppp_settings_V140();	_convert_net_settings_V140();	_fixdhcp_30();	_convert_keymap();	_convert_speedtouch();	_convert_isapnp();	return 0;}

⌨️ 快捷键说明

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