// Converts the BOINCTRACE macro into a single string and report it // to the CRT so it can be reported via the normal means. // void boinc_trace(const char *pszFormat, ...) { static char szBuffer[4096]; static char szDate[64]; static char szTime[64]; int n; // Trace messages should only be reported if running as a standalone // application or told too. if ((flags & BOINC_DIAG_TRACETOSTDERR) || (flags & BOINC_DIAG_TRACETOSTDOUT)) { memset(szBuffer, 0, sizeof(szBuffer)); memset(szDate, 0, sizeof(szDate)); memset(szTime, 0, sizeof(szTime)); #ifdef _WIN32 strdate(szDate); strtime(szTime); #else time_t t; char *theCR; time(&t); strcpy(szTime, asctime(localtime(&t))); theCR = strrchr(szTime, '\n'); if (theCR) *theCR = '\0'; theCR = strrchr(szTime, '\r'); if (theCR) *theCR = '\0'; #endif va_list ptr; va_start(ptr, pszFormat); vsnprintf(szBuffer, sizeof(szBuffer), pszFormat, ptr); va_end(ptr); #if defined(_WIN32) && defined(_DEBUG) n = _CrtDbgReport(_CRT_WARN, NULL, NULL, NULL, "[%s %s] TRACE [%d]: %s", szDate, szTime, GetCurrentThreadId(), szBuffer); #else if (flags & BOINC_DIAG_TRACETOSTDERR) { #ifdef _WIN32 n = fprintf(stderr, "[%s %s] TRACE [%d]: %s\n", szDate, szTime, GetCurrentThreadId(), szBuffer); #else n = fprintf(stderr, "[%s] TRACE: %s\n", szTime, szBuffer); #endif if (n > 0) stderr_file_size += n; } if (flags & BOINC_DIAG_TRACETOSTDOUT) { #ifdef _WIN32 n = fprintf(stdout, "[%s %s] TRACE [%d]: %s\n", szDate, szTime, GetCurrentThreadId(), szBuffer); #else n = fprintf(stdout, "[%s] TRACE: %s\n", szTime, szBuffer); #endif if (n > 0) stdout_file_size += n; } #endif } }
/***********************************************************************//** * @brief Return prefix * * Returns the prefix for each line. ***************************************************************************/ std::string GLog::prefix(void) const { // Initialize prefix to empty string std::string prefix = ""; // Add date if requested if (m_use_date){ prefix.append(strdate()); } // Add name if requested if (m_name.length() > 0){ prefix.append(" "+m_name); } // If there is a prefix then add separator if (prefix.length() > 0){ prefix.append(": "); } // Add any indent prefix.append(gammalib::fill(" ", m_indent)); // Return prefix return prefix; }
void boinc_info(const char* pszFormat, ...){ static char szBuffer[4096]; static char szDate[64]; static char szTime[64]; int n; memset(szBuffer, 0, sizeof(szBuffer)); memset(szDate, 0, sizeof(szDate)); memset(szTime, 0, sizeof(szTime)); strdate(szDate); strtime(szTime); va_list ptr; va_start(ptr, pszFormat); vsnprintf(szBuffer, sizeof(szBuffer), pszFormat, ptr); va_end(ptr); #if defined(_WIN32) && defined(_DEBUG) _CrtDbgReport(_CRT_WARN, NULL, NULL, NULL, "[%s %s] BOINCMSG: %s\n", szDate, szTime, szBuffer); #else if (flags & BOINC_DIAG_TRACETOSTDERR) { n = fprintf(stderr, "[%s %s] BOINCMSG: %s\n", szDate, szTime, szBuffer); if (n > 0) stderr_file_size += n; } if (flags & BOINC_DIAG_TRACETOSTDOUT) { n = fprintf(stdout, "[%s %s] BOINCMSG: %s\n", szDate, szTime, szBuffer); if (n > 0) stdout_file_size += n; } #endif }
static PyObject * python_strdate( PyObject *self, PyObject *args ) { char *usage = "Usage: _stock._strdate( epoch )\n"; PyObject *obj; double epoch; char *s; if( ! PyArg_ParseTuple( args, "d", &epoch ) ) { USAGE; return NULL; } s = strdate( epoch ); obj = Py_BuildValue( "s", s ); if( s ) { free( s ); } return obj; }
void LogMgr::getOutputBuffer(std::string& outOutPutBuffer, const std::string& tag, const std::string& message, const char* funcName, const char* sourceFile, unsigned int lineNum) { char date[20]; struct tm *sTm; time_t now = time(0); sTm = gmtime(&now); //strftime(date, sizeof(date), "%Y-%m-%d %H:%M:%S", sTm); strftime(date, sizeof(date), "%H:%M:%S", sTm); std::string strdate(date); outOutPutBuffer = strdate + " "; if (!tag.empty()) outOutPutBuffer += "[" + tag + "] " + message; else outOutPutBuffer += message; if (funcName != nullptr) { outOutPutBuffer += "\nFunction: "; outOutPutBuffer += funcName; } if (sourceFile != nullptr) { outOutPutBuffer += "\n"; outOutPutBuffer += sourceFile; } if (lineNum != 0) { outOutPutBuffer += "\nLine: "; char lineNumBuffer[11]; memset(lineNumBuffer, 0, sizeof(char)); outOutPutBuffer += _itoa(lineNum, lineNumBuffer, 10); } outOutPutBuffer += "\n"; }
void boinc_catch_signal(int signal, struct siginfo *siginfo, void *sigcontext) { #else void boinc_catch_signal(int signal) { #endif switch(signal) { case SIGHUP: fprintf(stderr, "SIGHUP: terminal line hangup\n"); return; case SIGINT: fprintf(stderr, "SIGINT: interrupt program\n"); break; case SIGILL: fprintf(stderr, "SIGILL: illegal instruction\n"); break; case SIGABRT: fprintf(stderr, "SIGABRT: abort called\n"); break; #if SIGBUS != SIGSEGV // in case SIGBUS == SIGSEGV (e.g., Haiku) case SIGBUS: fprintf(stderr, "SIGBUS: bus error\n"); break; #endif case SIGSEGV: fprintf(stderr, "SIGSEGV: segmentation violation\n"); break; case SIGSYS: fprintf(stderr, "SIGSYS: system call given invalid argument\n"); break; case SIGPIPE: fprintf(stderr, "SIGPIPE: write on a pipe with no reader\n"); return; default: fprintf(stderr, "unknown signal %d\n", signal); break; } #ifdef __GLIBC__ void *array[64]; size_t size; size = backtrace (array, 64); // Anything that calls malloc here (i.e *printf()) will probably fail // so we'll do it the hard way. (void) write(fileno(stderr),"Stack trace (",strlen("Stack trace (")); char mbuf[10]; char *p=mbuf+9; int i=size; *(p--)=0; while (i) { *(p--)=i%10+'0'; i/=10; } (void) write(fileno(stderr),p+1,strlen(p+1)); (void) write(fileno(stderr)," frames):",strlen(" frames):")); mbuf[0]=10; (void) write(fileno(stderr),mbuf,1); backtrace_symbols_fd(array, size, fileno(stderr)); #endif #ifdef __APPLE__ PrintBacktrace(); #endif #ifdef ANDROID // this is some dark undocumented Android voodoo that uses libcorkscrew.so // minimal use of library functions because they may not work in an signal // handler. #define DUMP_LINE_LEN 256 static backtrace_frame_t backtrace[64]; static backtrace_symbol_t backtrace_symbols[64]; if (unwind_backtrace_signal_arch != NULL) { map_info_t *map_info=acquire_my_map_info_list(); ssize_t size=unwind_backtrace_signal_arch(siginfo,sigcontext,map_info,backtrace,0,64); get_backtrace_symbols(backtrace,size,backtrace_symbols); char line[DUMP_LINE_LEN]; for (int i=0;i<size;i++) { format_backtrace_line(i,&backtrace[i],&backtrace_symbols[i],line,DUMP_LINE_LEN); line[DUMP_LINE_LEN-1]=0; if (backtrace_symbols[i].symbol_name) { strlcat(line," ",DUMP_LINE_LEN); if (backtrace_symbols[i].demangled_name) { strlcat(line,backtrace_symbols[i].demangled_name,DUMP_LINE_LEN); } } else { symbol_table_t* symbols = NULL; if (backtrace_symbols[i].map_name) { symbols = load_symbol_table(backtrace_symbols[i].map_name); } else { symbols = load_symbol_table(argv0); } symbol_t* symbol = NULL; if (symbols) { symbol = find_symbol(symbols, backtrace[i].absolute_pc); } if (symbol) { int offset = backtrace[i].absolute_pc - symbol->start; strlcat(line," (",DUMP_LINE_LEN); strlcat(line,symbol->name,DUMP_LINE_LEN); strlcat(line,"+",DUMP_LINE_LEN); strlcat(line,xtoa(offset),DUMP_LINE_LEN); strlcat(line,")",DUMP_LINE_LEN); line[DUMP_LINE_LEN-1]=0; } else { strlcat(line, " (\?\?\?)",DUMP_LINE_LEN); } if (symbols) free_symbol_table(symbols); } if (backtrace[i].absolute_pc) { strlcat(line," [",DUMP_LINE_LEN); strlcat(line,xtoa(*reinterpret_cast<unsigned int *>(backtrace[i].absolute_pc)),DUMP_LINE_LEN); strlcat(line,"]",DUMP_LINE_LEN); } strlcat(line,"\n",DUMP_LINE_LEN); write(fileno(stderr),line,strlen(line)); fflush(stderr); } } #endif // ANDROID fprintf(stderr, "\nExiting...\n"); _exit(signal_exit_code); } #endif // // Diagnostics Routines common to all Platforms // // Converts the BOINCTRACE macro into a single string and report it // to the CRT so it can be reported via the normal means. // void boinc_trace(const char *pszFormat, ...) { static char szBuffer[4096]; static char szDate[64]; static char szTime[64]; int n; // Trace messages should only be reported if running as a standalone // application or told too. if ((flags & BOINC_DIAG_TRACETOSTDERR) || (flags & BOINC_DIAG_TRACETOSTDOUT)) { memset(szBuffer, 0, sizeof(szBuffer)); memset(szDate, 0, sizeof(szDate)); memset(szTime, 0, sizeof(szTime)); #ifdef _WIN32 strdate(szDate); strtime(szTime); #else time_t t; char *theCR; time(&t); safe_strcpy(szTime, asctime(localtime(&t))); theCR = strrchr(szTime, '\n'); if (theCR) *theCR = '\0'; theCR = strrchr(szTime, '\r'); if (theCR) *theCR = '\0'; #endif va_list ptr; va_start(ptr, pszFormat); vsnprintf(szBuffer, sizeof(szBuffer), pszFormat, ptr); va_end(ptr); #if defined(_WIN32) && defined(_DEBUG) n = _CrtDbgReport(_CRT_WARN, NULL, NULL, NULL, "[%s %s] TRACE [%d]: %s", szDate, szTime, GetCurrentThreadId(), szBuffer); #else if (flags & BOINC_DIAG_TRACETOSTDERR) { #ifdef _WIN32 n = fprintf(stderr, "[%s %s] TRACE [%d]: %s\n", szDate, szTime, GetCurrentThreadId(), szBuffer); #else n = fprintf(stderr, "[%s] TRACE: %s\n", szTime, szBuffer); #endif if (n > 0) stderr_file_size += n; } if (flags & BOINC_DIAG_TRACETOSTDOUT) { #ifdef _WIN32 n = fprintf(stdout, "[%s %s] TRACE [%d]: %s\n", szDate, szTime, GetCurrentThreadId(), szBuffer); #else n = fprintf(stdout, "[%s] TRACE: %s\n", szTime, szBuffer); #endif if (n > 0) stdout_file_size += n; } #endif } } // Converts the BOINCINFO macro into a single string and report it // to stderr so it can be reported via the normal means. // #ifndef BOINC_INFOMSGS void boinc_info(const char* /*pszFormat*/, ... ){ return; } #else void boinc_info(const char* pszFormat, ...){ static char szBuffer[4096]; static char szDate[64]; static char szTime[64]; int n; memset(szBuffer, 0, sizeof(szBuffer)); memset(szDate, 0, sizeof(szDate)); memset(szTime, 0, sizeof(szTime)); strdate(szDate); strtime(szTime); va_list ptr; va_start(ptr, pszFormat); vsnprintf(szBuffer, sizeof(szBuffer), pszFormat, ptr); va_end(ptr); #if defined(_WIN32) && defined(_DEBUG) _CrtDbgReport(_CRT_WARN, NULL, NULL, NULL, "[%s %s] BOINCMSG: %s\n", szDate, szTime, szBuffer); #else if (flags & BOINC_DIAG_TRACETOSTDERR) { n = fprintf(stderr, "[%s %s] BOINCMSG: %s\n", szDate, szTime, szBuffer); if (n > 0) stderr_file_size += n; } if (flags & BOINC_DIAG_TRACETOSTDOUT) { n = fprintf(stdout, "[%s %s] BOINCMSG: %s\n", szDate, szTime, szBuffer); if (n > 0) stdout_file_size += n; } #endif } #endif void diagnostics_set_max_file_sizes(int stdout_size, int stderr_size) { if (stdout_size) max_stdout_file_size = stdout_size; if (stderr_size) max_stderr_file_size = stderr_size; } // Dump string to whatever the platform debuggers // #ifndef _WIN32 int diagnostics_trace_to_debugger(const char*) { return 0; }
int main(int argc,char *argv[]) { #ifdef _XLIB_ int xdf=0; int xd=0; struct XwinDisplay *dp; struct XwinWindow *win; char *display_name=NULL; char *wname="fov_plot"; int xdoff=-1; int ydoff=-1; #endif struct FrameBuffer *img=NULL; struct PostScript *psdata=NULL; FILE *fontfp=NULL; char *fntdbfname=NULL; struct FrameBufferFontDB *fontdb=NULL; unsigned int bgcol; unsigned int txtcol; int arg; char *envstr=NULL; char *cfname=NULL; FILE *fp; float wdt=540,hgt=540; float pad=0; char *fontname=NULL; float fontsize=10.0; char *dfontname="Helvetica"; float width=0.5; struct Plot *plot=NULL; struct Splot *splot=NULL; float xpoff=40,ypoff=40; unsigned char psflg=0; unsigned char xmlflg=0; unsigned char ppmflg=0; unsigned char ppmxflg=0; unsigned char pngflg=0; unsigned char gflg=0; unsigned char pflg=0; unsigned char help=0; unsigned char option=0; char *bgcol_txt=NULL; char *txtcol_txt=NULL; unsigned char sqflg=0; MapTFunction tfunc; unsigned char flip=0; unsigned char gvp=0; unsigned char ortho=0; unsigned char stereo=0; unsigned char cylind=0; float lat=90,lon=0; float latmin=50.0; float sf=1.0; float alt=0.0; unsigned char magflg=0; unsigned char rotflg=0; unsigned char mapflg=0; unsigned char fmapflg=0; unsigned char bndflg=0; unsigned char grdflg=0; unsigned char tmkflg=0; unsigned char tlblflg=0; unsigned char ofovflg=0; unsigned char fofovflg=0; unsigned char cfovflg=0; unsigned char fcfovflg=0; unsigned char fovflg=0; unsigned char ffovflg=0; unsigned char grdontop=0; unsigned char dotflg=0; int tmtick=3; unsigned char lstflg=0; unsigned char trmflg=0; unsigned char ftrmflg=0; char *grdcol_txt=NULL; char *cstcol_txt=NULL; char *bndcol_txt=NULL; char *lndcol_txt=NULL; char *seacol_txt=NULL; char *trmcol_txt=NULL; char *ftrmcol_txt=NULL; char *tmkcol_txt=NULL; char *ofovcol_txt=NULL; char *fofovcol_txt=NULL; char *fovcol_txt=NULL; char *ffovcol_txt=NULL; char *cfovcol_txt=NULL; char *fcfovcol_txt=NULL; unsigned int grdcol; unsigned int cstcol; unsigned int bndcol; unsigned int lndcol; unsigned int seacol; unsigned int trmcol; unsigned int ftrmcol; unsigned int tmkcol; unsigned int ofovcol; unsigned int fofovcol; unsigned int fovcol; unsigned int ffovcol; unsigned int cfovcol; unsigned int fcfovcol; FILE *mapfp; float marg[4]; int i; char *tmetxt=NULL; char *dtetxt=NULL; double tval=-1; double dval=-1; int yr,mo,dy,hr,mt; double sc; int yrsec; float tme_shft; double LsoT,LT,Hangle,dec,eqt; float dotr=2; int stid=-1; char *ststr=NULL; int stnum=0; char tsfx[16]; envstr=getenv("MAPDATA"); mapfp=fopen(envstr,"r"); map=MapFread(mapfp); fclose(mapfp); envstr=getenv("BNDDATA"); mapfp=fopen(envstr,"r"); bnd=MapBndFread(mapfp); fclose(mapfp); envstr=getenv("SD_RADAR"); if (envstr==NULL) { fprintf(stderr,"Environment variable 'SD_RADAR' must be defined.\n"); exit(-1); } fp=fopen(envstr,"r"); if (fp==NULL) { fprintf(stderr,"Could not locate radar information file.\n"); exit(-1); } network=RadarLoad(fp); fclose(fp); if (network==NULL) { fprintf(stderr,"Failed to read radar information.\n"); exit(-1); } envstr=getenv("SD_HDWPATH"); if (envstr==NULL) { fprintf(stderr,"Environment variable 'SD_HDWPATH' must be defined.\n"); exit(-1); } RadarLoadHardware(envstr,network); bgcol=PlotColor(0xff,0xff,0xff,0xff); txtcol=PlotColor(0x00,0x00,0x00,0xff); grdcol=PlotColor(0x20,0x40,0x60,0xff); cstcol=PlotColor(0xa0,0xa0,0xa0,0xff); bndcol=PlotColor(0x80,0x80,0x80,0xff); lndcol=PlotColor(0xff,0xff,0xf0,0xff); seacol=PlotColor(0xe0,0xf0,0xff,0xff); tmkcol=PlotColor(0x00,0x00,0x00,0xff); ofovcol=PlotColor(0x00,0x00,0x00,0xff); fofovcol=PlotColor(0xff,0xff,0xff,0xff); fovcol=PlotColor(0x00,0x00,0x00,0xff); ffovcol=PlotColor(0xc0,0x00,0x00,0xff); trmcol=PlotColor(0x80,0x80,0x80,0xff); ftrmcol=PlotColor(0x80,0x80,0x80,0xff); cfovcol=PlotColor(0x00,0x00,0x00,0xff); fcfovcol=PlotColor(0xff,0xff,0xff,0xff); OptionAdd(&opt,"-help",'x',&help); OptionAdd(&opt,"-option",'x',&option); OptionAdd(&opt,"cf",'t',&cfname); #ifdef _XLIB_ OptionAdd(&opt,"x",'x',&xd); OptionAdd(&opt,"display",'t',&display_name); OptionAdd(&opt,"xoff",'i',&xdoff); OptionAdd(&opt,"yoff",'i',&ydoff); #endif OptionAdd(&opt,"ppm",'x',&ppmflg); OptionAdd(&opt,"ppmx",'x',&ppmxflg); OptionAdd(&opt,"xml",'x',&xmlflg); OptionAdd(&opt,"png",'x',&pngflg); OptionAdd(&opt,"ps",'x',&psflg); OptionAdd(&opt,"xp",'f',&xpoff); OptionAdd(&opt,"yp",'f',&ypoff); OptionAdd(&opt,"wdt",'f',&wdt); OptionAdd(&opt,"hgt",'f',&hgt); OptionAdd(&opt,"pad",'f',&pad); OptionAdd(&opt,"bgcol",'t',&bgcol_txt); OptionAdd(&opt,"txtcol",'t',&txtcol_txt); OptionAdd(&opt,"square",'x',&sqflg); OptionAdd(&opt,"ortho",'x',&ortho); OptionAdd(&opt,"stereo",'x',&stereo); OptionAdd(&opt,"gvp",'x',&gvp); OptionAdd(&opt,"lat",'f',&lat); OptionAdd(&opt,"lon",'f',&lon); OptionAdd(&opt,"latmin",'f',&latmin); OptionAdd(&opt,"sf",'f',&sf); OptionAdd(&opt,"mag",'x',&magflg); OptionAdd(&opt,"rotate",'x',&rotflg); OptionAdd(&opt,"alt",'f',&alt); OptionAdd(&opt,"flip",'x',&flip); OptionAdd(&opt,"coast",'x',&mapflg); OptionAdd(&opt,"fcoast",'x',&fmapflg); OptionAdd(&opt,"bnd",'x',&bndflg); OptionAdd(&opt,"grd",'x',&grdflg); OptionAdd(&opt,"tmk",'x',&tmkflg); OptionAdd(&opt,"grdontop",'x',&grdontop); OptionAdd(&opt,"fov",'x',&fovflg); OptionAdd(&opt,"ffov",'x',&ffovflg); OptionAdd(&opt,"ofov",'x',&ofovflg); OptionAdd(&opt,"fofov",'x',&fofovflg); OptionAdd(&opt,"cfov",'x',&cfovflg); OptionAdd(&opt,"fcfov",'x',&fcfovflg); OptionAdd(&opt,"tmtick",'i',&tmtick); OptionAdd(&opt,"lst",'x',&lstflg); OptionAdd(&opt,"term",'x',&trmflg); OptionAdd(&opt,"fterm",'x',&ftrmflg); OptionAdd(&opt,"grdcol",'t',&grdcol_txt); OptionAdd(&opt,"cstcol",'t',&cstcol_txt); OptionAdd(&opt,"bndcol",'t',&bndcol_txt); OptionAdd(&opt,"lndcol",'t',&lndcol_txt); OptionAdd(&opt,"seacol",'t',&seacol_txt); OptionAdd(&opt,"trmcol",'t',&trmcol_txt); OptionAdd(&opt,"tmkcol",'t',&tmkcol_txt); OptionAdd(&opt,"fovcol",'t',&fovcol_txt); OptionAdd(&opt,"ffovcol",'t',&ffovcol_txt); OptionAdd(&opt,"ofovcol",'t',&ofovcol_txt); OptionAdd(&opt,"fofovcol",'t',&fofovcol_txt); OptionAdd(&opt,"cfovcol",'t',&cfovcol_txt); OptionAdd(&opt,"fcfovcol",'t',&fcfovcol_txt); OptionAdd(&opt,"st",'t',&ststr); OptionAdd(&opt,"t",'t',&tmetxt); OptionAdd(&opt,"d",'t',&dtetxt); OptionAdd(&opt,"tmlbl",'x',&tlblflg); OptionAdd(&opt,"fontname",'t',&fontname); OptionAdd(&opt,"fontsize",'f',&fontsize); OptionAdd(&opt,"lnewdt",'f',&width); OptionAdd(&opt,"dotr",'f',&dotr); OptionAdd(&opt,"dot",'x',&dotflg); arg=OptionProcess(1,argc,argv,&opt,NULL); if (cfname !=NULL) { /* load the configuration file */ int farg; do { fp=fopen(cfname,"r"); if (fp==NULL) break; free(cfname); cfname=NULL; optf=OptionProcessFile(fp); if (optf !=NULL) { farg=OptionProcess(0,optf->argc,optf->argv,&opt,NULL); OptionFreeFile(optf); } fclose(fp); } while (cfname !=NULL); } if (help==1) { OptionPrintInfo(stdout,hlpstr); exit(0); } if (option==1) { OptionDump(stdout,&opt); exit(0); } if (tmetxt !=NULL) tval=strtime(tmetxt); if (dtetxt !=NULL) dval=strdate(dtetxt); tval+=dval; TimeEpochToYMDHMS(tval,&yr,&mo,&dy,&hr,&mt,&sc); yrsec=TimeYMDHMSToYrsec(yr,mo,dy,hr,mt,sc); if (magflg) { MapModify(map,AACGMtransform,NULL); MapModify(bnd,AACGMtransform,NULL); } fov=make_fov(tval,network,alt); if (magflg) MapModify(fov,AACGMtransform,NULL); if (tmtick<1) tmtick=1; if (tmtick>6) tmtick=6; if ((ortho==0) && (stereo==0)) cylind=1; if (grdflg) grd=make_grid(15,10,cylind); if (tmkflg) tmk=make_grid(30*tmtick,10,cylind); if ((lat<0) && (latmin>0)) latmin=-latmin; if ((lat>0) && (latmin<0)) latmin=-latmin; if (trmflg || ftrmflg) { if ((cylind) || (ortho) | (gvp)) trm=SZATerminator(yr,mo,dy,hr,mt,sc,0,magflg, 1.0,90.0); else if (lat>0) trm=SZATerminator(yr,mo,dy,hr,mt,sc,1,magflg, 1.0,90.0); else trm=SZATerminator(yr,mo,dy,hr,mt,sc,-1,magflg,1.0,90.0); } marg[0]=lat; marg[1]=lon; tfunc=MapCylindrical; if (ortho) tfunc=MapOrthographic; if (stereo) tfunc=MapStereographic; if (gvp) tfunc=MapGeneralVerticalPerspective; if ((ortho) || (gvp)) marg[2]=sf; else if (stereo) marg[2]=1.25*0.5*sf*90.0/(90-fabs(latmin)); else marg[2]=1; marg[3]=flip; strcpy(tsfx,"LT"); if (magflg) strcpy(tsfx,"MLT"); else if (lstflg) strcpy(tsfx,"LST"); dec=SZASolarDec(yr,mo,dy,hr,mt,sc); eqt=SZAEqOfTime(yr,mo,dy,hr,mt,sc); if (magflg) tme_shft=-MLTConvertYrsec(yr,yrsec,0.0)*15.0; else { if (lstflg) { LsoT=(hr*3600+mt*60+sc)+eqt; Hangle=15*(LsoT/3600); tme_shft=-Hangle; } else { LT=(hr*3600+mt*60+sc); Hangle=15*(LT/3600); tme_shft=-Hangle; } } if (lat<0) tme_shft+=180.0; if (rotflg) marg[1]=lon+tme_shft; if ((cylind) || (sqflg)) clip=MapSquareClip(); else clip=MapCircleClip(10); if (mapflg || fmapflg) { nmap=MapTransform(map,2*sizeof(float),PolygonXYbbox, tfunc,marg); if (cylind) nmap=wrap(nmap); pmap=PolygonClip(clip,nmap); } if (bndflg) { nbnd=MapTransform(bnd,2*sizeof(float),PolygonXYbbox, tfunc,marg); if (cylind) nbnd=wrap(nbnd); pbnd=PolygonClip(clip,nbnd); } if (grdflg) { ngrd=MapTransform(grd,2*sizeof(float),PolygonXYbbox, tfunc,marg); if (cylind) ngrd=wrap(ngrd); pgrd=PolygonClip(clip,ngrd); } if (trmflg || ftrmflg) { ntrm=MapTransform(trm,2*sizeof(float),PolygonXYbbox, tfunc,marg); if (cylind) ntrm=wrap(ntrm); ptrm=PolygonClip(clip,ntrm); } nfov=MapTransform(fov,2*sizeof(float),PolygonXYbbox, tfunc,marg); if (cylind) nfov=wrap(nfov); pfov=PolygonClip(clip,nfov); if (tmkflg) { float tmp; tmp=marg[1]; if (rotflg) marg[1]=0; else marg[1]=lon-tme_shft; ntmk=MapTransform(tmk,2*sizeof(float),PolygonXYbbox, tfunc,marg); ptmk=PolygonClip(clip,ntmk); marg[1]=tmp; } if (bgcol_txt !=NULL) bgcol=PlotColorStringRGBA(bgcol_txt); if (txtcol_txt !=NULL) txtcol=PlotColorStringRGBA(txtcol_txt); if (grdcol_txt !=NULL) grdcol=PlotColorStringRGBA(grdcol_txt); if (cstcol_txt !=NULL) cstcol=PlotColorStringRGBA(cstcol_txt); if (bndcol_txt !=NULL) bndcol=PlotColorStringRGBA(bndcol_txt); if (lndcol_txt !=NULL) lndcol=PlotColorStringRGBA(lndcol_txt); if (seacol_txt !=NULL) seacol=PlotColorStringRGBA(seacol_txt); if (trmcol_txt !=NULL) trmcol=PlotColorStringRGBA(trmcol_txt); if (ftrmcol_txt !=NULL) ftrmcol=PlotColorStringRGBA(ftrmcol_txt); if (tmkcol_txt !=NULL) tmkcol=PlotColorStringRGBA(tmkcol_txt); if (fovcol_txt !=NULL) fovcol=PlotColorStringRGBA(fovcol_txt); if (ofovcol_txt !=NULL) ofovcol=PlotColorStringRGBA(ofovcol_txt); if (cfovcol_txt !=NULL) cfovcol=PlotColorStringRGBA(cfovcol_txt); if (ffovcol_txt !=NULL) ffovcol=PlotColorStringRGBA(ffovcol_txt); if (fofovcol_txt !=NULL) fofovcol=PlotColorStringRGBA(fofovcol_txt); if (fcfovcol_txt !=NULL) fcfovcol=PlotColorStringRGBA(fcfovcol_txt); if ((wdt==0) || (hgt==0)) { fprintf(stderr,"invalid plot size.\n"); exit(-1); } if (tlblflg) pad=10+fontsize; if (fontname==NULL) fontname=dfontname; fntdbfname=getenv("FONTDB"); fontfp=fopen(fntdbfname,"r"); if (fontfp !=NULL) { fontdb=FrameBufferFontDBLoad(fontfp); fclose(fontfp); } if (fontdb==NULL) { fprintf(stderr,"Could not load fonts.\n"); exit(-1); } if (ststr !=NULL) stid=RadarGetID(network,ststr); for (stnum=0;stnum<network->rnum;stnum++) if (stid==network->radar[stnum].id) break; if (stnum==network->rnum) stnum=0; /* now determine our output type */ if (psflg) pflg=1; if (xmlflg) gflg=1; if (ppmflg) gflg=1; if (ppmxflg) gflg=1; if (pngflg) gflg=1; #ifdef _XLIB_ if (xd !=0) { pflg=0; gflg=1; } #endif if (pflg) gflg=0; if ((!gflg) && (!pflg)) pflg=1; plot=PlotMake(); splot=SplotMake(); SplotSetPlot(plot,splot); if (gflg) SplotSetFrameBuffer(splot,&img,fontdb,NULL,NULL); if (pflg) { psdata=PostScriptMake(); PostScriptSetText(psdata,stream,stdout); SplotSetPostScript(splot,psdata,0,xpoff,ypoff); } PlotDocumentStart(plot,"fov_plot",NULL,wdt,hgt,24); PlotPlotStart(plot,"fov_plot",wdt,hgt,24); PlotRectangle(plot,NULL,0,0,wdt,hgt,1,bgcol,0x0f,0,NULL); if (fmapflg) { if ((cylind) || (sqflg)) PlotRectangle(plot,NULL,pad,pad, wdt-2*pad,hgt-2*pad, 1,seacol,0x0f,0,NULL); PlotEllipse(plot,NULL,wdt/2,hgt/2,wdt/2-pad,hgt/2-pad, 1,seacol,0x0f,0,NULL); } if ((grdflg) && (!grdontop)) { MapPlotPolygon(plot,NULL,pad,pad,wdt-2*pad,hgt-2*pad,0, grdcol,0x0f,width,NULL, pgrd,1); } if (fmapflg) { MapPlotPolygon(plot,NULL,pad,pad,wdt-2*pad,hgt-2*pad,1, lndcol,0x0f,0,NULL,pmap,1); MapPlotPolygon(plot,NULL,pad,pad,wdt-2*pad,hgt-2*pad,1, lndcol,0x0f,0,NULL,pmap,3); MapPlotPolygon(plot,NULL,pad,pad,wdt-2*pad,hgt-2*pad,1, seacol,0x0f,0,NULL,pmap,0); } if (ftrmflg) MapPlotPolygon(plot,NULL,pad,pad,wdt-2*pad,hgt-2*pad, 1,ftrmcol,0x0f,0,NULL,ptrm,1); if (fofovflg) { for (i=0;i<network->rnum;i++) { if (network->radar[i].id==stid) continue; if (network->radar[i].status !=1) continue; MapPlotPolygon(plot,NULL,pad,pad, wdt-2*pad,hgt-2*pad,1,fofovcol,0x0f,0,NULL,pfov,i); } } if (fcfovflg) { for (i=0;i<network->rnum;i++) { if (network->radar[i].id==stid) continue; if (network->radar[i].status!=0) continue; MapPlotPolygon(plot,NULL,pad,pad,wdt-2*pad,hgt-2*pad,1, fcfovcol,0x0f,0,NULL,pfov,i); } } if (ffovflg) { MapPlotPolygon(plot,NULL,pad,pad, wdt-2*pad,hgt-2*pad,1,ffovcol,0x0f,0,NULL,pfov,stnum); } if (mapflg) { MapPlotPolygon(plot,NULL,pad,pad,wdt-2*pad,hgt-2*pad,0,cstcol,0x0f, width,NULL, pmap,1); MapPlotOpenPolygon(plot,NULL,pad,pad,wdt-2*pad,hgt-2*pad,cstcol,0x0f, width,NULL, pmap,2); MapPlotPolygon(plot,NULL,pad,pad,wdt-2*pad,hgt-2*pad,0,cstcol,0x0f, width,NULL, pmap,0); } if (ofovflg) { for (i=0;i<network->rnum;i++) { if (network->radar[i].id==stid) continue; if (network->radar[i].status !=1) continue; MapPlotPolygon(plot,NULL,pad,pad,wdt-2*pad,hgt-2*pad,0, ofovcol,0x0f,width,NULL, pfov,i); } } if (cfovflg) { for (i=0;i<network->rnum;i++) { if (network->radar[i].id==stid) continue; if (network->radar[i].status !=0) continue; MapPlotPolygon(plot,NULL,pad,pad,wdt-2*pad,hgt-2*pad,0, cfovcol,0x0f,width,NULL, pfov,i); } } if (dotflg) { int s=0; struct RadarSite *site; float pnt[2]; if (cfovflg | fcfovflg) { for (i=0;i<network->rnum;i++) { if (network->radar[i].id==stid) continue; if (network->radar[i].status !=0) continue; site=RadarYMDHMSGetSite(&(network->radar[i]),yr,mo,dy,hr,mt,sc); pnt[0]=site->geolat; pnt[1]=site->geolon; s=(*tfunc)(sizeof(float)*2,pnt,2*sizeof(float),pnt,marg); if (s==0) PlotEllipse(plot,NULL,pad+pnt[0]*(wdt-2*pad), pad+pnt[1]*(hgt-2*pad),dotr,dotr, 1,fcfovcol,0x0f,0,NULL); } } if (ofovflg | fofovflg) { for (i=0;i<network->rnum;i++) { if (network->radar[i].id==stid) continue; if (network->radar[i].status !=1) continue; site=RadarYMDHMSGetSite(&(network->radar[i]),yr,mo,dy,hr,mt,sc); pnt[0]=site->geolat; pnt[1]=site->geolon; s=(*tfunc)(sizeof(float)*2,pnt,2*sizeof(float),pnt,marg); if (s==0) PlotEllipse(plot,NULL,pad+pnt[0]*(wdt-2*pad), pad+pnt[1]*(hgt-2*pad),dotr,dotr, 1,fofovcol,0x0f,0,NULL); } } if (fovflg) { site=RadarYMDHMSGetSite(&(network->radar[stnum]),yr,mo,dy,hr,mt,sc); pnt[0]=site->geolat; pnt[1]=site->geolon; s=(*tfunc)(sizeof(float)*2,pnt,2*sizeof(float),pnt,marg); if (s==0) PlotEllipse(plot,NULL,pad+pnt[0]*(wdt-2*pad), pad+pnt[1]*(hgt-2*pad),dotr,dotr, 1,ffovcol,0x0f,0,NULL); } } if (fovflg) MapPlotPolygon(plot,NULL,pad,pad,wdt-2*pad,hgt-2*pad,0, fovcol,0x0f,width,NULL, pfov,stnum); if (bndflg) MapPlotOpenPolygon(plot,NULL,pad,pad,wdt-2*pad,hgt-2*pad, bndcol,0x0f,width,NULL, pbnd,-1); if (trmflg) MapPlotOpenPolygon(plot,NULL,pad,pad,wdt-2*pad,hgt-2*pad, trmcol,0x0f,width,NULL, ptrm,1); if (tmkflg) MapPlotPolygon(plot,NULL,pad,pad,wdt-2*pad,hgt-2*pad,0, tmkcol,0x0f,width,NULL, ptmk,1); if ((grdflg) && (grdontop)) { MapPlotPolygon(plot,NULL,0,0,wdt-2*pad,hgt-2*pad,0, grdcol,0x0f,width,NULL, pgrd,1); } if ((cylind) || (sqflg)) PlotRectangle(plot,NULL,pad,pad,wdt-2*pad,hgt-2*pad, 0,grdcol,0x0f,width,NULL); else PlotEllipse(plot,NULL,wdt/2,hgt/2,wdt/2-pad,hgt/2-pad, 0,grdcol,0x0f,width,NULL); if (tlblflg){ if (lat>0) plot_time_label(plot,pad,pad,wdt-2*pad,hgt-2*pad, 90,flip,tsfx, lon-tme_shft*(! rotflg), (wdt/2)-pad,6, txtcol,0x0f,fontname,fontsize,fontdb); else plot_time_label(plot,pad,pad,wdt-2*pad,hgt-2*pad, -90,flip,tsfx, lon-tme_shft*(! rotflg), (wdt/2)-pad,6, txtcol,0x0f,fontname,fontsize,fontdb); } PlotPlotEnd(plot); PlotDocumentEnd(plot); if (!gflg) exit(0); if (img==NULL) { fprintf(stderr,"Nothing to plot.\n"); exit(-1); } #ifdef _XLIB_ if (xd !=0) { dp=XwinOpenDisplay(display_name,&xdf); if (dp==NULL) { fprintf(stderr,"Could not open display.\n"); exit(-1); } if (xdoff==-1) xdoff=(dp->wdt-img->wdt)/2; if (ydoff==-1) ydoff=(dp->hgt-img->hgt)/2; win=XwinMakeWindow(xdoff,ydoff,img->wdt,img->hgt,0, dp,wname, wname,argv[0],wname,argc,argv,&xdf); if (win==NULL) { fprintf(stderr,"Could not create window.\n"); exit(-1); } XwinFrameBufferWindow(img,win); XwinShowWindow(win); XwinDisplayEvent(dp,1,&win,1,NULL); XwinFreeWindow(win); XwinCloseDisplay(dp); } else { if (xmlflg==1) FrameBufferSaveXML(img,stream,stdout); else if (ppmflg==1) FrameBufferSavePPM(img,stdout); else if (ppmxflg==1) FrameBufferSavePPMX(img,stdout); else FrameBufferSavePNG(img,stdout); } #else if (xmlflg==1) FrameBufferSaveXML(img,stream,stdout); else if (ppmflg==1) FrameBufferSavePPM(img,stdout); else if (ppmxflg==1) FrameBufferSavePPMX(img,stdout); else FrameBufferSavePNG(img,stdout); #endif return 0; }
int main (int argc,char *argv[]) { int arg=0; int status=0; double atime; char *stmestr=NULL; char *etmestr=NULL; char *sdtestr=NULL; char *edtestr=NULL; char *exstr=NULL; double stime=-1; double etime=-1; double extime=0; double sdate=-1; double edate=-1; int yr,mo,dy,hr,mt; double sc; unsigned char vb=0; unsigned char help=0; unsigned char option=0; FILE *fp=NULL; int n; prm=RadarParmMake(); iq=IQMake(); OptionAdd(&opt,"-help",'x',&help); OptionAdd(&opt,"-option",'x',&option); OptionAdd(&opt,"vb",'x',&vb); OptionAdd(&opt,"st",'t',&stmestr); OptionAdd(&opt,"et",'t',&etmestr); OptionAdd(&opt,"sd",'t',&sdtestr); OptionAdd(&opt,"ed",'t',&edtestr); OptionAdd(&opt,"ex",'t',&exstr); arg=OptionProcess(1,argc,argv,&opt,NULL); if (help==1) { OptionPrintInfo(stdout,hlpstr); exit(0); } if (option==1) { OptionDump(stdout,&opt); exit(0); } if (exstr !=NULL) extime=strtime(exstr); if (stmestr !=NULL) stime=strtime(stmestr); if (etmestr !=NULL) etime=strtime(etmestr); if (sdtestr !=NULL) sdate=strdate(sdtestr); if (edtestr !=NULL) edate=strdate(edtestr); if ((argc-arg)>1) { fp=fopen(argv[arg+1],"r"); if (fp==NULL) { fprintf(stderr,"Index not found.\n"); exit(-1); } inx=IQIndexFload(fp); fclose(fp); if (inx==NULL) { fprintf(stderr,"Error loading index.\n"); exit(-1); } } if (arg==argc) fp=stdin; else fp=fopen(argv[arg],"r"); if (fp==NULL) { fprintf(stderr,"File not found.\n"); exit(-1); } if (IQFread(fp,prm,iq,&badtr,&samples)==-1) { fprintf(stderr,"Error reading file\n"); exit(-1); } atime=TimeYMDHMSToEpoch(prm->time.yr, prm->time.mo, prm->time.dy, prm->time.hr, prm->time.mt, prm->time.sc+prm->time.us/1.0e6); /* skip here */ if ((stime !=-1) || (sdate !=-1)) { /* we must skip the start of the files */ int yr,mo,dy,hr,mt; double sc; if (stime==-1) stime= ( (int) atime % (24*3600)); if (sdate==-1) stime+=atime - ( (int) atime % (24*3600)); else stime+=sdate; TimeEpochToYMDHMS(stime,&yr,&mo,&dy,&hr,&mt,&sc); status=IQFseek(fp,yr,mo,dy,hr,mt,sc,NULL,inx); if (status ==-1) { fprintf(stderr,"File does not contain the requested interval.\n"); exit(-1); } if (IQFread(fp,prm,iq,&badtr,&samples)==-1) { fprintf(stderr,"Error reading file\n"); exit(-1); } } else stime=atime; if (etime !=-1) { if (edate==-1) etime+=atime - ( (int) atime % (24*3600)); else etime+=edate; } if (extime !=0) etime=stime+extime; do { fprintf(stderr,"%s\n",prm->origin.time); fprintf(stderr,"%s\n",prm->origin.command); fprintf(stderr,"%s\n",prm->combf); fprintf(stderr,"%d:",prm->mppul); for (n=0;n<prm->mppul;n++) fprintf(stderr,"%d ",prm->pulse[n]); fprintf(stderr,"\n"); fprintf(stderr,"%d\n",prm->mplgs); for (n=0;n<=prm->mplgs;n++) fprintf(stderr,"%d,%d ", prm->lag[0][n],prm->lag[1][n]); fprintf(stderr,"\n"); IQFwrite(stdout,prm,iq,badtr,samples); atime=TimeYMDHMSToEpoch(prm->time.yr, prm->time.mo, prm->time.dy, prm->time.hr, prm->time.mt, prm->time.sc+prm->time.us/1.0e6); TimeEpochToYMDHMS(atime,&yr,&mo,&dy,&hr,&mt,&sc); if (vb==1) fprintf(stderr,"%d-%d-%d %d:%d:%d\n",yr,mo,dy,hr,mt,(int) sc); if ((etime !=-1) && (atime>=etime)) break; status=IQFread(fp,prm,iq,&badtr,&samples); } while (status !=-1); if (fp !=stdin) fclose(fp); return 0; }
void kdb5_list_mkeys(int argc, char *argv[]) { krb5_error_code retval; char *mkey_fullname = NULL, *output_str = NULL, enctype[BUFSIZ]; krb5_kvno act_kvno; krb5_timestamp act_time; krb5_actkvno_node *actkvno_list = NULL, *cur_actkvno; krb5_db_entry *master_entry; krb5_keylist_node *cur_kb_node; krb5_keyblock *act_mkey; krb5_keylist_node *master_keylist = krb5_db_mkey_list_alias(util_context); if (master_keylist == NULL) { com_err(progname, 0, _("master keylist not initialized")); exit_status++; return; } /* assemble & parse the master key name */ if ((retval = krb5_db_setup_mkey_name(util_context, global_params.mkey_name, global_params.realm, &mkey_fullname, &master_princ))) { com_err(progname, retval, _("while setting up master key name")); exit_status++; return; } retval = krb5_db_get_principal(util_context, master_princ, 0, &master_entry); if (retval != 0) { com_err(progname, retval, _("while getting master key principal %s"), mkey_fullname); exit_status++; goto cleanup_return; } retval = krb5_dbe_lookup_actkvno(util_context, master_entry, &actkvno_list); if (retval != 0) { com_err(progname, retval, _("while looking up active kvno list")); exit_status++; goto cleanup_return; } if (actkvno_list == NULL) { act_kvno = master_entry->key_data[0].key_data_kvno; } else { retval = krb5_dbe_find_act_mkey(util_context, actkvno_list, &act_kvno, &act_mkey); if (retval == KRB5_KDB_NOACTMASTERKEY) { /* Maybe we went through a time warp, and the only keys with activation dates have them set in the future? */ com_err(progname, retval, ""); /* Keep going. */ act_kvno = -1; } else if (retval != 0) { com_err(progname, retval, _("while looking up active master key")); exit_status++; goto cleanup_return; } } printf("Master keys for Principal: %s\n", mkey_fullname); for (cur_kb_node = master_keylist; cur_kb_node != NULL; cur_kb_node = cur_kb_node->next) { if ((retval = krb5_enctype_to_name(cur_kb_node->keyblock.enctype, FALSE, enctype, sizeof(enctype)))) { com_err(progname, retval, _("while getting enctype description")); exit_status++; goto cleanup_return; } if (actkvno_list != NULL) { act_time = -1; /* assume actkvno entry not found */ for (cur_actkvno = actkvno_list; cur_actkvno != NULL; cur_actkvno = cur_actkvno->next) { if (cur_actkvno->act_kvno == cur_kb_node->kvno) { act_time = cur_actkvno->act_time; break; } } } else { /* * mkey princ doesn't have an active knvo list so assume the current * key is active now */ if ((retval = krb5_timeofday(util_context, &act_time))) { com_err(progname, retval, _("while getting current time")); exit_status++; goto cleanup_return; } } if (cur_kb_node->kvno == act_kvno) { /* * indicates kvno is currently active */ retval = asprintf(&output_str, _("KVNO: %d, Enctype: %s, Active on: %s *\n"), cur_kb_node->kvno, enctype, strdate(act_time)); } else { if (act_time != -1) { retval = asprintf(&output_str, _("KVNO: %d, Enctype: %s, Active on: %s\n"), cur_kb_node->kvno, enctype, strdate(act_time)); } else { retval = asprintf(&output_str, _("KVNO: %d, Enctype: %s, No activate time " "set\n"), cur_kb_node->kvno, enctype); } } if (retval == -1) { com_err(progname, ENOMEM, _("asprintf could not allocate enough " "memory to hold output")); exit_status++; goto cleanup_return; } printf("%s", output_str); free(output_str); output_str = NULL; } cleanup_return: /* clean up */ (void) krb5_db_fini(util_context); krb5_free_unparsed_name(util_context, mkey_fullname); free(output_str); krb5_free_principal(util_context, master_princ); krb5_dbe_free_actkvno_list(util_context, actkvno_list); return; }
int main(int argc,char *argv[]) { int arg=0,farg; int yr,mo,dy,hr,mt,isc,usc; double sc; int st=0; FILE *fp; char *envstr; char *tmetxt=NULL,*dtetxt=NULL; double tval=0,dval=0; char *nlab[2]= {"","name:"}; char *slab[2]= {"","status:"}; char *olab[2]= {"","operator:"}; char *clab[2]= {"","code:"}; char *ilab[2]= {"","id:"}; char *hlab[2]= {"","location:"}; char *plab[2]= {"","pole:"}; unsigned char nflg=0; unsigned char sflg=0; unsigned char oflg=0; unsigned char cflg=0; unsigned char iflg=0; unsigned char hflg=0; unsigned char pflg=0; unsigned char lflg=0; unsigned char aflg=0; unsigned char stflg=0; unsigned char edflg=0; unsigned char vb=0; unsigned char help=0; unsigned char option=0; int status,c; char *tmp=NULL; char ststr[1024]; int stid[256]; int stcnt=0; char *nldstr="\n"; char *tdstr="\t"; char *dstr=NULL; OptionAdd(&opt,"-help",'x',&help); OptionAdd(&opt,"-option",'x',&option); OptionAdd(&opt,"vb",'x',&vb); OptionAdd(&opt,"n",'x',&nflg); OptionAdd(&opt,"s",'x',&sflg); OptionAdd(&opt,"o",'x',&oflg); OptionAdd(&opt,"c",'x',&cflg); OptionAdd(&opt,"i",'x',&iflg); OptionAdd(&opt,"h",'x',&hflg); OptionAdd(&opt,"p",'x',&pflg); OptionAdd(&opt,"st",'x',&stflg); OptionAdd(&opt,"ed",'x',&edflg); OptionAdd(&opt,"l",'x',&lflg); OptionAdd(&opt,"a",'x',&aflg); OptionAdd(&opt,"t",'t',&tmetxt); OptionAdd(&opt,"d",'t',&dtetxt); OptionAdd(&opt,"delim",'t',&dstr); farg=OptionProcess(1,argc,argv,&opt,NULL); if (help==1) { OptionPrintInfo(stdout,hlpstr); exit(0); } if (option==1) { OptionDump(stdout,&opt); exit(0); } if (arg==argc) { OptionPrintInfo(stdout,errstr); exit(-1); } if (tmetxt !=NULL) tval=strtime(tmetxt); if (dtetxt !=NULL) dval=strdate(dtetxt); tval+=dval; if (tval !=0) TimeEpochToYMDHMS(tval,&yr,&mo,&dy,&hr,&mt,&sc); else { TimeReadClock(&yr,&mo,&dy,&hr,&mt,&isc,&usc); sc=isc; tval=TimeYMDHMSToEpoch(yr,mo,dy,hr,mt,sc); } if (dstr==NULL) { if (lflg) dstr=tdstr; else dstr=nldstr; } envstr=getenv("SD_RADAR"); if (envstr==NULL) { fprintf(stderr,"Environment variable 'SD_RADAR' must be defined.\n"); exit(-1); } fp=fopen(envstr,"r"); if (fp==NULL) { fprintf(stderr,"Could not locate radar information file.\n"); exit(-1); } network=RadarLoad(fp); fclose(fp); if (network==NULL) { fprintf(stderr,"Failed to read radar information.\n"); exit(-1); } envstr=getenv("SD_HDWPATH"); if (envstr==NULL) { fprintf(stderr,"Environment variable 'SD_HDWPATH' must be defined.\n"); exit(-1); } RadarLoadHardware(envstr,network); for (arg=farg; arg<argc; arg++) { strcpy(ststr,argv[arg]); tmp=strtok(ststr,","); do { if (isdigit(tmp[0])) stid[stcnt]=atoi(tmp); else stid[stcnt]=RadarGetID(network,tmp); if (stid[stcnt] !=-1) stcnt++; } while ((tmp=strtok(NULL,",")) !=NULL); } if (stcnt==0) { stcnt=network->rnum; for (st=0; st<stcnt; st++) stid[st]=network->radar[st].id; } for (st=0; st<stcnt; st++) { status=RadarGetStatus(network,stid[st]); /* if ((aflg) && (status !=1)) continue; */ radar=RadarGetRadar(network,stid[st]); if (radar==NULL) continue; if (aflg) { if (radar->st_time==-1) continue; if (tval<radar->st_time) continue; if ((radar->ed_time !=-1) && (tval>radar->ed_time)) continue; } if (iflg==1) fprintf(stdout,"%s%d%s",ilab[vb],stid[st],dstr); if (cflg==1) { fprintf(stdout,"%s",clab[vb]); for (c=0; (c<RadarGetCodeNum(network,stid[st])); c++) if (c !=0) fprintf(stdout,",%s",RadarGetCode(network,stid[st],c)); else fprintf(stdout,"%s",RadarGetCode(network,stid[st],c)); fprintf(stdout,"%s",dstr); } if (nflg==1) fprintf(stdout,"%s\"%s\"%s",nlab[vb],RadarGetName(network,stid[st]), dstr); if (sflg==1) { fprintf(stdout,"%s",slab[vb]); if (status==1) fprintf(stdout,"active"); else if (status==0) fprintf(stdout,"under construction"); else if (status==-1) fprintf(stdout,"defunct"); fprintf(stdout,"%s",dstr); } if (oflg==1) fprintf(stdout,"%s\"%s\"%s",olab[vb], RadarGetOperator(network,stid[st]),dstr); if (stflg) { if (radar->st_time !=-1) { TimeEpochToYMDHMS(radar->st_time,&yr,&mo,&dy,&hr,&mt,&sc); fprintf(stdout,"%.4d%.2d%.2d%s",yr,mo,dy,dstr); } else fprintf(stdout,"-%s",dstr); } if (edflg) { if (radar->ed_time !=-1) { TimeEpochToYMDHMS(radar->ed_time,&yr,&mo,&dy,&hr,&mt,&sc); fprintf(stdout,"%.4d%.2d%.2d%s",yr,mo,dy,dstr); } else fprintf(stdout,"-%s",dstr); } TimeEpochToYMDHMS(tval,&yr,&mo,&dy,&hr,&mt,&sc); site=RadarYMDHMSGetSite(RadarGetRadar(network,stid[st]), yr,mo,dy,hr,mt,(int) sc); if (hflg) { if (site !=NULL) fprintf(stdout,"%s%g,%g,%g,%g%s",hlab[vb], site->geolat,site->geolon, site->alt, site->boresite,dstr); else fprintf(stdout,"unknown%s",dstr); } if (pflg) { if (site !=NULL) { if (site->geolat>0) fprintf(stdout,"%snorth",plab[vb]); else fprintf(stdout,"%ssouth",plab[vb]); } else if (radar->site !=NULL) { if (radar->site[0].geolat>0) fprintf(stdout,"%snorth",plab[vb]); else fprintf(stdout,"%ssouth",plab[vb]); } else fprintf(stdout,"unknown"); fprintf(stdout,"%s",dstr); } if (lflg) fprintf(stdout,"\n"); } return 0; }
void kdb5_list_mkeys(int argc, char *argv[]) { krb5_error_code retval; char *output_str = NULL, enctype[BUFSIZ]; krb5_kvno act_kvno; krb5_timestamp act_time; krb5_actkvno_node *actkvno_list = NULL, *cur_actkvno; krb5_db_entry *master_entry = NULL; krb5_keylist_node *cur_kb_node; krb5_keyblock *act_mkey; krb5_keylist_node *master_keylist = krb5_db_mkey_list_alias(util_context); if (master_keylist == NULL) { com_err(progname, 0, _("master keylist not initialized")); exit_status++; return; } retval = krb5_db_get_principal(util_context, master_princ, 0, &master_entry); if (retval != 0) { com_err(progname, retval, _("while getting master key principal %s"), mkey_fullname); exit_status++; goto cleanup_return; } retval = krb5_dbe_lookup_actkvno(util_context, master_entry, &actkvno_list); if (retval != 0) { com_err(progname, retval, _("while looking up active kvno list")); exit_status++; goto cleanup_return; } retval = krb5_dbe_find_act_mkey(util_context, actkvno_list, &act_kvno, &act_mkey); if (retval != 0) { com_err(progname, retval, _("while looking up active master key")); exit_status++; goto cleanup_return; } printf("Master keys for Principal: %s\n", mkey_fullname); for (cur_kb_node = master_keylist; cur_kb_node != NULL; cur_kb_node = cur_kb_node->next) { if ((retval = krb5_enctype_to_name(cur_kb_node->keyblock.enctype, FALSE, enctype, sizeof(enctype)))) { com_err(progname, retval, _("while getting enctype description")); exit_status++; goto cleanup_return; } act_time = -1; /* assume actkvno entry not found */ for (cur_actkvno = actkvno_list; cur_actkvno != NULL; cur_actkvno = cur_actkvno->next) { if (cur_actkvno->act_kvno == cur_kb_node->kvno) { act_time = cur_actkvno->act_time; break; } } if (cur_kb_node->kvno == act_kvno) { /* * indicates kvno is currently active */ retval = asprintf(&output_str, _("KVNO: %d, Enctype: %s, Active on: %s *\n"), cur_kb_node->kvno, enctype, strdate(act_time)); } else { if (act_time != -1) { retval = asprintf(&output_str, _("KVNO: %d, Enctype: %s, Active on: %s\n"), cur_kb_node->kvno, enctype, strdate(act_time)); } else { retval = asprintf(&output_str, _("KVNO: %d, Enctype: %s, No activate time " "set\n"), cur_kb_node->kvno, enctype); } } if (retval == -1) { com_err(progname, ENOMEM, _("asprintf could not allocate enough " "memory to hold output")); exit_status++; goto cleanup_return; } printf("%s", output_str); free(output_str); output_str = NULL; } cleanup_return: /* clean up */ krb5_db_free_principal(util_context, master_entry); free(output_str); krb5_dbe_free_actkvno_list(util_context, actkvno_list); return; }
int main(int argc,char *argv[]) { int s=0; int arg; char *cfname=NULL; FILE *fp; int wdt=540,hgt=540; unsigned char help=0; unsigned char option=0; MapTransform tfunc; unsigned char flip=0; unsigned char gvp=0; unsigned char ortho=0; unsigned char stereo=0; unsigned char cylind=0; float lat=90,lon=0; float latmin=50.0; float sf=1.0; unsigned char sqflg=0; unsigned char magflg=0; unsigned char rotflg=0; unsigned char lstflg=0; unsigned char smflg=0; float marg[4]; int x,y; float e; char *tmetxt=NULL; char *dtetxt=NULL; double tval=-1; double dval=-1; int yr,mo,dy,hr,mt; double sc; int yrsec; float tme_shft; float glat,glon; float fx,fy; int px,py; float ka=0.8; float kd=0.3; float ks=0.4; float sn=4; double LsoT,LT,Hangle,dec,eqt,mlon; float minlat,minlon,maxlat,maxlon; float Lvec[3]={-1.0,0.0,0.5}; /* lighting vector */ OptionAdd(&opt,"-help",'x',&help); OptionAdd(&opt,"-option",'x',&option); OptionAdd(&opt,"cf",'t',&cfname); OptionAdd(&opt,"wdt",'i',&wdt); OptionAdd(&opt,"hgt",'i',&hgt); OptionAdd(&opt,"square",'x',&sqflg); OptionAdd(&opt,"ortho",'x',&ortho); OptionAdd(&opt,"stereo",'x',&stereo); OptionAdd(&opt,"gvp",'x',&gvp); OptionAdd(&opt,"lat",'f',&lat); OptionAdd(&opt,"lon",'f',&lon); OptionAdd(&opt,"latmin",'f',&latmin); OptionAdd(&opt,"sf",'f',&sf); OptionAdd(&opt,"mag",'x',&magflg); OptionAdd(&opt,"rotate",'x',&rotflg); OptionAdd(&opt,"flip",'x',&flip); OptionAdd(&opt,"lst",'x',&lstflg); OptionAdd(&opt,"t",'t',&tmetxt); OptionAdd(&opt,"d",'t',&dtetxt); OptionAdd(&opt,"smooth",'x',&smflg); OptionAdd(&opt,"ka",'f',&ka); OptionAdd(&opt,"kd",'f',&kd); OptionAdd(&opt,"ks",'f',&ks); OptionAdd(&opt,"n",'f',&sn); arg=OptionProcess(1,argc,argv,&opt,NULL); if (cfname !=NULL) { /* load the configuration file */ int farg; do { fp=fopen(cfname,"r"); if (fp==NULL) break; free(cfname); cfname=NULL; optf=OptionProcessFile(fp); if (optf !=NULL) { farg=OptionProcess(0,optf->argc,optf->argv,&opt,NULL); OptionFreeFile(optf); } fclose(fp); } while (cfname !=NULL); } if (help==1) { OptionPrintInfo(stdout,hlpstr); exit(0); } if (option==1) { OptionDump(stdout,&opt); exit(0); } if (argc==arg) { OptionPrintInfo(stderr,errstr); exit(-1); } fp=fopen(argv[arg],"r"); if (fp==NULL) { fprintf(stderr,"File not found.\n"); exit(-1); } s=ElevationLoad(fp,&eldata); fclose(fp); if (s !=0) { fprintf(stderr,"Error loading elevation data.\n"); exit(-1); } if (tmetxt !=NULL) tval=strtime(tmetxt); if (dtetxt !=NULL) { dval=strdate(dtetxt); tval+=dval; } TimeEpochToYMDHMS(tval,&yr,&mo,&dy,&hr,&mt,&sc); yrsec=TimeYMDHMSToYrsec(yr,mo,dy,hr,mt,sc); if ((ortho==0) && (stereo==0) && (gvp==0)) cylind=1; if ((lat<0) && (latmin>0)) latmin=-latmin; if ((lat>0) && (latmin<0)) latmin=-latmin; tfunc=MapCylindrical; if (ortho) tfunc=MapOrthographic; if (stereo) tfunc=MapStereographic; if (gvp) tfunc=MapGeneralVerticalPerspective; marg[0]=lat; marg[1]=lon; if ((ortho) || (gvp)) marg[2]=sf; else if (stereo) marg[2]=1.25*0.5*sf*90.0/(90-fabs(latmin)); else marg[2]=1; marg[3]=flip; SZASolarLoc(yr,yrsec,&mlon,&dec); eqt=SZAEqOfTime(mlon,yr); if (magflg) tme_shft=-AACGMConvertMLT(yr,yrsec,0.0)*15.0; else { if (lstflg) { LsoT=(hr*3600+mt*60+sc)+eqt; Hangle=15*(LsoT/3600); tme_shft=-Hangle; } else { LT=(hr*3600+mt*60+sc); Hangle=15*(LT/3600); tme_shft=-Hangle; } } if (rotflg) marg[1]=lon+tme_shft; if ((wdt==0) || (hgt==0)) { fprintf(stderr,"invalid plot size.\n"); exit(-1); } if (cylind) { marg[1]=0; marg[2]=0; } GeoMap(wdt,hgt,tfunc,marg,&ilat,&ilon); zbuf=malloc(sizeof(float)*wdt*hgt); minlat=eldata.lat+eldata.latsec/3600.0; minlon=eldata.lon+eldata.lonsec/3600.0; maxlat=minlat+eldata.numlat*eldata.latstp/36000.0; maxlon=minlon+eldata.numlon*eldata.lonstp/36000.0; if ((cylind) || (sqflg)) fbclp=NULL; else fbclp=fbclip(wdt,hgt); for (x=0;x<wdt;x++) { for (y=0;y<hgt;y++) { zbuf[y*wdt+x]=-1e6; if ((fbclp !=NULL) && (fbclp->clp[y*wdt+x]==0)) continue; if ((ilat[y*wdt+x]<-90.0) || (ilat[y*wdt+x]>90)) continue; glat=ilat[y*wdt+x]; glon=ilon[y*wdt+x]; if (magflg) { double mlat,mlon,rho; s=AACGMConvert(glat,glon,300.0,&mlat,&mlon,&rho,1); glat=mlat; glon=mlon; } if (cylind) { if (rotflg) glon+=lon+tme_shft; else glon+=lon; } if (glon>180) glon-=360; if (glat<minlat) continue; if (glon<minlon) continue; if (glat>=maxlat) continue; if (glon>=maxlon) continue; fy=(glat-minlat)/(maxlat-minlat); fx=(glon-minlon)/(maxlon-minlon); px=eldata.numlon*fx; py=eldata.numlat*fy; if (smflg) { float l,r,b,t; l=eldata.data[px*eldata.numlat+py]; if (px<eldata.numlon-1) r=eldata.data[(px+1)*eldata.numlat+py]; else r=l; b=l+(r-l)*(eldata.numlon*fx-px); if (py<eldata.numlat-1) { l=eldata.data[px*eldata.numlat+py+1]; if (px<eldata.numlon-1) r=eldata.data[(px+1)*eldata.numlat+py+1]; else r=l; t=l+(r-l)*(eldata.numlon*fx-px); } else t=b; e=b+(t-b)*(eldata.numlat*fy-py); } else e=eldata.data[px*eldata.numlat+py]; zbuf[y*wdt+x]=e; } } PhongModel(wdt,hgt,0,zbuf,Lvec,kd,ks,sn,&dbuf,&sbuf); ConvertFwriteInt(stdout,wdt); ConvertFwriteInt(stdout,hgt); for (y=0;y<hgt;y++) { for (x=0;x<wdt;x++) { ConvertFwriteFloat(stdout,zbuf[y*wdt+x]); } } for (y=0;y<hgt;y++) { for (x=0;x<wdt;x++) { ConvertFwriteFloat(stdout,ka+dbuf[y*wdt+x]); } } for (y=0;y<hgt;y++) { for (x=0;x<wdt;x++) { ConvertFwriteFloat(stdout,sbuf[y*wdt+x]); } } return 0; }
int main (int argc,char *argv[]) { int arg; int status=0; struct CFitfp *cfitfp; gzFile gzfp=0; int yr,mo,dy,hr,mt; double sc; double atime; char *stmestr=NULL; char *etmestr=NULL; char *sdtestr=NULL; char *edtestr=NULL; char *exstr=NULL; double stime=-1; double etime=-1; double extime=0; double sdate=-1; double edate=-1; unsigned char vb=0; unsigned char help=0; unsigned char option=0; unsigned char set_channel=0; char *chnstr=NULL; char *cpstr=NULL; cfit=CFitMake(); OptionAdd(&opt,"-help",'x',&help); OptionAdd(&opt,"-option",'x',&option); OptionAdd(&opt,"vb",'x',&vb); OptionAdd(&opt,"st",'t',&stmestr); OptionAdd(&opt,"et",'t',&etmestr); OptionAdd(&opt,"sd",'t',&sdtestr); OptionAdd(&opt,"ed",'t',&edtestr); OptionAdd(&opt,"ex",'t',&exstr); OptionAdd(&opt,"cp",'t',&cpstr); OptionAdd(&opt,"cn",'t',&chnstr); OptionAdd(&opt,"sc",'x',&set_channel); arg=OptionProcess(1,argc,argv,&opt,NULL); if (help==1) { OptionPrintInfo(stdout,hlpstr); exit(0); } if (option==1) { OptionDump(stdout,&opt); exit(0); } if (argc-arg<1) { OptionPrintInfo(stderr,errstr); exit(1); } if (exstr !=NULL) extime=strtime(exstr); if (stmestr !=NULL) stime=strtime(stmestr); if (etmestr !=NULL) etime=strtime(etmestr); if (sdtestr !=NULL) sdate=strdate(sdtestr); if (edtestr !=NULL) edate=strdate(edtestr); if (cpstr !=NULL) cpid=atoi(cpstr); if (chnstr !=NULL) { if (tolower(chnstr[0])=='a') channel=1; if (tolower(chnstr[0])=='b') channel=2; } cfitfp=CFitOpen(argv[arg]); if (cfitfp==NULL) { fprintf(stderr,"File not found.\n"); exit(-1); } if (CFitRead(cfitfp,cfit)==-1) { fprintf(stderr,"Error reading file\n"); exit(-1); } atime=cfit->time; gzfp=gzdopen(fileno(stdout),"w"); /* skip here */ if ((stime !=-1) || (sdate !=-1)) { int yr,mo,dy,hr,mt; double sc; if (stime==-1) stime= ( (int) atime % (24*3600)); if (sdate==-1) stime+=atime - ( (int) atime % (24*3600)); else stime+=sdate; TimeEpochToYMDHMS(stime,&yr,&mo,&dy,&hr,&mt,&sc); status=CFitSeek(cfitfp,yr,mo,dy,hr,mt,sc,NULL); if (status ==-1) { fprintf(stderr,"File does not contain the requested interval.\n"); exit(-1); } if (CFitRead(cfitfp,cfit)==-1) { fprintf(stderr,"Error reading file\n"); exit(-1); } } else stime=atime; if (etime !=-1) { if (edate==-1) etime+=atime - ( (int) atime % (24*3600)); else etime+=edate; } if (extime !=0) etime=stime+extime; do { if ((etime !=-1) && (atime>=etime)) break; if ((cpid !=-1) && (cfit->cp !=cpid)) continue; if ((set_channel==0) && (channel !=-1) && (cfit->channel !=channel)) continue; if (set_channel==1) cfit->channel=channel; status=CFitWrite(gzfp,cfit); atime=cfit->time; TimeEpochToYMDHMS(atime,&yr,&mo,&dy,&hr,&mt,&sc); if (vb==1) fprintf(stderr,"%d-%d-%d %d:%d:%d %.2d %.2d %.4d\n", yr,mo,dy,hr,mt, (int) sc,cfit->channel, cfit->bmnum,cfit->cp); } while (CFitRead(cfitfp,cfit) !=-1); gzclose(gzfp); CFitClose(cfitfp); return 0; }
int main(int argc,char *argv[]) { int arg; FILE *fp=NULL; unsigned char day=0; int status=0; int yr,mo,dy,hr,mt; double sc; double etime; double dtval=-1; int i,c; char *dtstr=NULL; char *cstr=NULL; char *vstr=NULL; unsigned char help=0; unsigned char option=0; OptionAdd(&opt,"-help",'x',&help); OptionAdd(&opt,"-option",'x',&option); OptionAdd(&opt,"d",'x',&day); OptionAdd(&opt,"sd",'t',&dtstr); OptionAdd(&opt,"c",'t',&cstr); arg=OptionProcess(1,argc,argv,&opt,NULL); if (help==1) { OptionPrintInfo(stdout,hlpstr); exit(0); } if (option==1) { OptionDump(stdout,&opt); exit(0); } if (cstr !=NULL) { char *tmp; tmp=strtok(cstr,","); do { c=atoi(tmp); if (c<2) continue; cflg[c-2]=1; } while ((tmp=strtok(NULL,",")) !=NULL); } fprintf(stderr,"%s\n",dtstr); if (dtstr !=NULL) dtval=strdate(dtstr); if (arg<argc) { fp=fopen(argv[arg],"r"); if (fp==NULL) { fprintf(stderr,"File not found.\n"); exit(-1); } } else fp=stdin; while ((fscanf(fp,"%lg",&etime)==1) && (status==0)) { if (day==1) { hr=(int) etime/3600; mt=( (int) etime/60) % 60; sc=( (int) etime % 60); if (dtval !=-1) { etime+=dtval; TimeEpochToYMDHMS(etime,&yr,&mo,&dy,&hr,&mt,&sc); } } else TimeEpochToYMDHMS(etime,&yr,&mo,&dy,&hr,&mt,&sc); if ((day==0) || (dtval !=-1)) fprintf(stdout,"%.4d %.2d %.2d %.2d %.2d %.2d", yr,mo,dy,hr,mt,(int) sc); else fprintf(stdout,"%.2d %.2d %.2d",hr,mt,(int) sc); if (fgets(buffer,256,fp)==NULL) { status=-1; break; } /* okay now print out just the columns asked for */ vstr=strtok(buffer," \t\n"); i=0; do { if (cflg[i]==1) fprintf(stdout," %s",vstr); i++; } while ((vstr=strtok(NULL," \t\n")) !=NULL); fprintf(stdout,"\n"); } return 0; }