本文整理汇总了C++中colorname函数的典型用法代码示例。如果您正苦于以下问题:C++ colorname函数的具体用法?C++ colorname怎么用?C++ colorname使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了colorname函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。
示例1: init
void init(fpsent *d, int at, int ocn, int sk, int bn, int pm, const char *name, const char *team)
{
loadwaypoints();
fpsent *o = newclient(ocn);
d->aitype = at;
bool resetthisguy = false;
if(!d->name[0])
{
if(aidebug) conoutf("%s assigned to %s at skill %d", colorname(d, name), o ? colorname(o) : "?", sk);
else conoutf("connected: %s", colorname(d, name));
resetthisguy = true;
}
else
{
if(d->ownernum != ocn)
{
if(aidebug) conoutf("%s reassigned to %s", colorname(d, name), o ? colorname(o) : "?");
resetthisguy = true;
}
if(d->skill != sk && aidebug) conoutf("%s changed skill to %d", colorname(d, name), sk);
}
copystring(d->name, name, MAXNAMELEN+1);
copystring(d->team, team, MAXTEAMLEN+1);
d->ownernum = ocn;
d->skill = sk;
d->playermodel = chooserandomplayermodel(pm);
if(resetthisguy) removeweapons(d);
if(player1->clientnum == d->ownernum) create(d);
else if(d->ai) destroy(d);
}
开发者ID:Ajusa,项目名称:Sauerbraten,代码行数:35,代码来源:ai.cpp
示例2: vio_color
/* This function defines colors for fonts */
static ELVBOOL
vio_color(int fontcode, /* name of font being changed */
ELVCHAR *name, /* name of new color */
ELVBOOL isfg, /* ElvTrue for foreground, ElvFalse for background */
long *colorptr, /* where to store the color number */
unsigned char rgb[3]) /* color broken down into RGB components */
{
DPRINTF (("vio_color (%d, %s, %d, %p, %x %x %x)\n",
fontcode, name, isfg, colorptr, rgb[0], rgb[1], rgb[2]));
/* Normal colors must be set first, so we have a way to switch back
* from specialized colors.
*/
if (fontcode != COLOR_FONT_NORMAL && !(isfg ? fgcolored : bgcolored))
{
colorset (COLOR_FONT_NORMAL,
colorname (vio2ansi (VC_FG (vc_term))), ElvTrue);
}
/* Set the colors. */
if (!coloransi (fontcode, name, isfg, colorptr, rgb))
return ElvFalse;
/* Success! Remember if we've set foreground or background */
if (isfg)
fgcolored = ElvTrue;
else
bgcolored = ElvTrue;
return ElvTrue;
}
开发者ID:OS2World,项目名称:APP-EDITOR-elvis,代码行数:32,代码来源:guivio.c
示例3: save_checkpoint
void save_checkpoint(char *filename)
{
char *subfn;
FILE *fd = fopen(filename, "w");
activealerts_t *awalk;
unsigned char *pgmsg, *ackmsg;
if (fd == NULL) return;
for (awalk = alistBegin(); (awalk); awalk = alistNext()) {
if (awalk->state == A_DEAD) continue;
pgmsg = ackmsg = "";
fprintf(fd, "%s|%s|%s|%s|%s|%d|%d|%s|",
awalk->hostname, awalk->testname, awalk->location, awalk->ip,
colorname(awalk->maxcolor),
(int) awalk->eventstart,
(int) awalk->nextalerttime,
statename[awalk->state]);
if (awalk->pagemessage) pgmsg = nlencode(awalk->pagemessage);
fprintf(fd, "%s|", pgmsg);
if (awalk->ackmessage) ackmsg = nlencode(awalk->ackmessage);
fprintf(fd, "%s\n", ackmsg);
}
fclose(fd);
subfn = (char *)malloc(strlen(filename)+5);
sprintf(subfn, "%s.sub", filename);
save_state(subfn);
xfree(subfn);
}
开发者ID:gvsurenderreddy,项目名称:xymon-2,代码行数:32,代码来源:xymond_alert.c
示例4: statuscolor_by_set
static int statuscolor_by_set(testedhost_t *h, long status, char *okcodes, char *badcodes)
{
int result = -1;
char codestr[10];
pcre *ptn;
/* Use code 999 to indicate we could not fetch the URL */
sprintf(codestr, "%ld", (status ? status : 999));
if (okcodes) {
ptn = compileregex(okcodes);
if (matchregex(codestr, ptn)) result = COL_GREEN; else result = COL_RED;
freeregex(ptn);
}
if (badcodes) {
ptn = compileregex(badcodes);
if (matchregex(codestr, ptn)) result = COL_RED; else result = COL_GREEN;
freeregex(ptn);
}
if (result == -1) result = statuscolor(h, status);
dbgprintf("Host %s status %s [%s:%s] -> color %s\n",
h->hostname, codestr,
(okcodes ? okcodes : "<null>"),
(badcodes ? badcodes : "<null>"),
colorname(result));
return result;
}
开发者ID:tjyang,项目名称:abmon,代码行数:31,代码来源:httpresult.c
示例5: printf
game_t::game_t(Fl_Color color)
{
my_color = color;
printf("My color: %s\n", colorname(color));
grid_dim = BOARD_DIM;
reset();
}
开发者ID:qartis,项目名称:c5gui,代码行数:7,代码来源:game.cpp
示例6: lua_client_getDisplayName
LUALIB_API int lua_client_getDisplayName(lua_State *L)
{
LUA_GETUSER(L);
lua_pushstring(L, colorname(cref->ci));
return 1;
}
开发者ID:parisfuja,项目名称:RR-source,代码行数:7,代码来源:core_bindings.cpp
示例7: getboard
static int getboard(int mincolor)
{
char msg[1024];
int i;
sendreturn_t *sres;
int xymondresult;
if (!boardmaster) {
sprintf(msg, "xymondboard acklevel=%d fields=hostname,testname,color,lastchange,logtime,validtime,acklist color=%s", critacklevel,colorname(mincolor));
for (i=mincolor+1; (i < COL_COUNT); i++) sprintf(msg+strlen(msg), ",%s", colorname(i));
sres = newsendreturnbuf(1, NULL);
xymondresult = sendmessage(msg, NULL, XYMON_TIMEOUT, sres);
if (xymondresult != XYMONSEND_OK) {
boardmaster = "";
freesendreturnbuf(sres);
errormsg("Unable to fetch current status\n");
return 1;
}
else {
boardmaster = getsendreturnstr(sres, 1);
freesendreturnbuf(sres);
}
}
return 0;
}
开发者ID:Kotty666,项目名称:xymon,代码行数:28,代码来源:criticalview.c
示例8: init
void init(fpsent *d, int at, int ocn, int sk, int bn, int pm, int pc, const char *name, const char *team)
{
loadwaypoints();
fpsent *o = newclient(ocn);
d->aitype = at;
bool resetthisguy = false;
if(!d->name[0])
{
if(aidebug) conoutf("%s assigned to %s at skill %d", colorname(d, name), o ? colorname(o) : "?", sk);
else conoutf("\f0join:\f7 %s", colorname(d, name));
resetthisguy = true;
}
else
{
if(d->ownernum != ocn)
{
if(aidebug) conoutf("%s reassigned to %s", colorname(d, name), o ? colorname(o) : "?");
resetthisguy = true;
}
if(d->skill != sk && aidebug) conoutf("%s changed skill to %d", colorname(d, name), sk);
}
copystring(d->name, name, MAXNAMELEN+1);
copystring(d->team, team, MAXTEAMLEN+1);
d->ownernum = ocn;
d->skill = sk;
d->playermodel = chooserandomplayermodel(pm);
if(pc < NUMPCS) d->pclass = pc;
else conoutf("ERROR: %d", pc);
if(resetthisguy) removeweapons(d);
if(d->ownernum >= 0 && player1->clientnum == d->ownernum)
{
create(d);
if(d->ai)
{
d->ai->views[0] = viewfieldx(d->skill);
d->ai->views[1] = viewfieldy(d->skill);
d->ai->views[2] = viewdist(d->skill);
}
}
else if(d->ai) destroy(d);
}
开发者ID:parisfuja,项目名称:RR-source,代码行数:46,代码来源:ai.cpp
示例9: zvm_paging_report
static void zvm_paging_report(char *hostname, char *clientclass, enum ostype_t os,
void *hinfo, char *fromline, char *timestr, char *cpuutilstr)
{
char *p;
int pagerate, pagingyellow, pagingred;
char pagingresult[100];
int pagingcolor = COL_GREEN;
char msgline[256];
strbuffer_t *upmsg;
if (!cpuutilstr) return;
/*
* Looking for Paging rate info in 'IND' command response
* PAGING-0000/SEC
*/
*pagingresult = '\0';
/* Skip past three newlines in message to the PAGING text */
p=strstr(cpuutilstr,"PAGING-") + 7;
if (sscanf(p, "%d/SEC", &pagerate) == 1) {
sprintf(pagingresult, "z/VM Paging Rate %d per second\n", pagerate);
}
get_paging_thresholds(hinfo, clientclass, &pagingyellow, &pagingred);
upmsg = newstrbuffer(0);
if (pagerate > pagingred) {
pagingcolor = COL_RED;
addtobuffer(upmsg, "&red Paging Rate is CRITICAL\n");
}
else if (pagerate > pagingyellow) {
pagingcolor = COL_YELLOW;
addtobuffer(upmsg, "&yellow Paging Rate is HIGH\n");
}
init_status(pagingcolor);
sprintf(msgline, "status %s.paging %s %s %s %s\n",
commafy(hostname), colorname(pagingcolor),
(timestr ? timestr : "<no timestamp data>"),
pagingresult,
cpuutilstr);
addtostatus(msgline);
if (STRBUFLEN(upmsg)) {
addtostrstatus(upmsg);
addtostatus("\n");
}
if (fromline && !localmode) addtostatus(fromline);
finish_status();
freestrbuffer(upmsg);
}
开发者ID:tjyang,项目名称:abmon,代码行数:53,代码来源:zvm.c
示例10: main
int main(int argc, char *argv[])
{
int argi;
char *envarea = NULL;
for (argi = 1; (argi < argc); argi++) {
if (argnmatch(argv[argi], "--env=")) {
char *p = strchr(argv[argi], '=');
loadenv(p+1, envarea);
}
else if (argnmatch(argv[argi], "--area=")) {
char *p = strchr(argv[argi], '=');
envarea = strdup(p+1);
}
else if (strcmp(argv[argi], "--debug") == 0) {
debug = 1;
}
}
redirect_cgilog("hobbit-notifylog");
load_hostnames(xgetenv("BBHOSTS"), NULL, get_fqdn());
fprintf(stdout, "Content-type: %s\n\n", xgetenv("HTMLCONTENTTYPE"));
cgidata = cgi_request();
if (cgidata == NULL) {
/* Present the query form */
sethostenv("", "", "", colorname(COL_BLUE), NULL);
showform(stdout, "notify", "notify_form", COL_BLUE, getcurrenttime(NULL), NULL, NULL);
return 0;
}
parse_query();
/* Now generate the webpage */
headfoot(stdout, "notify", "", "header", COL_GREEN);
fprintf(stdout, "<center>\n");
do_notifylog(stdout, maxcount, maxminutes, fromtime, totime,
pageregex, expageregex,
hostregex, exhostregex,
testregex, extestregex,
rcptregex, exrcptregex);
fprintf(stdout, "</center>\n");
headfoot(stdout, "notify", "", "footer", COL_GREEN);
return 0;
}
开发者ID:tjyang,项目名称:abmon,代码行数:47,代码来源:hobbit-notifylog.c
示例11: QMenu
QMenu* EventCanvas::genItemPopup(CItem* item)/*{{{*/
{
QMenu* notePopup = new QMenu(this);
QMenu* colorPopup = notePopup->addMenu(tr("Part Color"));
QMenu* colorSub;
for (int i = 0; i < NUM_PARTCOLORS; ++i)
{
QString colorname(config.partColorNames[i]);
if(colorname.contains("menu:", Qt::CaseSensitive))
{
colorSub = colorPopup->addMenu(colorname.replace("menu:", ""));
}
else
{
if(item->part()->colorIndex() == i)
{
colorname = QString(config.partColorNames[i]);
colorPopup->setIcon(partColorIcons.at(i));
colorPopup->setTitle(colorSub->title()+": "+colorname);
colorname = QString("* "+config.partColorNames[i]);
QAction *act_color = colorSub->addAction(partColorIcons.at(i), colorname);
act_color->setData(20 + i);
}
else
{
colorname = QString(" "+config.partColorNames[i]);
QAction *act_color = colorSub->addAction(partColorIcons.at(i), colorname);
act_color->setData(20 + i);
}
}
}
notePopup->addSeparator();
for (unsigned i = 0; i < 9; ++i)
{
if ((_canvasTools & (1 << i)) == 0)
continue;
QAction* act = notePopup->addAction(QIcon(*toolList[i].icon), tr(toolList[i].tip));
act->setData(1 << i);
}
return notePopup;
}/*}}}*/
开发者ID:ViktorNova,项目名称:los,代码行数:45,代码来源:EventCanvas.cpp
示例12: dump_criteria
static void dump_criteria(criteria_t *crit, int isrecip)
{
if (crit->pagespec) printf("PAGE=%s ", crit->pagespec);
if (crit->expagespec) printf("EXPAGE=%s ", crit->expagespec);
if (crit->dgspec) printf("DISPLAYGROUP=%s ", crit->dgspec);
if (crit->exdgspec) printf("EXDISPLAYGROUP=%s ", crit->exdgspec);
if (crit->hostspec) printf("HOST=%s ", crit->hostspec);
if (crit->exhostspec) printf("EXHOST=%s ", crit->exhostspec);
if (crit->svcspec) printf("SERVICE=%s ", crit->svcspec);
if (crit->exsvcspec) printf("EXSERVICE=%s ", crit->exsvcspec);
if (crit->classspec) printf("CLASS=%s ", crit->classspec);
if (crit->exclassspec) printf("EXCLASS=%s ", crit->exclassspec);
if (crit->groupspec) printf("GROUP=%s ", crit->groupspec);
if (crit->exgroupspec) printf("EXGROUP=%s ", crit->exgroupspec);
if (crit->colors) {
int i, first = 1;
printf("COLOR=");
for (i = 0; (i < COL_COUNT); i++) {
if ((1 << i) & crit->colors) {
dbgprintf("first=%d, i=%d\n", first, i);
printf("%s%s", (first ? "" : ","), colorname(i));
first = 0;
}
}
printf(" ");
}
if (crit->timespec) printf("TIME=%s ", crit->timespec);
if (crit->minduration) printf("DURATION>%d ", (crit->minduration / 60));
if (crit->maxduration) printf("DURATION<%d ", (crit->maxduration / 60));
if (isrecip) {
switch (crit->sendrecovered) {
case SR_UNKNOWN: break;
case SR_WANTED: printf("RECOVERED "); break;
case SR_NOTWANTED: printf("NORECOVERED "); break;
}
switch (crit->sendnotice) {
case SR_UNKNOWN: break;
case SR_WANTED: printf("NOTICE "); break;
case SR_NOTWANTED: printf("NONOTICE "); break;
}
}
}
开发者ID:osvaldsson,项目名称:xymon,代码行数:44,代码来源:loadalerts.c
示例13: egoresult
void egoresult(int color, char *egocolumn)
{
char msgline[1024];
char *timestamps = NULL;
init_timestamp();
combo_start();
init_status(color);
sprintf(msgline, "status %s.%s %s snmpcollect %s\n\n",
xgetenv("MACHINE"), egocolumn, colorname(color), timestamp);
addtostatus(msgline);
sprintf(msgline, "Variables : %d\n", varcount);
addtostatus(msgline);
sprintf(msgline, "PDUs : %d\n", pducount);
addtostatus(msgline);
sprintf(msgline, "Responses : %d\n", okcount);
addtostatus(msgline);
sprintf(msgline, "Timeouts : %d\n", timeoutcount);
addtostatus(msgline);
sprintf(msgline, "Too big : %d\n", toobigcount);
addtostatus(msgline);
sprintf(msgline, "Errors : %d\n", errorcount);
addtostatus(msgline);
show_timestamps(×tamps);
if (timestamps) {
addtostatus(timestamps);
xfree(timestamps);
}
finish_status();
combo_end();
}
开发者ID:gvsurenderreddy,项目名称:xymon-2,代码行数:36,代码来源:xymon-snmpcollect.c
示例14: send_summaries
void send_summaries(summary_t *sumhead)
{
summary_t *s;
for (s = sumhead; (s); s = s->next) {
char *suburl;
int summarycolor = -1;
char *summsg;
/* Decide which page to pick the color from for this summary. */
suburl = s->url;
if (strncmp(suburl, "http://", 7) == 0) {
char *p;
/* Skip hostname part */
suburl += 7; /* Skip "http://" */
p = strchr(suburl, '/'); /* Find next '/' */
if (p) suburl = p;
}
if (strncmp(suburl, xgetenv("XYMONWEB"), strlen(xgetenv("XYMONWEB"))) == 0)
suburl += strlen(xgetenv("XYMONWEB"));
if (*suburl == '/') suburl++;
dbgprintf("summ1: s->url=%s, suburl=%s\n", s->url, suburl);
if (strcmp(suburl, "xymon.html") == 0) summarycolor = xymon_color;
else if (strcmp(suburl, "index.html") == 0) summarycolor = xymon_color;
else if (strcmp(suburl, "") == 0) summarycolor = xymon_color;
else if (strcmp(suburl, "nongreen.html") == 0) summarycolor = nongreen_color;
else if (strcmp(suburl, "critical.html") == 0) summarycolor = critical_color;
else {
/*
* Specific page - find it in the page tree.
*/
char *p, *pg;
xymongen_page_t *pgwalk;
xymongen_page_t *sourcepg = NULL;
char *urlcopy = strdup(suburl);
/*
* Walk the page tree
*/
pg = urlcopy; sourcepg = pagehead;
do {
p = strchr(pg, '/');
if (p) *p = '\0';
dbgprintf("Searching for page %s\n", pg);
for (pgwalk = sourcepg->subpages; (pgwalk && (strcmp(pgwalk->name, pg) != 0)); pgwalk = pgwalk->next);
if (pgwalk != NULL) {
sourcepg = pgwalk;
if (p) {
*p = '/'; pg = p+1;
}
else pg = NULL;
}
else pg = NULL;
} while (pg);
dbgprintf("Summary search for %s found page %s (title:%s), color %d\n",
suburl, sourcepg->name, sourcepg->title, sourcepg->color);
summarycolor = sourcepg->color;
xfree(urlcopy);
}
if (summarycolor == -1) {
errprintf("Could not determine sourcepage for summary %s\n", s->url);
summarycolor = pagehead->color;
}
/* Send the summary message */
summsg = (char *)malloc(1024 + strlen(s->name) + strlen(s->url) + strlen(timestamp));
sprintf(summsg, "summary summary.%s %s %s %s",
s->name, colorname(summarycolor), s->url, timestamp);
sendmessage(summsg, s->receiver, XYMON_TIMEOUT, NULL);
xfree(summsg);
}
}
开发者ID:osvaldsson,项目名称:xymon,代码行数:79,代码来源:process.c
示例15: do_wml_cards
void do_wml_cards(char *webdir)
{
FILE *nongreenfd, *hostfd;
char nongreenfn[PATH_MAX], hostfn[PATH_MAX];
hostlist_t *h;
entry_t *t;
int nongreenwapcolor;
long wmlmaxchars = 1500;
int nongreenpart = 1;
/* Determine where the WML files go */
sprintf(wmldir, "%s/wml", webdir);
/* Make sure the WML directory exists */
if (chdir(wmldir) != 0) mkdir(wmldir, 0755);
if (chdir(wmldir) != 0) {
errprintf("Cannot access or create the WML output directory %s\n", wmldir);
return;
}
/* Make sure this is set sensibly */
if (xgetenv("WMLMAXCHARS")) {
wmlmaxchars = atol(xgetenv("WMLMAXCHARS"));
}
/*
* Cleanup cards that are too old.
*/
delete_old_cards(wmldir);
/*
* Find all the test entries that belong on the WAP page,
* and calculate the color for the nongreen wap page.
*
* We want only tests that have the "onwap" flag set, i.e.
* tests given in the "WAP:test,..." for this host (of the
* "NK:test,..." if no WAP list).
*
* At the same time, generate the WML card for the tests,
* corresponding to the HTML file for the test logfile.
*/
nongreenwapcolor = COL_GREEN;
for (h = hostlistBegin(); (h); h = hostlistNext()) {
h->hostentry->wapcolor = COL_GREEN;
for (t = h->hostentry->entries; (t); t = t->next) {
if (t->onwap && ((t->color == COL_RED) || (t->color == COL_YELLOW))) {
generate_wml_statuscard(h->hostentry, t);
h->hostentry->anywaps = 1;
}
else {
/* Clear the onwap flag - makes testing later a bit simpler */
t->onwap = 0;
}
if (t->onwap && (t->color > h->hostentry->wapcolor)) h->hostentry->wapcolor = t->color;
}
/* Update the nongreenwapcolor */
if ( (h->hostentry->wapcolor == COL_RED) || (h->hostentry->wapcolor == COL_YELLOW) ) {
if (h->hostentry->wapcolor > nongreenwapcolor) nongreenwapcolor = h->hostentry->wapcolor;
}
}
/* Start the non-green WML card */
sprintf(nongreenfn, "%s/nongreen.wml.tmp", wmldir);
nongreenfd = fopen(nongreenfn, "w");
if (nongreenfd == NULL) {
errprintf("Cannot open non-green WML file %s\n", nongreenfn);
return;
}
/* Standard non-green wap header */
wml_header(nongreenfd, "card", nongreenpart);
fprintf(nongreenfd, "<p align=\"center\" mode=\"nowrap\">\n");
fprintf(nongreenfd, "%s</p>\n", timestamp);
fprintf(nongreenfd, "<p align=\"center\" mode=\"nowrap\">\n");
fprintf(nongreenfd, "Summary Status<br/><b>%s</b><br/><br/>\n", colorname(nongreenwapcolor));
/* All green ? Just say so */
if (nongreenwapcolor == COL_GREEN) {
fprintf(nongreenfd, "All is OK<br/>\n");
}
/* Now loop through the hostlist again, and generate the nongreen WAP links and host pages */
for (h = hostlistBegin(); (h); h = hostlistNext()) {
if (h->hostentry->anywaps) {
/* Create the host WAP card, with links to individual test results */
sprintf(hostfn, "%s/%s.wml", wmldir, h->hostentry->hostname);
hostfd = fopen(hostfn, "w");
if (hostfd == NULL) {
errprintf("Cannot create file %s\n", hostfn);
return;
}
wml_header(hostfd, "name", 1);
fprintf(hostfd, "<p align=\"center\">\n");
fprintf(hostfd, "<anchor title=\"XYMON\">Overall<go href=\"nongreen.wml\"/></anchor><br/>\n");
fprintf(hostfd, "%s</p>\n", timestamp);
fprintf(hostfd, "<p align=\"left\" mode=\"nowrap\">\n");
//.........这里部分代码省略.........
开发者ID:Kotty666,项目名称:xymon,代码行数:101,代码来源:wmlgen.c
示例16: main
int main(int argc, char *argv[])
{
char dirid[PATH_MAX];
char outdir[PATH_MAX];
char xymonwebenv[PATH_MAX];
char xymongencmd[PATH_MAX];
char xymongentimeopt[100];
char csvdelimopt[100];
char *xymongen_argv[20];
pid_t childpid;
int childstat;
char htmldelim[100];
char startstr[30], endstr[30];
int cleanupoldreps = 1;
int argi, newargi;
char *envarea = NULL;
char *useragent = NULL;
int usemultipart = 1;
newargi = 0;
xymongen_argv[newargi++] = xymongencmd;
xymongen_argv[newargi++] = xymongentimeopt;
for (argi=1; (argi < argc); argi++) {
if (argnmatch(argv[argi], "--env=")) {
char *p = strchr(argv[argi], '=');
loadenv(p+1, envarea);
}
else if (argnmatch(argv[argi], "--area=")) {
char *p = strchr(argv[argi], '=');
envarea = strdup(p+1);
}
else if (strcmp(argv[1], "--noclean") == 0) {
cleanupoldreps = 0;
}
else {
xymongen_argv[newargi++] = argv[argi];
}
}
redirect_cgilog("report");
cgidata = cgi_request();
if (cgidata == NULL) {
/* Present the query form */
sethostenv("", "", "", colorname(COL_BLUE), NULL);
printf("Content-type: %s\n\n", xgetenv("HTMLCONTENTTYPE"));
showform(stdout, "report", "report_form", COL_BLUE, getcurrenttime(NULL)-86400, NULL, NULL);
return 0;
}
useragent = getenv("HTTP_USER_AGENT");
if (useragent && strstr(useragent, "KHTML")) {
/* KHTML (Konqueror, Safari) cannot handle multipart documents. */
usemultipart = 0;
}
envcheck(reqenv);
parse_query();
/*
* We need to set these variables up AFTER we have put them into the xymongen_argv[] array.
* We cannot do it before, because we need the environment that the command-line options
* might provide.
*/
if (xgetenv("XYMONGEN")) sprintf(xymongencmd, "%s", xgetenv("XYMONGEN"));
else sprintf(xymongencmd, "%s/bin/xymongen", xgetenv("XYMONHOME"));
snprintf(xymongentimeopt, sizeof(xymongentimeopt)-1,"--reportopts=%u:%u:1:%s", (unsigned int)starttime, (unsigned int)endtime, style);
sprintf(dirid, "%u-%u", (unsigned int)getpid(), (unsigned int)getcurrenttime(NULL));
if (!csvoutput) {
sprintf(outdir, "%s/%s", xgetenv("XYMONREPDIR"), dirid);
mkdir(outdir, 0755);
xymongen_argv[newargi++] = outdir;
sprintf(xymonwebenv, "XYMONWEB=%s/%s", xgetenv("XYMONREPURL"), dirid);
putenv(xymonwebenv);
}
else {
sprintf(outdir, "--csv=%s/%s.csv", xgetenv("XYMONREPDIR"), dirid);
xymongen_argv[newargi++] = outdir;
sprintf(csvdelimopt, "--csvdelim=%c", csvdelim);
xymongen_argv[newargi++] = csvdelimopt;
}
xymongen_argv[newargi++] = NULL;
if (usemultipart) {
/* Output the "please wait for report ... " thing */
snprintf(htmldelim, sizeof(htmldelim)-1, "xymonrep-%u-%u", (int)getpid(), (unsigned int)getcurrenttime(NULL));
printf("Content-type: multipart/mixed;boundary=%s\n", htmldelim);
printf("\n");
printf("--%s\n", htmldelim);
printf("Content-type: %s\n\n", xgetenv("HTMLCONTENTTYPE"));
/* It's ok with these hardcoded values, as they are not used for this page */
sethostenv("", "", "", colorname(COL_BLUE), NULL);
sethostenv_report(starttime, endtime, 97.0, 99.995);
headfoot(stdout, "repnormal", "", "header", COL_BLUE);
//.........这里部分代码省略.........
开发者ID:osvaldsson,项目名称:xymon,代码行数:101,代码来源:report.c
示例17: generate_replog
void generate_replog(FILE *htmlrep, FILE *textrep, char *textrepurl,
char *hostname, char *service, int color, int style,
char *ip, char *displayname,
time_t st, time_t end, double reportwarnlevel, double reportgreenlevel, int reportwarnstops,
reportinfo_t *repinfo)
{
replog_t *walk;
char *bgcols[2] = { "\"#000000\"", "\"#000033\"" };
int curbg = 0;
if (!displayname) displayname = hostname;
sethostenv(displayname, ip, service, colorname(color), hostname);
sethostenv_report(st, end, reportwarnlevel, reportgreenlevel);
headfoot(htmlrep, "replog", "", "header", color);
fprintf(htmlrep, "\n");
fprintf(htmlrep, "<CENTER>\n");
fprintf(htmlrep, "<BR><FONT %s>", xgetenv("XYMONPAGEROWFONT"));
fprintf(htmlrep, "<B>%s - ", htmlquoted(displayname));
fprintf(htmlrep, "%s</B></FONT>\n", htmlquoted(service));
fprintf(htmlrep, "<TABLE BORDER=0 BGCOLOR=\"#333333\" CELLPADDING=3 SUMMARY=\"Availability percentages\">\n");
fprintf(htmlrep, "<TR>\n");
if (repinfo->withreport) {
fprintf(htmlrep, "<TD COLSPAN=3><CENTER><BR><B>Availability (24x7): %.2f%%</B></CENTER></TD>\n", repinfo->fullavailability);
fprintf(htmlrep, "<TD> </TD>\n");
fprintf(htmlrep, "<TD COLSPAN=3><CENTER><B>Availability (SLA): %.2f%%</B></CENTER></TD>\n", repinfo->reportavailability);
}
else {
fprintf(htmlrep, "<TD COLSPAN=7><CENTER><B><BR>Availability: %.2f%%</B></CENTER></TD>\n", repinfo->fullavailability);
}
fprintf(htmlrep, "</TR>\n");
fprintf(htmlrep, "<TR BGCOLOR=\"#000033\">\n");
fprintf(htmlrep, "<TD> </TD>\n");
fprintf(htmlrep, "<TD ALIGN=CENTER><IMG SRC=\"%s/%s\" ALT=\"%s\" TITLE=\"%s\" HEIGHT=%s WIDTH=%s BORDER=0></TD>\n",
xgetenv("XYMONSKIN"), dotgiffilename(COL_GREEN, 0, 1), colorname(COL_GREEN), colorname(COL_GREEN), xgetenv("DOTHEIGHT"), xgetenv("DOTWIDTH"));
fprintf(htmlrep, "<TD ALIGN=CENTER><IMG SRC=\"%s/%s\" ALT=\"%s\" TITLE=\"%s\" HEIGHT=%s WIDTH=%s BORDER=0></TD>\n",
xgetenv("XYMONSKIN"), dotgiffilename(COL_YELLOW, 0, 1), colorname(COL_YELLOW), colorname(COL_YELLOW), xgetenv("DOTHEIGHT"), xgetenv("DOTWIDTH"));
fprintf(htmlrep, "<TD ALIGN=CENTER><IMG SRC=\"%s/%s\" ALT=\"%s\" TITLE=\"%s\" HEIGHT=%s WIDTH=%s BORDER=0></TD>\n",
xgetenv("XYMONSKIN"), dotgiffilename(COL_RED, 0, 1), colorname(COL_RED), colorname(COL_RED), xgetenv("DOTHEIGHT"), xgetenv("DOTWIDTH"));
fprintf(htmlrep, "<TD ALIGN=CENTER><IMG SRC=\"%s/%s\" ALT=\"%s\" TITLE=\"%s\" HEIGHT=%s WIDTH=%s BORDER=0></TD>\n",
xgetenv("XYMONSKIN"), dotgiffilename(COL_PURPLE, 0, 1), colorname(COL_PURPLE), colorname(COL_PURPLE), xgetenv("DOTHEIGHT"), xgetenv("DOTWIDTH"));
fprintf(htmlrep, "<TD ALIGN=CENTER><IMG SRC=\"%s/%s\" ALT=\"%s\" TITLE=\"%s\" HEIGHT=%s WIDTH=%s BORDER=0></TD>\n",
xgetenv("XYMONSKIN"), dotgiffilename(COL_CLEAR, 0, 1), colorname(COL_CLEAR), colorname(COL_CLEAR), xgetenv("DOTHEIGHT"), xgetenv("DOTWIDTH"));
fprintf(htmlrep, "<TD ALIGN=CENTER><IMG SRC=\"%s/%s\" ALT=\"%s\" TITLE=\"%s\" HEIGHT=%s WIDTH=%s BORDER=0></TD>\n",
xgetenv("XYMONSKIN"), dotgiffilename(COL_BLUE, 0, 1), colorname(COL_BLUE), colorname(COL_BLUE), xgetenv("DOTHEIGHT"), xgetenv("DOTWIDTH"));
fprintf(htmlrep, "</TR>\n");
fprintf(htmlrep, "<TR BGCOLOR=\"#000033\">\n");
fprintf(htmlrep, "<TD ALIGN=LEFT><B>24x7</B></TD>\n");
fprintf(htmlrep, "<TD ALIGN=CENTER><B>%.2f%%</B></TD>\n", repinfo->fullpct[COL_GREEN]);
fprintf(htmlrep, "<TD ALIGN=CENTER><B>%.2f%%</B></TD>\n", repinfo->fullpct[COL_YELLOW]);
fprintf(htmlrep, "<TD ALIGN=CENTER><B>%.2f%%</B></TD>\n", repinfo->fullpct[COL_RED]);
fprintf(htmlrep, "<TD ALIGN=CENTER><B>%.2f%%</B></TD>\n", repinfo->fullpct[COL_PURPLE]);
fprintf(htmlrep, "<TD ALIGN=CENTER><B>%.2f%%</B></TD>\n", repinfo->fullpct[COL_CLEAR]);
fprintf(htmlrep, "<TD ALIGN=CENTER><B>%.2f%%</B></TD>\n", repinfo->fullpct[COL_BLUE]);
fprintf(htmlrep, "</TR>\n");
if (repinfo->withreport) {
fprintf(htmlrep, "<TR BGCOLOR=\"#000033\">\n");
fprintf(htmlrep, "<TD ALIGN=LEFT><B>SLA (%.2f)</B></TD>\n", reportwarnlevel);
fprintf(htmlrep, "<TD ALIGN=CENTER><B>%.2f%%</B></TD>\n", repinfo->reportpct[COL_GREEN]);
fprintf(htmlrep, "<TD ALIGN=CENTER><B>%.2f%%</B></TD>\n", repinfo->reportpct[COL_YELLOW]);
fprintf(htmlrep, "<TD ALIGN=CENTER><B>%.2f%%</B></TD>\n", repinfo->reportpct[COL_RED]);
fprintf(htmlrep, "<TD ALIGN=CENTER>-</TD>\n");
fprintf(htmlrep, "<TD ALIGN=CENTER><B>%.2f%%</B></TD>\n", repinfo->reportpct[COL_CLEAR]);
fprintf(htmlrep, "<TD ALIGN=CENTER>-</TD>\n");
fprintf(htmlrep, "</TR>\n");
}
fprintf(htmlrep, "<TR BGCOLOR=\"#000000\">\n");
fprintf(htmlrep, "<TD ALIGN=CENTER COLSPAN=2><B>Event count</B></TD>\n");
fprintf(htmlrep, "<TD ALIGN=CENTER><B>%d</B></TD>\n", repinfo->count[COL_YELLOW]);
fprintf(htmlrep, "<TD ALIGN=CENTER><B>%d</B></TD>\n", repinfo->count[COL_RED]);
fprintf(htmlrep, "<TD ALIGN=CENTER><B>%d</B></TD>\n", repinfo->count[COL_PURPLE]);
fprintf(htmlrep, "<TD ALIGN=CENTER><B>%d</B></TD>\n", repinfo->count[COL_CLEAR]);
fprintf(htmlrep, "<TD ALIGN=CENTER><B>%d</B></TD>\n", repinfo->count[COL_BLUE]);
fprintf(htmlrep, "</TR>\n");
fprintf(htmlrep, "<TR BGCOLOR=\"#000000\">\n");
fprintf(htmlrep, "<TD COLSPAN=7 ALIGN=CENTER>\n");
fprintf(htmlrep, "<FONT %s><B>[Total may not equal 100%%]</B></FONT></TD> </TR>\n", xgetenv("XYMONPAGECOLFONT"));
if (strcmp(repinfo->fstate, "NOTOK") == 0) {
fprintf(htmlrep, "<TR BGCOLOR=\"#000000\">\n");
fprintf(htmlrep, "<TD COLSPAN=7 ALIGN=CENTER>\n");
fprintf(htmlrep, "<FONT %s><B>[History file contains invalid entries]</B></FONT></TD></TR>\n",
xgetenv("XYMONPAGECOLFONT"));
}
fprintf(htmlrep, "</TABLE>\n");
fprintf(htmlrep, "</CENTER>\n");
/* Text-based report start */
if (textrep) {
char text_starttime[20], text_endtime[20];
fprintf(textrep, "Availability Report\n");
strftime(text_starttime, sizeof(text_starttime), "%b %d %Y", localtime(&st));
strftime(text_endtime, sizeof(text_endtime), "%b %d %Y", localtime(&end));
//.........这里部分代码省略.........
开发者ID:gvsurenderreddy,项目名称:xymon-2,代码行数:101,代码来源:reportlog.c
示例18: main
//.........这里部分代码省略.........
if (tname) {
*tname = '\0';
tname++;
}
if (nkonly) {
void *hinfo = hostinfo(hname);
char *nkalerts = bbh_item(hinfo, BBH_NK);
if (newnkconfig) {
if (strcmp(nkval(hname, tname, nkalerts), "No") == 0 ) wanted = 0;
} else {
if (!nkalerts) wanted = 0;
}
}
if (wanted && hname && tname && strcmp(hname, "summary") && strcmp(tname, xgetenv("INFOCOLUMN")) && strcmp(tname, xgetenv("TRENDSCOLUMN"))) {
htnames_t *newitem = (htnames_t *)malloc(sizeof(htnames_t));
for (hwalk = hosthead; (hwalk && strcmp(hwalk->hostname, hname)); hwalk = hwalk->next);
if (!hwalk) {
hwalk = (hostlist_t *)calloc(1, sizeof(hostlist_t));
hwalk->hostname = strdup(hname);
hwalk->procs = get_proclist(hname, procsbuf);
hwalk->svcs = get_proclist(hname, svcsbuf);
hwalk->next = hosthead;
hosthead = hwalk;
hostcount++;
}
newitem->name = strdup(tname);
newitem->next = hwalk->tests;
hwalk->tests = newitem;
hwalk->testcount++;
}
if (eoln) {
nexthost = eoln+1;
if (*nexthost == '\0') nexthost = NULL;
}
} while (nexthost);
allhosts = (hostlist_t **) malloc(hostcount * sizeof(hostlist_t *));
for (hwalk = hosthead, hosti=0; (hwalk); hwalk = hwalk->next, hosti++) {
allhosts[hosti] = hwalk;
if (hwalk->testcount > maxtests) maxtests = hwalk->testcount;
}
alltests = (htnames_t **) malloc(maxtests * sizeof(htnames_t *));
qsort(&allhosts[0], hostcount, sizeof(hostlist_t **), host_compare);
/* Get the static info */
load_all_links();
init_tcp_services();
pingcolumn = xgetenv("PINGCOLUMN");
pingplus = (char *)malloc(strlen(pingcolumn) + 2);
sprintf(pingplus, "%s=", pingcolumn);
/* Load alert config */
alertcolors = colorset(xgetenv("ALERTCOLORS"), ((1 << COL_GREEN) | (1 << COL_BLUE)));
alertinterval = 60*atoi(xgetenv("ALERTREPEAT"));
sprintf(configfn, "%s/etc/hobbit-alerts.cfg", xgetenv("BBHOME"));
load_alertconfig(configfn, alertcolors, alertinterval);
load_columndocs();
printf("Content-Type: %s\n\n", xgetenv("HTMLCONTENTTYPE"));
sethostenv("", "", "", colorname(COL_BLUE), NULL);
headfoot(stdout, "confreport", "", "header", COL_BLUE);
fprintf(stdout, "<table width=\"100%%\" border=0>\n");
fprintf(stdout, "<tr><th align=center colspan=2><font size=\"+2\">Hobbit configuration Report</font></th></tr>\n");
fprintf(stdout, "<tr><th valign=top align=left>Date</th><td>%s</td></tr>\n", ctime(&now));
fprintf(stdout, "<tr><th valign=top align=left>%d hosts included</th><td>\n", hostcount);
for (hosti=0; (hosti < hostcount); hosti++) {
fprintf(stdout, "%s ", allhosts[hosti]->hostname);
}
fprintf(stdout, "</td></tr>\n");
if (nkonly) {
fprintf(stdout, "<tr><th valign=top align=left>Filter</th><td>Only data for the "Critical Systems" view reported</td></tr>\n");
}
fprintf(stdout, "</table>\n");
headfoot(stdout, "confreport", "", "front", COL_BLUE);
for (hosti=0; (hosti < hostcount); hosti++) {
for (twalk = allhosts[hosti]->tests, testi = 0; (twalk); twalk = twalk->next, testi++) {
alltests[testi] = twalk;
}
qsort(&alltests[0], allhosts[hosti]->testcount, sizeof(htnames_t **), test_compare);
print_host(allhosts[hosti], alltests, allhosts[hosti]->testcount);
}
headfoot(stdout, "confreport", "", "back", COL_BLUE);
print_columndocs();
headfoot(stdout, "confreport", "", "footer", COL_BLUE);
return 0;
}
开发者ID:tjyang,项目名称:abmon,代码行数:101,代码来源:hobbit-confreport.c
示例19: main
int main(int argc, char *argv[])
{
char dirid[PATH_MAX];
char outdir[PATH_MAX];
char xymongencmd[PATH_MAX];
char xymonwebenv[PATH_MAX];
char xymongentimeopt[100];
char *xymongen_argv[20];
pid_t childpid;
int childstat;
char htmldelim[100];
char startstr[20];
int argi, newargi;
char *envarea = NULL;
char *useragent;
int usemultipart = 1;
newargi = 0;
xymongen_argv[newargi++] = xymongencmd;
xymongen_argv[newargi++] = xymongentimeopt;
for (argi=1; (argi < argc); argi++) {
if (argnmatch(argv[argi], "--env=")) {
char *p = strchr(argv[argi], '=');
loadenv(p+1, envarea);
}
else if (argnmatch(argv[argi], "--area=")) {
char *p = strchr(argv[argi], '=');
envarea = strdup(p+1);
}
else {
xymongen_argv[newargi++] = argv[argi];
}
}
xymongen_argv[newargi++] = outdir;
xymongen_argv[newargi++] = NULL;
redire
|
请发表评论