예제 #1
0
void Setup_Other::externalUpdated()
{
    reread("showJob");
    reread("enableGuildBot");
    reread("enableBuggyServers");
    reread("afkMessage");
}
예제 #2
0
void Setup_Misc::externalUpdated()
{
    reread("showJob");
    reread("enableGuildBot");
    reread("enableManaMarketBot");
    reread("enableBuggyServers");
    reread("afkMessage");
}
예제 #3
0
void *
thr_fn(void *arg)
{
    int err, signo;

    for (;;) {
        err = sigwait(&mask, &signo);
        if (err != 0) {
            syslog(LOG_ERR, "sigwait failed");
            exit(1);
        }

        switch (signo) {
        case SIGHUP:
            syslog(LOG_INFO, "Re-reading configuration file");
            reread();
            break;

        case SIGTERM:
            syslog(LOG_INFO, "got SIGTERM; exiting");
            exit(0);

        default:
            syslog(LOG_INFO, "unexpected signal %d\n", signo);
        }
    }
    return(0);
}
예제 #4
0
void
sighup(int signo)
{
    syslog(LOG_INFO,"Re-reading configuration file");
    reread();

}
예제 #5
0
파일: expr.c 프로젝트: AustenConrad/plan-9
/* service routines for expression reading */
getnum(int (*rdf)(void))
{
	char *cp;
	int base, d;
	BOOL fpnum;
	char num[MAXLIN];

	base = 0;
	fpnum = FALSE;
	if (lastc == '#') {
		base = 16;
		(*rdf)();
	}
	if (convdig(lastc) >= MAXBASE)
		return (0);
	if (lastc == '0')
		switch ((*rdf)()) {
		case 'x':
		case 'X':
			base = 16;
			(*rdf)();
			break;

		case 't':
		case 'T':
			base = 10;
			(*rdf)();
			break;

		case 'o':
		case 'O':
			base = 8;
			(*rdf)();
			break;
		default:
			if (base == 0)
				base = 8;
			break;
		}
	if (base == 0)
		base = 10;
	expv = 0;
	for (cp = num, *cp = lastc; ;(*rdf)()) {
		if ((d = convdig(lastc)) < base) {
			expv *= base;
			expv += d;
			*cp++ = lastc;
		}
		else if (lastc == '.') {
			fpnum = TRUE;
			*cp++ = lastc;
		} else {
			reread();
			break;
		}
	}
	if (fpnum)
		expv = fpin(num);
	return (1);
}
void * thr_fn(void *arg)
{
    int         err = 0;
    int         signo = 0;

    while(1)
    {
         syslog(LOG_INFO, "thr_fn while(1) before sigwait");
         err = sigwait(&mask, &signo);  //mask需要设置
         if (err != 0)
         {
             syslog(LOG_ERR, "sigwait failed");
             exit (1);
         }

         switch(signo)
         {
             case SIGHUP:
                 syslog(LOG_INFO, "Re-reading configuration file");
                 reread();
                 break;

             case SIGTERM:
                 syslog(LOG_INFO, "got SIGTERM; exiting");
                 exit(0);

             default:
                 syslog(LOG_INFO, "unexpected signal %d\n", signo);
         }
    }

    return 0;
}
예제 #7
0
void KMailBox::start()
{
	if( _timer && !_timer->isActive() ) {
		reread();
		_timer->start( _pollTime*1000 );	
	}
}
예제 #8
0
파일: command.c 프로젝트: 00001/plan9port
void
shell(void)
{
	int	rc, unixpid;
	char *argp = lp;

	while (lastc!=EOR)
		rdc();
	if ((unixpid=fork())==0) {
		*lp=0;
		execl("/bin/rc", "rc", "-c", argp, 0);
		exits("execl");				/* botch */
	} else if (unixpid == -1) {
		error("cannot fork");
	} else {
		mkfault = 0;
		while ((rc = waitpid()) != unixpid){
			if(rc == -1 && mkfault){
				mkfault = 0;
				continue;
			}
			break;
		}
		prints("!"); 
		reread();
	}
}
예제 #9
0
KMailBox::KMailBox(const char *file, int pollTime, bool sflag)
{
	_valid = true;

	connect(this, SIGNAL(fileError()), this, SLOT(setInvalid()) );

	if(file == 0) {
		_file = getenv("MAIL");	

		if( _file.isEmpty() )
			emit fileError();
	}
	else
		_file = file;

	
	_fileInfo = new QFileInfo(_file.data());

	_lastModified = new QDateTime;
	_lastModified->setTime_t(0);

	_lastSize = 0;
	_numMessages= 0;

//	debug("starting with %u messages", _numMessages);

	_timer = new QTimer(this);
	connect( _timer, SIGNAL(timeout()), this, SLOT(reread()));

	_pollTime= pollTime;

	if( sflag )
		start();
}
예제 #10
0
void get_meminfo( int *swapdevs, struct meminfo *result )
{
  int i;
  char *bufptr;
  int res;

  reread( meminfo_fd, "get_meminfo:");

  bufptr = strchr( buffer, '\n' ) + 1;
  sscanf( bufptr, "Mem: %d %d %d %d %d",
  	&result[0].total,
  	&result[0].used,
  	&result[0].free,
  	&result[0].shared,
  	&result[0].cache );
  
  for ( i = 1; i < MAX_SWAPFILES; i++ ) {

    bufptr = strchr( bufptr, '\n' ) + 1;

    if ( *bufptr == '\0' ||
	 (res = sscanf( bufptr, "Swap: %d %d %d",
  		&result[i].total,
  		&result[i].used,
  		&result[i].free )) != 3 )
	break; 

  }

  *swapdevs = i - 1;  
}
예제 #11
0
파일: input.c 프로젝트: 00001/plan9port
int
nextchar(void)
{
	if (eol(rdc())) {
		reread();
		return(0);
	}
	return(lastc);
}
예제 #12
0
double get_load( void )
{
  double load;

  reread( loadavg_fd, "get_load:");

  sscanf( buffer, "%lf", &load );

  return load;
}
예제 #13
0
void OFileViewFileListView::cdUP() {
    QDir dir( m_currentDir );
    dir.cdUp();

    if (!dir.exists() )
        m_currentDir = "/";
    else
        m_currentDir = dir.absPath();

    emit selector()->dirSelected( m_currentDir );
    reread( m_all );
}
예제 #14
0
파일: command.c 프로젝트: 00001/plan9port
void
acommand(int pc)
{
	int eqcom;
	Map *map;
	char *fmt;
	char buf[512];

	if (pc == '=') {
		eqcom = 1;
		fmt = eqformat;
		map = dotmap;
	} else {
		eqcom = 0;
		fmt = stformat;
		if (pc == '/')
			map = cormap;
		else
			map = symmap;
	}
	if (!map) {
		sprint(buf, "no map for %c", pc);
		error(buf);
	}

	switch (rdc())
	{
	case 'm':
		if (eqcom)
			error(BADEQ); 
		cmdmap(map);
		break;

	case 'L':
	case 'l':
		if (eqcom)
			error(BADEQ); 
		cmdsrc(lastc, map);
		break;

	case 'W':
	case 'w':
		if (eqcom)
			error(BADEQ); 
		cmdwrite(lastc, map);
		break;

	default:
		reread();
		getformat(fmt);
		scanform(cntval, !eqcom, fmt, map, eqcom);
	}
}
예제 #15
0
파일: expr.c 프로젝트: AustenConrad/plan-9
void
readfname(char *filename)
{
	char	*p;
	Rune	c;

	/* snarf chars until un-escaped char in terminal char set */
	p = filename;
	do {
		if ((c = lastc) != '\\' && p < &filename[MAXSYM-UTFmax-1])
			p += runetochar(p, &c);
		readchar();
	} while (c == '\\' || strchr(CMD_VERBS, lastc) == 0);
	*p = 0;
	reread();
}
예제 #16
0
파일: command.c 프로젝트: 00001/plan9port
char *
regname(int regnam)
{
	static char buf[64];
	char *p;
	int c;

	p = buf;
	*p++ = regnam;
	while (isalnum(c = readchar())) {
		if (p >= buf+sizeof(buf)-1)
			error("register name too long");
		*p++ = c;
	}
	*p = 0;
	reread();
	return (buf);
}
예제 #17
0
파일: setup.c 프로젝트: Requaos/harvey
void
cmdmap(Map *map)
{
	int i;
	char name[MAXSYM];

	extern char lastc;

	rdc();
	readsym(name);
	i = findseg(map, name);
	if (i < 0)	/* not found */
		error("Invalid map name");

	if (expr(0)) {
		if (strcmp(name, "text") == 0)
			textseg(expv, &fhdr);
		map->seg[i].b = expv;
	} else
		error("Invalid base address"); 
	if (expr(0))
		map->seg[i].e = expv;
	else
		error("Invalid end address"); 
	if (expr(0))
		map->seg[i].f = expv; 
	else
		error("Invalid file offset"); 
	if (rdc()=='?' && map == cormap) {
		if (fcor)
			close(fcor);
		fcor=fsym;
		corfil=symfil;
		cormap = symmap;
	} else if (lastc == '/' && map == symmap) {
		if (fsym)
			close(fsym);
		fsym=fcor;
		symfil=corfil;
		symmap=cormap;
	} else
		reread();
}
예제 #18
0
파일: expr.c 프로젝트: AustenConrad/plan-9
term(int a)
{	/* item | monadic item | (expr) | */
	ADDR e;

	switch ((int)readchar()) {

	case '*':
		term(a|1);
		if (geta(cormap, expv, &e) < 0)
			error("%r");
		expv = e;
		return(1);

	case '@':
		term(a|1);
		if (geta(symmap, expv, &e) < 0)
			error("%r");
		expv = e;
		return(1);

	case '-':
		term(a|1);
		expv = -expv;
		return(1);

	case '~':
		term(a|1);
		expv = ~expv;
		return(1);

	case '(':
		expr(2);
		if (readchar()!=')')
			error("syntax error: `)' expected");
		return(1);

	default:
		reread();
		return(item(a));
	}
}
예제 #19
0
파일: main.c 프로젝트: DerNerger/C
int main(void)
{
    int i;
    time_t theTime;
    time(&theTime);
    srand(theTime);
    for(i=0; i < CAPACITY; i++)
    {
        append((int)10*(rand()/((double)RAND_MAX+1)));
    }

    printf("%s\n", "--------------------------------");
    reread();
    for(i=0; i < CAPACITY; i++)
        printf("%d: %d\n",i , getelem());


    printf("%s\n", "--------------------------------");
    for(i=0; i < CAPACITY; i++)
        printf("%d: %d\n",i , find(i));
}
예제 #20
0
void OFileViewFileListView::slotClicked(int button , QListViewItem* item, const QPoint&, int ) {
    if (!item || ( button != Qt::LeftButton) )
        return;

    OFileSelectorItem *sel = static_cast<OFileSelectorItem*>(item);
    if (!sel->isLocked() ) {
        QStringList str = QStringList::split("->", sel->text(1) );
        if (sel->isDir() ) {
            m_currentDir = sel->directory() + "/" + str[0].stripWhiteSpace();
            emit selector()->dirSelected( m_currentDir );
            reread( m_all );
        } else { // file
            qWarning("slot Clicked");
            selector()->m_lneEdit->setText( str[0].stripWhiteSpace() );
            QString path = sel->directory() + "/" + str[0].stripWhiteSpace();
            emit selector()->fileSelected( path );
            DocLnk lnk( path );
            emit selector()->fileSelected( lnk );
        }
    } // not locked
}
예제 #21
0
bool QWSProtocolItem::read(QIODevice *s) {
#ifdef QWSCOMMAND_DEBUG
    QLatin1String reread( (rawLen == -1) ? "" : "REREAD");
    if (qwsServer)
        qDebug() << "QWSProtocolItem::read reading type " << static_cast<QWSCommand::Type>(type) << reread;
    else
        qDebug() << "QWSProtocolItem::read reading event " << (type < N_EVENTS ? eventNames[type] : "unknown") << reread;
    //qDebug("QWSProtocolItem::read reading event %s", type < N_EVENTS ? eventNames[type] : "unknown");
#endif
    bool b = qws_read_command(s, simpleDataPtr, simpleLen, rawDataPtr, rawLen, bytesRead);
    if (b) {
        setData(rawDataPtr, rawLen, false);
        deleteRaw = true;
    }
#ifdef QWSCOMMAND_DEBUG
    else
    {
        qDebug() << "error in reading command " << static_cast<QWSCommand::Type>(type);
    }
#endif
    return b;
}
예제 #22
0
void
startpcs(void)
{
	if ((pid = fork()) == 0) {
		pid = getpid();
		msgpcs("hang");
		doexec();
		exits(0);
	}

	if (pid == -1)
		error("can't fork");
	child++;
	sprint(procname, "/proc/%d/mem", pid);
	corfil = procname;
	msgpcs("waitstop");
	bpwait();
	if (adrflg)
		rput(cormap, mach->pc, adrval);
	while (rdc() != EOR)
		;
	reread();
}
예제 #23
0
파일: xdaemon.c 프로젝트: iawes/daemon
void *thread_func(void *arg)
{
	int err, signo;

	syslog(LOG_ERR, "current thread id is %u.\n", (unsigned)pthread_self());

	while(1)
	{
		err = sigwait(&mask, &signo);
		if(err != 0)
		{
			syslog(LOG_ERR, "sigwait failed.");
			exit(1);
		}

		switch(signo)
		{
			case SIGHUP:
				{
					syslog(LOG_ERR, "Re-reading configuration file.\n");
					reread();
					break;
				}
			case SIGTERM:
				{
					syslog(LOG_ERR, "got SIGTREM;exiting.\n");
					exit(0);
				}
			default:
				syslog(LOG_INFO, "unexpected signal %d.\n", signo);
		}

		sleep(1);
	}

	return NULL;
}
예제 #24
0
double get_idle()
{
  static int last_idle  = 0;
  static int last_ticks = 0;
  int idle;
  int ticks;
  int idle_diff;
  int ticks_diff;

  reread( idle_fd, "get_idle:");

  sscanf( buffer, "%d %d", &idle, &ticks );

  idle_diff  = idle  - last_idle;
  ticks_diff = ticks - last_ticks;

  last_idle  = idle;
  last_ticks = ticks; 

  if (idle_diff > 0 && ticks_diff > 0 )
    return (double) idle_diff / ticks_diff;
  else
    return 0.0; 
}
예제 #25
0
파일: command.c 프로젝트: 00001/plan9port
int
command(char *buf, int defcom)
{
	char	*reg;
	char	savc;
	char	*savlp=lp;
	char	savlc = lastc;
	char	savpc = peekc;
	static char lastcom = '=', savecom = '=';

	if (defcom == 0)
		defcom = lastcom;
	if (buf) {
		if (*buf==EOR)
			return(FALSE);
		clrinp();
		lp=buf;
	}
	do {
		adrflg=expr(0);		/* first address */
		if (adrflg){
			dot=expv;
			ditto=expv;
		}
		adrval=dot;

		if (rdc()==',' && expr(0)) {	/* count */
			cntflg=TRUE;
			cntval=expv;
		} else {
			cntflg=FALSE;
			cntval=1;
			reread();
		}

		if (!eol(rdc()))
			lastcom=lastc;		/* command */
		else {
			if (adrflg==0)
				dot=inkdot(dotinc);
			reread();
			lastcom=defcom;
		}
		switch(lastcom) {
		case '/':
		case '=':
		case '?':
			savecom = lastcom;
			acommand(lastcom);
			break;

		case '>':
			lastcom = savecom; 
			savc=rdc();
			if (reg=regname(savc))
				rput(correg, reg, dot);
			else	
				error("bad variable");
			break;

		case '!':
			lastcom=savecom;
			shell(); 
			break;

		case '$':
			lastcom=savecom;
			printdollar(nextchar()); 
			break;

		case ':':
			if (!executing) { 
				executing=TRUE;
				subpcs(nextchar());
				executing=FALSE;
				lastcom=savecom;
			}
			break;

		case 0:
			prints(DBNAME);
			break;

		default: 
			error("bad command");
		}
		flushbuf();
	} while (rdc()==';');
	if (buf == 0)
		reread();
	else {
		clrinp();
		lp=savlp;
		lastc = savlc;
		peekc = savpc;
	}

	if(adrflg)
		return dot;
	return 1;
}
예제 #26
0
파일: main.cpp 프로젝트: kotohvost/arvid
void doscrreg (int c) {
	switch (c) {
	case meta ('h'):          /* home */
		cur->d.curfile = cur->d.topfile = 0;
		break;
	case meta ('e'):          /* end */
		cur->d.curfile = cur->d.num - 1;
		cur->d.topfile = cur->d.num - PAGELEN (cur);
		if (cur->d.topfile < 0)
			cur->d.topfile = 0;
		break;
	case meta ('u'):          /* up */
		if (cur->d.curfile <= 0)
			return;
		if (cur->d.curfile > cur->d.topfile) {
			--cur->d.curfile;
			return;
		}
		cur->d.topfile = --cur->d.curfile;
		break;
	case meta ('d'):          /* down */
		if (cur->d.curfile >= cur->d.num-1)
			return;
		if (cur->d.topfile + PAGELEN (cur) - 1 > cur->d.curfile) {
			++cur->d.curfile;
			return;
		}
		cur->d.topfile = ++cur->d.curfile - PAGELEN (cur) + 1;
		break;
	case meta ('l'):          /* left */
		if (cur->d.curfile < H) {
			if (cur->d.topfile <= 0)
				return;
			cur->d.curfile -= cur->d.topfile;
			cur->d.topfile = 0;
			break;
		}
		cur->d.curfile -= H;
		if (cur->d.topfile <= cur->d.curfile)
			return;
		cur->d.topfile -= H;
		if (cur->d.topfile <= 0) {
			cur->d.curfile -= cur->d.topfile;
			cur->d.topfile = 0;
		}
		break;
	case meta ('r'):          /* right */
		if (cur->d.curfile + H < cur->d.num) {
			cur->d.curfile += H;
			if (cur->d.topfile + PAGELEN (cur) > cur->d.curfile)
				return;
			cur->d.topfile += H;
			break;
		}
		if (cur->d.topfile + PAGELEN (cur) < cur->d.num) {
			cur->d.curfile = cur->d.num-1;
			cur->d.topfile += H;
			break;
		}
		if ((cur->d.curfile - cur->d.topfile) / H <
		    (cur->d.num - cur->d.topfile - 1) / H)
			cur->d.curfile = cur->d.num-1;
		return;
	case meta ('n'):          /* next page */
		if (cur->d.topfile + PAGELEN (cur) >= cur->d.num) {
			cur->d.curfile = cur->d.num-1;
		} else if (cur->d.topfile + 2 * PAGELEN (cur) >= cur->d.num) {
			cur->d.curfile = cur->d.num-1;
			cur->d.topfile = cur->d.num - PAGELEN (cur);
		} else {
			cur->d.curfile += PAGELEN (cur);
			cur->d.topfile += PAGELEN (cur);
		}
		break;
	case meta ('p'):          /* prev page */
		if (cur->d.topfile == 0) {
			cur->d.curfile = 0;
		} else {
			cur->d.curfile -= PAGELEN (cur);
			if (cur->d.topfile > cur->d.curfile)
				cur->d.topfile -= PAGELEN (cur);
			if (cur->d.topfile < 0) {
				cur->d.curfile -= cur->d.topfile;
				cur->d.topfile = 0;
			}
		}
		break;
	case cntrl ('K'):         /* find file */
		findname ();
		break;
	case cntrl ('R'):         /* reread catalog */
		reread (cur);
		break;
	case cntrl ('T'):         /* tag file */
		if ((cur->d.cat[cur->d.curfile].mode & S_IFMT) == (unsigned) S_IFREG) {
			cur->d.cat[cur->d.curfile].tag ^= 1;
			counttag (cur);
		}
		if (cur->d.curfile < cur->d.num-1) {
			/* move down */
			++cur->d.curfile;
			if (cur->d.topfile + PAGELEN (cur) - 1 < cur->d.curfile)
				cur->d.topfile = cur->d.curfile - PAGELEN (cur) + 1;
		}
		break;
//	case meta ('C'):          /* f3 */
//		if ((cur->d.cat[cur->d.curfile].mode & S_IFMT) != (unsigned) S_IFREG)
//			return;
//		view ();
//		draw.draw(cur, &left, &right);
//		return;
//	case meta ('D'):          /* f4 */
//		edit ();
//		setdir (cur==&left ? &right : &left, NULL);
//		setdir (cur, NULL);
//		draw.draw(cur, &left, &right);
//		return;
	case meta ('E'):          /* f5 */
		copy ();
		draw.draw(cur, left, right);
		return;
//	case meta ('F'):          /* f6 */
//		renmove ();
//		draw.draw(cur, &left, &right);
//		return;
//	case meta ('H'):          /* f8 */
//		mydelete ();
//		draw.draw(cur, &left, &right);
//		return;
	case cntrl ('L'):         /* status */
		setstatus ();
		draw.draw(cur, left, right);
		return;
	}
	draw.drawdir(cur, 1, left, right);
}
예제 #27
0
void Setup_Chat::externalUpdated()
{
    reread("enableLangTab");
    reread("showAllLang");
}
예제 #28
0
파일: expr.c 프로젝트: AustenConrad/plan-9
expr(int a)
{	/* term | term dyadic expr |  */
	int	rc;
	WORD	lhs;

	rdc();
	reread();
	rc=term(a);
	while (rc) {
		lhs = expv;
		switch ((int)readchar()) {

		case '+':
			term(a|1);
			expv += lhs;
			break;

		case '-':
			term(a|1);
			expv = lhs - expv;
			break;

		case '#':
			term(a|1);
			expv = round(lhs,expv);
			break;

		case '*':
			term(a|1);
			expv *= lhs;
			break;

		case '%':
			term(a|1);
			if(expv != 0)
				expv = lhs/expv;
			else{
				if(lhs)
					expv = 1;
				else
					expv = 0;
			}
			break;

		case '&':
			term(a|1);
			expv &= lhs;
			break;

		case '|':
			term(a|1);
			expv |= lhs;
			break;

		case ')':
			if ((a&2)==0)
				error("unexpected `)'");

		default:
			reread();
			return(rc);
		}
	}
	return(rc);
}
예제 #29
0
void sighup(int signo) {
    syslog(LOG_INFO, "reread conf in");
    reread();
    syslog(LOG_INFO, "reread conf out, return from sig handler");
}
예제 #30
0
파일: expr.c 프로젝트: AustenConrad/plan-9
item(int a)
{	/* name [ . local ] | number | . | ^  | <register | 'x | | */
	char	*base;
	char	savc;
	uvlong e;
	Symbol s;
	char gsym[MAXSYM], lsym[MAXSYM];

	readchar();
	if (isfileref()) {
		readfname(gsym);
		rdc();			/* skip white space */
		if (lastc == ':') {	/* it better be */
			rdc();		/* skip white space */
			if (!getnum(readchar))
				error("bad number");
			if (expv == 0)
				expv = 1;	/* file begins at line 1 */
			expv = file2pc(gsym, expv);
			if (expv == -1)
				error("%r");
			return 1;
		}
		error("bad file location");
	} else if (symchar(0)) {	
		readsym(gsym);
		if (lastc=='.') {
			readchar();	/* ugh */
			if (lastc == '.') {
				lsym[0] = '.';
				readchar();
				readsym(lsym+1);
			} else if (symchar(0)) {
				readsym(lsym);
			} else
				lsym[0] = 0;
			if (localaddr(cormap, gsym, lsym, &e, rget) < 0)
				error("%r");
			expv = e;
		}
		else {
			if (lookup(0, gsym, &s) == 0)
				error("symbol not found");
			expv = s.value;
		}
		reread();
	} else if (getnum(readchar)) {
		;
	} else if (lastc=='.') {	
		readchar();
		if (!symchar(0) && lastc != '.') {
			expv = dot;
		} else {
			if (findsym(rget(cormap, mach->pc), CTEXT, &s) == 0)
				error("no current function");
			if (lastc == '.') {
				lsym[0] = '.';
				readchar();
				readsym(lsym+1);
			} else
				readsym(lsym);
			if (localaddr(cormap, s.name, lsym, &e, rget) < 0)
				error("%r");
			expv = e;
		}	
		reread();
	} else if (lastc=='"') {
		expv=ditto;
	} else if (lastc=='+') {
		expv=inkdot(dotinc);
	} else if (lastc=='^') {
		expv=inkdot(-dotinc);
	} else if (lastc=='<') {
		savc=rdc();
		base = regname(savc);
		expv = rget(cormap, base);
	}
	else if (lastc=='\'')
		expv = ascval();
	else if (a)
		error("address expected");
	else {	
		reread();
		return(0);
	}
	return(1);
}