示例#1
0
文件: main.c 项目: serikovigor/surd
/* One start -----------------------------------------------------------------*/
static void startup()
{
    unsigned char err = 0;

    init_hardware();
    dbg_init();
    dbg_print_app_ver();
    crc32_init();
    pins_init();
    //spi0_init();    // used in m25pexx.c (FLASH)
    spi1_init();
    adc_init();
    err = memory_init();  // memory initialization, external EEPROM (used in pref.c, orion.c), external FLASH, internal FLASH
    if (err)
       goto err;
    pref_init();
    ds1390_init();
    evt_fifo_init();
    GPS_init();
    //SIM900_init();
    light_init();
    saveDatePorojectIP();//новые параметры связи
    vpu_init();  /*VPU start*/
    //Init_USB();
    //if (PROJ.jornal.power_on)
   //Event_Push_Str("СТАРТ");
    return;
err:
  Err_led(err);
}
示例#2
0
文件: pref.c 项目: zixia/nospam
void pref_setprefs()
{
	if (*cgi("do.changeprefs"))
	{
	char	buf[1000];
	FILE	*fp;
	char	*p;
	char	*q;

		sprintf(buf, SORTORDER "=%c " PAGESIZE "=%s "
			AUTOPURGE_V "=%s " FLOWEDTEXT "=%s "
			NOARCHIVE "=%s " STARTOFWEEK "=%d",
			*cgi("sortorder"), cgi("pagesize"),
			cgi("autopurge"),
			*cgi(FLOWEDTEXT_PREF) ? "1":"0",
			*cgi(NOARCHIVE_PREF) ? "1":"0",

			// by lfan, cancel calendar
			//(int)((unsigned)atoi(cgi(STARTOFWEEK)) % 7)
			0
			);

		if (*cgi(OLDEST1ST_PREF))
			strcat(buf, " " OLDEST1ST);
		if (*cgi(FULLHEADERS_PREF))
			strcat(buf, " " FULLHEADERS);
		if (!*cgi(HTML_PREF))
			strcat(buf, " " NOHTML);
		if (*cgi("preffrom"))
			pref_setfrom(cgi("preffrom"));

		p=append_str(buf, FROM, pref_from);
		q=append_str(p, LDAP, pref_ldap);
		write_sqconfig(".", CONFIGFILE, q);
		free(p);
		free(q);
		pref_init();

		/* by lfan, in other setting
		if ((fp=fopen(SIGNATURE, "w")) != NULL)
		{
			fprintf(fp, "%s", cgi("signature"));
			fclose(fp);
		}

		savemailinglists(cgi("mailinglists"));
		*/
	}
	// by lfan, support signature
	else if (*cgi("do.changesign"))
	{
	FILE *fp;
		if ((fp=fopen(SIGNATURE, "w")) != NULL)
		{
			fprintf(fp, "%s", cgi("signature"));
			fclose(fp);
		}
	}
	//by roy, support spam
	else if (*cgi("do.changespam"))
	{
		FILE *fp;
		char fpath[256];
		get_antispam_file(fpath);
		if ((fp=fopen(fpath, "w")) != NULL)
		{
			if (!(*cgi("spam"))) {
				fprintf(fp,"0");
			} else if (!strcmp(cgi("spam"),"1") )
				fprintf(fp, "1");
			else  if (!strcmp(cgi("spam"),"2") )
				fprintf(fp,"2");
			else
				fprintf(fp,"0");
			fclose(fp);
		}
	}
	// by lfan, support forward
	else if (*cgi("do.changefwd"))
        {
        FILE *fp1, *fp2;
        char buf[512], fpath[256], folder[256], *p;

                int lastc;
		get_dotqmail_file(fpath);
		p = cgi("forwardlists");

        	sprintf(folder, "%s.tmp", fpath);

        	if ((fp2=fopen(folder, "w")) == NULL)
        	        return;


		lastc = 1;
		
		if ((fp1=fopen(fpath, "r")) != NULL)
		{
		    while (fgets(buf, sizeof(buf), fp1))
		    {
			if( buf[0] == '&' ) continue;
			if( buf[0] == '#' )
			{
				if( *cgi("save") || strlen(p) < 4 ) 
					fprintf(fp2, "%s", buf+1);
				else		
					fprintf(fp2, "%s", buf);
			}
			else {
				if( *cgi("save") || strlen(p) < 4)
					fprintf(fp2, "%s", buf);
				else
					fprintf(fp2, "#%s", buf);
			}
			lastc = 0;
		    }
		    fclose(fp1);
		}

		if( lastc )
		{
			if( strlen(p) < 4 ) {
				unlink( fpath );
				return;
			}
			// by lfan, if first created, add deliver
			if( *cgi("save") )
				fprintf(fp2, "./Maildir/\n" );
		}

        	for (lastc='\n'; *p; p++)
        	{
        	    if (isspace((int)(unsigned char)*p) && *p != '\n')
        	        continue;
        	    if (*p == '\n' && lastc == '\n')
        	        continue;
        	    if (lastc == '\n')
        	    {
        	        putc('&', fp2);
        	    }
        	    putc(*p, fp2);
        	    lastc = *p;
        	}
		if( lastc != '\n' )
			putc('\n', fp2);
        	fclose(fp2);
        	rename(folder, fpath);
        }

	if (*cgi("do.changepwd") && auth_changepass)
	{
		int status=1;
		const	char *p=cgi("newpass");
		int has_syspwd=0;

		if ( *p && strcmp(p, cgi("newpass2")) == 0)
		{
			has_syspwd=
				login_changepwd(sqwebmail_mailboxid,
						cgi("oldpass"), p,
						&status);
		}

		if (has_syspwd || status)
		{
			printf("%s\n", getarg("PWDERR"));
		}
		else
			printf("%s\n", getarg("PWDCHGOK"));
	}
}