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

📄 main.c

📁 IPcop软路由防火墙 FREE 开源源代码
💻 C
字号:
/* SmoothWall setup program. * * This program is distributed under the terms of the GNU General Public * Licence.  See the file COPYING for details. * * (c) Lawrence Manning, 2001 * Contains main entry point, and misc functions. *  * modified 16/11/2002 eoberlander - French language added * * $Id: main.c,v 1.4.2.6 2005/07/11 16:07:59 franck78 Exp $ *  */#include "setup.h"FILE *flog = NULL;char *mylog;char **ctr = NULL;int automode = 0;extern char *bz_tr[];extern char *cs_tr[];extern char *da_tr[];extern char *en_tr[];extern char *es_tr[];extern char *fi_tr[];extern char *fr_tr[];extern char *hu_tr[];extern char *la_tr[];extern char *nl_tr[];extern char *de_tr[];extern char *tr_tr[];extern char *it_tr[];extern char *el_tr[];extern char *so_tr[];extern char *sv_tr[];extern char *no_tr[];extern char *pl_tr[];extern char *pt_tr[];extern char *vi_tr[];int main(int argc, char *argv[]){#ifdef  LANG_EN_ONLY	char *shortlangnames[] = { "en", NULL };	char **langtrs[] = { en_tr, NULL };#else	char *shortlangnames[] = { "bz", "cs", "da", "de", "en", "es", "fr", "el", "it", "la", "hu", "nl", "no", "pl", "pt", "so", "fi", "sv", "tr", "vi", NULL };	char **langtrs[] = { bz_tr, cs_tr, da_tr, de_tr, en_tr, es_tr, fr_tr, el_tr, it_tr, la_tr, hu_tr, nl_tr, no_tr, pl_tr, pt_tr, so_tr, fi_tr, sv_tr, tr_tr, vi_tr, NULL };#endif	int choice;	char *sections[11]; /* need to fill this out AFTER knowning lang */	int rc;	struct keyvalue *kv;	char selectedshortlang[STRING_SIZE] = "en";	char title[STRING_SIZE];	int langcounter;	int autook = 0;		/* Log file/terminal stuff. */	if (argc >= 2)		mylog = argv[1];		else		mylog = strdup("/root/setup.log");	if (!(flog = fopen(mylog, "w+")))	{		printf("Couldn't open log terminal\n");		return 1;	}		if (argc >= 3)		automode = 1;		fprintf(flog, "Setup program started.\n");			kv = initkeyvalues();	if (!(readkeyvalues(kv, CONFIG_ROOT "/main/settings")))	{		printf("%s is not properly installed.\n", NAME);		return 1;	}	findkey(kv, "LANGUAGE", selectedshortlang);		for (langcounter = 0; langtrs[langcounter]; langcounter++)	{		if (strcmp(selectedshortlang, shortlangnames[langcounter]) == 0)		{			ctr = langtrs[langcounter];			break;		}	}	if (!ctr)	{		/* zh,lt,ro,ru,th languages not available in setup, so use English */		for (choice = 0; shortlangnames[choice]; choice++)		{			if (strcmp(shortlangnames[choice], "en") == 0)				break;		}		if (!shortlangnames[choice])			goto EXIT;		ctr = langtrs[choice];	}	sections[0] = ctr[TR_KEYBOARD_MAPPING];	sections[1] = ctr[TR_TIMEZONE];	sections[2] = ctr[TR_HOSTNAME];	sections[3] = ctr[TR_DOMAINNAME];	sections[4] = ctr[TR_ISDN_CONFIGURATION];	sections[5] = ctr[TR_NETWORKING];		sections[6] = ctr[TR_ROOT_PASSWORD];	sections[7] = ctr[TR_ADMIN_PASSWORD];	sections[8] = NULL;		newtInit();	newtCls();	FILE *f_title;	if ((f_title = fopen ("/etc/issue", "r"))) 	{	    fgets (title, STRING_SIZE, f_title);	    if (title[strlen(title) - 1] == '\n')		title[strlen(title) - 1] = '\0';	    fclose (f_title);		} else {	    sprintf (title, "%s v%s - %s", NAME, VERSION, SLOGAN);	}	newtDrawRootText(14, 0, title);	newtPushHelpLine(ctr[TR_HELPLINE]);			if (automode == 0)	{		choice = 0;		for (;;)		{			rc = newtWinMenu(ctr[TR_SECTION_MENU],				ctr[TR_SELECT_THE_ITEM], 50, 5, 5, 11,				sections, &choice, ctr[TR_OK], ctr[TR_QUIT], NULL);						if (rc == 2)				break;						switch (choice)			{				case 0:					handlekeymap();					break;								case 1:					handletimezone();					break;									case 2:					handlehostname();					break;								case 3:					handledomainname();					break;				case 4:					handleisdn();					break;				case 5:					handlenetworking();					break;													case 6:					handlerootpassword();					break;									case 7:					handleadminpassword();					break;						default:					break;			}		}	}	else	{		if (!(handlekeymap()))			goto EXIT;		if (!(handletimezone()))			goto EXIT;			if (!(handlehostname()))			goto EXIT;		if (!(handledomainname()))			goto EXIT;		if (!(handleisdn()))			goto EXIT;		if (!(handlenetworking()))			goto EXIT;		if (!(handledhcp()))			goto EXIT;		if (!(handlerootpassword()))			goto EXIT;		if (!(handleadminpassword()))			goto EXIT;		autook = 1;	}EXIT:		if (automode != 0)	{		sprintf (title, "%s v%s - %s", NAME, VERSION, SLOGAN);		if (autook)			newtWinMessage(title, ctr[TR_OK], ctr[TR_SETUP_FINISHED]);		else			newtWinMessage(ctr[TR_WARNING], ctr[TR_OK], ctr[TR_SETUP_NOT_COMPLETE]);	}		fprintf(flog, "Setup program ended.\n");	fflush(flog);	fclose(flog);			newtFinished();	return 0;}

⌨️ 快捷键说明

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