コード例 #1
0
ファイル: lyclc.c プロジェクト: alayasix/LuoYunCloud
static void __main_clean(int keeppid)
{
    if (g_c == NULL)
        return;

    job_cleanup();
    ly_db_close();
    ly_clc_ip_clean();
    ly_entity_store_destroy();
    ly_epoll_close();
    if (keeppid == 0)
        lyutil_remove_pid_file(g_c->pid_path, PROGRAM_NAME);
    if (g_c->conf_path)
        free(g_c->conf_path);
    if (g_c->log_path)
        free(g_c->log_path);
    if (g_c->db_name)
        free(g_c->db_name);
    if (g_c->db_user)
        free(g_c->db_user);
    if (g_c->db_pass)
        free(g_c->db_pass);
    if (g_c->clc_ip)
        free(g_c->clc_ip);
    if (g_c->clc_mcast_ip)
        free(g_c->clc_mcast_ip);
    if (g_c->clc_data_dir)
        free(g_c->clc_data_dir);
    lyxml_cleanup();
    logclose();
    free(g_c);
    return;
}
コード例 #2
0
ファイル: base_test.c プロジェクト: Heuristack/Productivity
int main(){

	printf("Hello, base!");

	daemoninit(NOCHDIR, CLOSEFD);

	if (logopen("daemon.log") < 0)
		perror("main: logopen failed!");

	sleep(3);

	logtrace("%s: enter!", timestamp());

	timepoint start;
	timepin(&start);

	sleep(3);

	timepoint currt;
	timepin(&currt);

	timerange interval = timeint(start, currt);

	logtrace("time elapse: %.4f seconds!", timeint(start, currt));
	logtrace("time elapse: %.4f seconds!", interval);

	logtrace("%s: leave!", timestamp());

	logclose();
	return 0;

}
コード例 #3
0
ファイル: log.c プロジェクト: BlueFoxCN/pair_sound
bool Log_Writer::_write(char *_pbuffer, int len)
{
	if(0 != access(m_filelocation, W_OK))
	{	
		pthread_mutex_lock(&m_mutex);
		//锁内校验 access 看是否在等待锁过程中被其他线程loginit了  避免多线程多次close 和init
		if(0 != access(m_filelocation, W_OK))
		{
			logclose();
			loginit(m_system_level, m_filelocation, m_isappend, m_issync);
		}
		pthread_mutex_unlock(&m_mutex);
	}

	if(1 == fwrite(_pbuffer, len, 1, fp)) //only write 1 item
	{
		if(m_issync)
          	fflush(fp);
		*_pbuffer='\0';
    }
    else 
	{
        int x = errno;
	    fprintf(stderr, "Failed to write to logfile. errno:%s    message:%s", strerror(x), _pbuffer);
	    return false;
	}
	return true;
}
コード例 #4
0
ファイル: log.c プロジェクト: Evan0524/flowd
/* (re-)initialise logging */
void
loginit(const char *ident, int to_stderr, int debug_flag)
{
	if (logstarted)
		logclose();

	logstarted = 1;
	logdebug = (debug_flag != 0);

	if (to_stderr)
		logstderr = 1;
	else
		openlog(ident, LOG_PID, LOG_DAEMON);
}
コード例 #5
0
ファイル: logger_test.c プロジェクト: Ahmed-Azri/nesox
int main(){

//logopen("loggertest.log");
logdup(1);

logtrace("%s", "Hello, LOG!!!!Hello, LOG!!!!Hello, LOG!!!!Hello, LOG!!!!Hello, LOG!!!!Hello, LOG!!!!Hello, LOG!!!!Hello, LOG!!!!Hello, LOG!!!!");
logerror("%s", "Hello, LOG!!!!");
logstats("%s", "Hello, LOG!!!!");

LOG("%s", "How about this macro?");

logclose();

return 0; }
コード例 #6
0
ファイル: lynode.c プロジェクト: Alvin0113/LuoYunCloud
static void __main_clean(int keeppid)
{
    if (g_c == NULL)
        return;


    NodeConfig *c = &g_c->config;
    NodeSysConfig *s = &g_c->config_sys;

    ly_epoll_close();
    libvirt_close();
    if (keeppid == 0)
        lyutil_remove_pid_file(c->pid_path, PROGRAM_NAME);
    lyauth_free(&g_c->auth);
    if (c->clc_ip)
        free(c->clc_ip);
    if (c->clc_mcast_ip)
        free(c->clc_mcast_ip);
    if (c->conf_path)
        free(c->conf_path);
    if (c->sysconf_path)
        free(c->sysconf_path);
    if (c->node_data_dir)
        free(c->node_data_dir);
    if (c->ins_data_dir)
        free(c->ins_data_dir);
    if (c->app_data_dir)
        free(c->app_data_dir);
    if (c->log_path)
        free(c->log_path);
    if (s->clc_ip)
        free(s->clc_ip);
    if (s->node_secret)
        free(s->node_secret);
    if (g_c->clc_ip)
        free(g_c->clc_ip);
    if (g_c->node_ip)
        free(g_c->node_ip);
    if (g_c->node) {
        luoyun_node_info_cleanup(g_c->node);
        free(g_c->node);
    }
    free(g_c);
    logclose();
    lyxml_cleanup();
    return;
}
コード例 #7
0
int main(int argc, char *argv[])
{
  const char *s;
  
  logopen("l_pmx.log","w");
  
  s=pmxsearch("田","電田説");
  logcheck(s);
  
  s=pmxsearch("(田|","電田説");
  logcheck(s);

  s=pmxsearch("<utf>えxもa","電田説モ");
  logcheck(!s);
  
  s=pmxsearch("<utf>田(もa|)","電田説モ");
  logcheck(s);
  
  s=pmxsearch("<iso>(<.>)a","電a");
  logcheck(s && pmxlen(1) == 1);

  s=pmxsearch("<utf>(<.>)a","電a");
  logcheck(s && pmxlen(1) == 3);

  s=pmxsearch("<+.>","レモ デンタト");
  logcheck(s);

  s=pmxsearch("<utf><+.>","レモ デンタト");
  logcheck(s);

  s=pmxsearch("<+.>","z電");
  logcheck(s);
  
  s=pmxsearch("<utf>電田説モ","電田説モ");
  logcheck(s);
  
   s=pmxsearch("<+.>","z電");
  logcheck(s);

  logclose();
  exit(0);
}
コード例 #8
0
ファイル: osmanager.c プロジェクト: Alvin0113/LuoYunCloud
static void __main_clean(int keeppid)
{
    OSMConfig *c = &g_c->config;

    loginfo("%s exit normally\n", PROGRAM_NAME);
    ly_epoll_close();
    lyauth_free(&g_c->auth);
    LY_SAFE_FREE(c->clc_ip)
    LY_SAFE_FREE(c->clc_mcast_ip)
    LY_SAFE_FREE(c->osm_secret)
    LY_SAFE_FREE(c->log_path)
    LY_SAFE_FREE(c->conf_path)
    LY_SAFE_FREE(c->storage_ip)
    LY_SAFE_FREE(c->storage_parm)
    LY_SAFE_FREE(g_c->clc_ip)
    LY_SAFE_FREE(g_c->osm_ip)
    free(g_c);
    logclose();
    return;
}
コード例 #9
0
ファイル: log.cpp プロジェクト: magicminglee/c-log
bool LogWriter::write(char *pbuffer, int len) {
	if(0 != access(m_filelocation, W_OK)) {
		pthread_mutex_lock(&m_mutex);
		if(0 != access(m_filelocation, W_OK)) {
			logclose();
			loginit(m_system_level, m_filelocation, m_isappend, m_issync);
		}
		pthread_mutex_unlock(&m_mutex);
	}

	if(1 == fwrite(pbuffer, len, 1, fp)) {
		if(m_issync)
          	fflush(fp);
		*pbuffer='\0';
    }
    else {
        int x = errno;
	    fprintf(stderr, "Failed to write to logfile. errno:%s    message:%s", strerror(x), pbuffer);
	    return false;
	}
	return true;
}
コード例 #10
0
ファイル: log.cpp プロジェクト: gityf/log
bool LogWriter::log(ELogLevel l, const char* format, ...) {
    if (l > level_) {
        return false;
    }
    char* bPtr;
    va_list ap;
    va_start(ap, format);
    int blen = ::vasprintf(&bPtr, format, ap);
    if (blen < 0) {
        va_end(ap);
        return false;
    }
    va_end(ap);
    char header[100] = { 0 };
    int hlen = 0;
    logHeader(header, hlen, l);
    INIT_IOV(2);
    SET_IOV_LEN(header, hlen);
    SET_IOV_LEN(bPtr, blen);
    if (inode_ != fileNode() || !inode_) {
        rwlock_.WLock();
        if (inode_ != fileNode() || !inode_) {
            logclose();
            loginit(level_, logFile_);
        }
        rwlock_.UnLock();
    }
    bool ret = true;
    rwlock_.RLock();
    if (::writev(fd_, iovs, 2) <= 0) {
        ret = false;
    }
    rwlock_.UnLock();
    free(bPtr);
    return ret;
}
コード例 #11
0
ファイル: ut_dpq.c プロジェクト: rdentato/clibutl
int main(int argc, char *argv[])
{
  
  vec_t v;
  //int *pk;
  int k;
  
  logopen("l_dpq.log","w");
  
  v=vecnew(int);
  logcheck(veccount(v) == 0);
  
  vecset(int,v,0,37);
  vecset(int,v,1,5);
  vecset(int,v,2,79);

  //logtable(v);
  
  vecsort(v,intcmp);
  logcheck(vecsorted(v));
  
  //logtable(v);
  
  vecset(int,v,0,3);
  vecset(int,v,1,57);
  vecset(int,v,2,79);

  //logtable(v);
  
  vecsort(v,intcmp);
  logcheck(vecsorted(v));
  
  //logtable(v);
  logtrace("random vector (small)");
  srand(time(0));
  for (k=0;k<=18;k++) {
    vecset(int,v,k,((rand() & 0xF) <<2)+k);
  }
  
  logtable(v);
  logclock {
    vecsort(v);
  }
  logcheck(vecsorted(v));
  logtable(v);
  
  logtrace("random vector (large)");
  
  #define N 1000
  for (k=0;k<=N;k++) {
    vecset(int,v,k,((rand() & 0xF) <<24)+k);
  }
  logtrace("done (%d on %d)",veccount(v), vecmax(v));
  
  //logtable(v);
  
  logclock {
    vecsort(v);
  }
  //logtable(v);
  
  logtrace("sorted vector");
  for (k=0;k<=N;k++) {
    vecset(int,v,k,10000000+k);
  }

  //logtable(v);
  logtrace("done");
  
  logclock {
    vecsort(v);
  }
  //logtable(v);

  vecfree(v);
  logclose();
  exit(0);
}
コード例 #12
0
ファイル: log.cpp プロジェクト: magicminglee/c-log
LogWriter::~LogWriter(){
	logclose();
}
コード例 #13
0
ファイル: ucs.c プロジェクト: braincat/uwin
void WINAPI csmain(DWORD argc, LPTSTR *argv)
{
	HANDLE pipehandle, atok;
	DWORD len;
	UMS_slave_data_t sr;
	SECURITY_ATTRIBUTES sa;
	BOOL (PASCAL *duptok)(HANDLE,DWORD,LPSECURITY_ATTRIBUTES,SECURITY_IMPERSONATION_LEVEL,TOKEN_TYPE,PHANDLE);
	char c;
	HMODULE hp = NULL;

	log_command = "ucs";
	log_level = 1;
	logopen(log_command, 0);
	getservname();
	logmsg(1, "startup %s %s", servname, &ucs_version_id[9]);

	sa.nLength = sizeof(sa);
	sa.lpSecurityDescriptor = 0;
	sa.bInheritHandle = FALSE;

	statushandle = RegisterServiceCtrlHandler(TEXT(servname), csctrl);

	if (statushandle == (SERVICE_STATUS_HANDLE)0)
	{
		eventlog("RegisterServiceCtrlHandler failed");
		return;
	}
	status.dwServiceType = SERVICE_WIN32_OWN_PROCESS;
	status.dwServiceSpecificExitCode = 0;

	scmstatus(SERVICE_RUNNING, NO_ERROR, 0);

	if (Check_UMS_Running())
	{
		if (WaitNamedPipe(UWIN_PIPE_TOKEN, MAX_WAIT_TIME))
		{
			pipehandle = CreateFile(UWIN_PIPE_TOKEN, GENERIC_WRITE, 0, NULL, OPEN_EXISTING, 0, NULL);
			if (pipehandle != INVALID_HANDLE_VALUE)
			{
				sr.pid = GetCurrentProcessId();
				if(OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_DEFAULT|TOKEN_ADJUST_GROUPS|TOKEN_ADJUST_PRIVILEGES|TOKEN_EXECUTE|TOKEN_QUERY|TOKEN_IMPERSONATE|TOKEN_DUPLICATE|TOKEN_READ|TOKEN_WRITE|TOKEN_QUERY_SOURCE, &atok))
				{
					if(!(duptok = (BOOL (PASCAL*)(HANDLE,DWORD,SECURITY_ATTRIBUTES*,SECURITY_IMPERSONATION_LEVEL,TOKEN_TYPE,HANDLE*))getapi_addr("advapi32.dll","DuplicateTokenEx",&hp)))
						error(1, "DuplicateTokenEx function not found");
					else
					{
						if(duptok && (*duptok)(atok, MAXIMUM_ALLOWED, &sa, SecurityAnonymous, TokenPrimary, &sr.atok))
						{
							if (WriteFile(pipehandle, &sr, sizeof(sr), &len, NULL))
							{
								FlushFileBuffers(pipehandle);
								ReadFile(pipehandle,&c,sizeof(char),&len,NULL);
								Sleep(10);
							}
							else
								error(1, "WriteFile failed on TOKEN PIPE");
						}
						else
							error(1, "DuplicateTokenEx failed");
						CloseHandle(atok);
					}
				}
				else
				{
					GetUserName(buffer,&siz);
					error(1, "Unable to open my own process token");
				}
				CloseHandle(pipehandle);
			}
			else
				error(1, "Unable to connect to token pipe");
		}
		else
			error(1, "WaitNamedPipe failed");
	}
	else
		error(1, "UWIN Master service is not running");
	if (hp)
		FreeLibrary(hp);
	logclose();
	scmstatus(SERVICE_STOPPED, NO_ERROR, 0);
}
コード例 #14
0
ファイル: ucs.c プロジェクト: braincat/uwin
int main(int argc, char** argv)
{
	char*			op;
	char*			s;
	int			n;
	char			name[80];
	char			passwd[PATH_MAX];
	SERVICE_TABLE_ENTRY	table[] = 
	{
		{NULL, (LPSERVICE_MAIN_FUNCTION)csmain},
		{NULL, NULL}
	};
	OSVERSIONINFO		osinfo;

	log_command = "ucs";
	log_level = 1;
	osinfo.dwOSVersionInfoSize = sizeof(osinfo); 
	if (!GetVersionEx(&osinfo) || osinfo.dwPlatformId != VER_PLATFORM_WIN32_NT) 
	{
		logmsg(LOG_STDERR+0, "not supported for this windows release");
		return 1;
	}
	logopen(log_command, 0);
	if ((s = *++argv) && (!_stricmp(s, "--quiet") || !_stricmp(s, "-q") || !_stricmp(s, "quiet")))
	{
		quiet = 1;
		s = *++argv;
	}
	if ((op = s) && _stricmp(op, "start"))
	{
		if (s = *++argv)
		{
			strncpy(name, s, sizeof(name));
			s = *++argv;
		}
		else
		{
			sfprintf(sfstderr, "Enter Account Name: ");
			sfscanf(sfstdin, "%s", name);
		}
		if (!_stricmp(op, "install"))
		{
			if (s && !strcmp(s, "-"))
			{
				passwd[0] = 0;
				if ((n = read(0, passwd, sizeof(passwd))) < 0)
				{
					logerr(LOG_STDERR+0, "read error");
					return 1;
				}
				passwd[n] = 0;
				s = passwd;
			}
			if (!installservice(name, s))
			{
				logerr(LOG_ALL+0, "install %s failed", name);
				return 1;
			}
			logmsg(1, "installed %s", name);
		}
		else if (!_stricmp(op, "delete"))
		{
			if (!deleteservice(name))
			{
				logerr(LOG_ALL+0, "delete %s failed", name);
				return 1;
			}
			logmsg(1, "deleted %s", name);
		}
		else
		{
			logmsg(LOG_STDERR+LOG_USAGE+0, "[ --quiet ] [ start | [ delete | install [ name [ password ] ] ] ]");
			return 2;
		}
	}
	else
	{
		getservname();
		table[0].lpServiceName = servname;
		if (!StartServiceCtrlDispatcher(table))
			eventlog("StartServiceCtrlDispatcher failed");
	}
	logclose();
	return 0;
}
コード例 #15
0
ファイル: ut_pmx3.c プロジェクト: rdentato/clibutl
int main(int argc, char *argv[])
{
  const char *s;
  const char *p;
  /*
  char *q;
  */
  logopen("l_pmx3.log","w");
 
  s = pmxsearch("a|b","xa");
  if (logcheck(s)) {logprintf("MATCH: %.*s",pmxlen(0),pmxstart(0));}
  
  s = pmxsearch("a|b","xb");
  if (logcheck(s)) {logprintf("MATCH: %.*s",pmxlen(0),pmxstart(0));}
 
  s = pmxsearch("x(|a|b)<l>","xcd");
  if (logcheck(s)) {logprintf("MATCH: %.*s",pmxlen(0),pmxstart(0));}
  
  s = pmxsearch("x(|a|b)<l>","xad");
  if (logcheck(!s)) {logprintf("NOMATCH: %d",pmxlen(1));}

  s = pmxsearch("x(|a|b)<l>","xbd");
  if (logcheck(!s)) {logprintf("NOMATCH: %d",pmxlen(1));}
  
  s = pmxsearch("<d>(|in|cm)<2l>","--4px--");
  if (logcheck(s)) {logprintf("MATCH: %.*s",pmxlen(0),pmxstart(0));}
  
  s = pmxsearch("<d>(|in|cm)<2l>","--4in--");
  if (logcheck(!s)) {logprintf("NOMATCH: %d",pmxlen(1));}
 
  s = pmxsearch("<d>(|in|cm)<2l>","--4cm--");
  if (logcheck(!s)) {logprintf("NOMATCH: %d",pmxlen(1));}
 
  s = pmxsearch("<d><!>(in|cm)<2l>","--4px--");
  if (logcheck(s)) {logprintf("MATCH: %.*s",pmxlen(0),pmxstart(0));}
  
  s = pmxsearch("<d><!>(in|cm)<2l>","--4in--");
  if (logcheck(!s)) {logprintf("NOMATCH: %d",pmxlen(1));}
 
  s = pmxsearch("<d><!>(in|cm)<2l>","--4cm--");
  if (logcheck(!s)) {logprintf("NOMATCH: %d",pmxlen(1));}
 
  s = pmxsearch("<d>(|)<2l>","--4cm--");
  if (logcheck(!s)) {logprintf("NOMATCH: %d",pmxlen(1));}
 
  s = pmxsearch("<d>()<2l>","--4cm--");
  if (logcheck(s)) {logprintf("MATCH: %.*s",pmxlen(0),pmxstart(0));}

  s = pmxsearch("<d>)<2l>","--4cm--");
  logcheck(s);
  
  logprintf("*************************");
  
  s= pmxsearch("<2>(a)","abcaad");
  if (logcheck(s)) {logprintf("MATCH: %.*s",pmxlen(0),pmxstart(0));}
  
  s= pmxsearch("<d><?>(cm|in)<l>","a3p");
  if (logcheck(s)) {logprintf("MATCH: %.*s",pmxlen(0),pmxstart(0));}

  s= pmxsearch("<d><?>(cm|in)<l>","a3cmp");
  if (logcheck(s)) {logprintf("MATCH: %.*s",pmxlen(0),pmxstart(0));}
  
  s= pmxsearch("<d><?>(cm|in)<l>","a3inp");
  if (logcheck(s)) {logprintf("MATCH: %.*s",pmxlen(0),pmxstart(0));}
  
  s= pmxsearch("<d><?>(cm|in|<2l>)<l>","a3pxp");
  if (logcheck(s)) {logprintf("MATCH: %.*s (%.*s)",pmxlen(0),pmxstart(0),pmxlen(1),pmxstart(1));}
  
  s= pmxsearch("<utf>«<*>(\\»|<!=»>)»","a«ABC»x");
  if (logcheck(s)) {logprintf("MATCH: %.*s (%.*s)",pmxlen(0),pmxstart(0),pmxlen(1),pmxstart(1));}
  
  s= pmxsearch("<utf>«<*>(\\»|<!=»>)»","a«A\\»BC»x");
  if (logcheck(s)) {logprintf("MATCH: %.*s (%.*s)",pmxlen(0),pmxstart(0),pmxlen(1),pmxstart(1));}
  
  s= pmxsearch("<utf>«<*>(\\»|<!=»>)»","a«»x");
  if (logcheck(s)) {logprintf("MATCH: %.*s (%.*s)",pmxlen(0),pmxstart(0),pmxlen(1),pmxstart(1));}
  
  s= pmxsearch("(<l>)x<^1>","axa");
  if (logcheck(s)) {logprintf("MATCH: %.*s (%.*s)",pmxlen(0),pmxstart(0),pmxlen(1),pmxstart(1));}
  
  s= pmxsearch("(<l>)x<^1>","axb");
  logcheck(!s);

  s= pmxsearch("(<l><d>)x<2^1>","a3xa3a3");
  if (logcheck(s)) {logprintf("MATCH: %.*s (%.*s)",pmxlen(0),pmxstart(0),pmxlen(1),pmxstart(1));}

  s= pmxsearch("(<l><d>)x<2^1>","a3xa3");
  logcheck(!s);

  s= pmxsearch("(<l><d>)x<2^1>","a3xa3b3xb3b3");
  if (logcheck(s)) {logprintf("MATCH: %.*s (%.*s)",pmxlen(0),pmxstart(0),pmxlen(1),pmxstart(1));}

  s= pmxsearch("(<l>)x<^2>","a3xa3");
  logcheck(!s);

  p = "a<!>(bc|de)<2l>";
  s = pmxsearch(p,"abcbc");
  logcheck(!s);

  s = pmxsearch(p,"axybc");
  if (logcheck(s)) {logprintf("MATCH: %.*s (%.*s)",pmxlen(0),pmxstart(0),pmxlen(1),pmxstart(1));}
  
  logclose();
  exit(0);
}
コード例 #16
0
ファイル: cdc.c プロジェクト: DTFreeman/56vfs
int main(int argc, char **argv)
{
	if (argc > 1)
	{
		if (strcasecmp(argv[1], "-v") == 0)
		{
			fprintf(stdout, "compile time [%s %s]\n", __DATE__, __TIME__);
			return -1;
		}
	}

	if (myconfig_init(argc, argv))
	{
		fprintf(stderr, "myconfig_init error [%s]\n", strerror(errno));
		return -1;
	}

	EnterDaemonMode();
	t_path_info path;
	memset(&path, 0, sizeof(path));

	if (init_para(&path))
		return -1;

	int ret = init_shm(&path);
	if (ret < 0)
	{
		LOG(fplog, LOG_ERROR, "init_shm err %m\n");
		report_2_nm(CDC_SHM_INIT_ERR, ID, LN);
		return -1;
	}

	LOG(fplog, LOG_NORMAL, "cdc start ok!\n");
	if (ret == 0 )
	{
		if (cdc_sub(&path, CDC_PLUS))
		{
			LOG(fplog, LOG_ERROR, "init_plus err %m\n");
			report_2_nm(CDC_NORMAL_ERR, ID, LN);
			return -1;
		}
	}
	LOG(fplog, LOG_NORMAL, "plus dir process ok!\n");

	time_t cur = time(NULL);
	time_t last = 0;
	int shm_sync_time = myconfig_get_intval("shm_synctime", 3600);

	while (1)
	{
		cdc_sub(&path, CDC_REALTIME);
		cur = time(NULL);
		if (cur - last >= shm_sync_time)
		{
			last = cur;
			do_sync_2_disk(&path);
		}
		sleep(10);
	}

	logclose(fplog);
	return 0;
}