static void get_display( char *disp) { char display[80] = ""; char name[80]; pwr_tStatus sts; char *val = getenv("DISPLAY"); if ( val) strcpy( display, val); if ( strcmp( display, "") == 0) { syi_NodeName( &sts, name, sizeof(name)); strcpy( display, name); strcat( display, ":0"); } else if ( display[0] == ':') { char tmp[80]; syi_NodeName( &sts, name, sizeof(name)); strcpy( tmp, display); strcpy( display, name); strcat( display, tmp); } else if ( display[0] == '0' && display[1] == ':') { char tmp[80]; syi_NodeName( &sts, name, sizeof(name)); strcpy( tmp, display); strcpy( display, name); strcat( display, &tmp[1]); } strcpy( disp, display); }
rt_post::rt_post() : scan_time(1), conf(0), udb(0), sent_sms_startidx(0), sent_sms_endidx(0), sent_email_startidx(0), sent_email_endidx(0) { pwr_tStatus sts; strcpy( systemgroup, ""); syi_NodeName( &sts, nodename, sizeof(nodename)); }
char * syi_HostName ( pwr_tStatus *status, char *ibuffer, int isize ) { return syi_NodeName(status, ibuffer, isize); }
void RtMon::activate_stop() { char nodename[40]; char text[80] = "Do you want to stop Runtime Environment on "; pwr_tStatus sts; syi_NodeName( &sts, nodename, sizeof(nodename)); strcat( text, nodename); wow->DisplayQuestion( this, "Stop Runtime", text, stop_ok_cb, 0, 0); }
char *wb_dbms_env::host(void) { char nodename[80]; pwr_tStatus sts; static char host[80]; syi_NodeName( &sts, nodename, sizeof(nodename)); if ( ODD(sts) && cdh_NoCaseStrcmp( nodename, m_host) == 0) strcpy( host, "localhost"); else strcpy( host, m_host); return host; }
int XttTbl::read_bootfile( char *systemname, char *systemgroup) { pwr_tFileName fname; char nodename[80]; int busid; FILE *fp; char buffer[256]; pwr_tStatus sts; char *s; syi_NodeName(&sts, nodename, sizeof(nodename)); s = getenv(pwr_dEnvBusId); if ( !s) return 0; busid = atoi(s); sprintf(fname, dbs_cNameBoot, "$pwrp_load/", nodename, busid); dcli_translate_filename( fname, fname); fp = fopen( fname, "r"); if ( !fp) return 0; s = fgets( buffer, sizeof(buffer) - 1, fp); if ( !s) return 0; s = fgets( buffer, sizeof(buffer) - 1, fp); if ( !s) return 0; if ( systemname) { if ( buffer[strlen(buffer)-1] == '\n') buffer[strlen(buffer)-1] = 0; strcpy( systemname, buffer); } s = fgets( buffer, sizeof(buffer) - 1, fp); if ( !s) return 0; if ( systemgroup) { if ( buffer[strlen(buffer)-1] == '\n') buffer[strlen(buffer)-1] = 0; strcpy( systemgroup, buffer); } fclose(fp); return 1; }
RtMon::RtMon( void *rtmon_parent_ctx, const char *rtmon_name, const char *rtmon_display, pwr_tStatus *status) : parent_ctx(rtmon_parent_ctx), nodelistnav(NULL), rtmon_displayed(0), help_cb(0), close_cb(0) { pwr_tStatus sts; if ( rtmon_display) strcpy( display, rtmon_display); else strcpy( display, ""); syi_NodeName( &sts, nodename, sizeof(nodename)); *status = 1; }
void CLogNav::get_files() { char nodename[40]; pwr_tStatus sts; char file_spec[200]; char found_file[200]; pwr_tTime time = {0,0}; struct stat info; syi_NodeName( &sts, nodename, sizeof(nodename)); sprintf( file_spec, "$pwrp_log/pwr_%s.log", nodename); sts = dcli_search_file( file_spec, found_file, DCLI_DIR_SEARCH_INIT); if ( ODD(sts)) { stat( found_file, &info); time.tv_sec = info.st_ctime; CLogFile *cf = new CLogFile( found_file, time); file_list.push_back( *cf); delete cf; } else { CLogFile *cf = new CLogFile(); file_list.push_back( *cf); delete cf; } dcli_search_file( file_spec, found_file, DCLI_DIR_SEARCH_END); for ( int i = 1; i < 21; i++) { sprintf( file_spec, "$pwrp_log/pwr_%s.log.%d.gz", nodename, i); sts = dcli_search_file( file_spec, found_file, DCLI_DIR_SEARCH_INIT); if ( ODD(sts)) { stat( found_file, &info); time.tv_sec = info.st_ctime; CLogFile *cf = new CLogFile( found_file, time); file_list.push_back( *cf); delete cf; } dcli_search_file( file_spec, found_file, DCLI_DIR_SEARCH_END); } }
int sev_db::get_systemname(char* name) { FILE* file; pwr_tFileName fname; char nodename[40]; char* bus_str; int bus; char line[200]; pwr_tStatus sts; static char system_name[80] = ""; if (streq(system_name, "")) { syi_NodeName(&sts, nodename, sizeof(nodename)); if (EVEN(sts)) return 0; bus_str = getenv("PWR_BUS_ID"); if (!bus_str) return 0; if (sscanf(bus_str, "%d", &bus) != 1) return 0; sprintf(fname, pwr_cNameBoot, load_cDirectory, cdh_Low(nodename), bus); dcli_translate_filename(fname, fname); file = fopen(fname, "r"); if (file == 0) { printf("In %s row %d:\n", __FILE__, __LINE__); printf("** Warning, systemname not found\n"); return 0; } if (!dcli_read_line(line, sizeof(line), file)) return 0; if (!dcli_read_line(line, sizeof(line), file)) return 0; strcpy(system_name, line); } strcpy(name, system_name); return 1; }
char *ini_LoadDirectory ( pwr_tStatus *status, ini_sContext *cp ) { pwr_dStatus(sts, status, INI__SUCCESS); if (!cp->flags.b.nodename) syi_NodeName(sts, cp->nodename, sizeof(cp->nodename)); if (!cp->flags.b.hostname) syi_HostName(sts, cp->hostname, sizeof(cp->hostname)); syi_NodeSpec(sts, cp->nodespec, sizeof(cp->nodespec)); syi_HostSpec(sts, cp->hostspec, sizeof(cp->hostspec)); syi_BootDisk(sts, cp->bootdisk, sizeof(cp->bootdisk)); { char *s; if ((s = getenv(dbs_cNameBaseDirectory)) != NULL) sprintf(cp->bdir, "%s/", s); else errh_LogError(&cp->log, "Environment variable '%s' is not defined", dbs_cNameBaseDirectory); if ((s = getenv(dbs_cNameDirectory)) != NULL) sprintf(cp->dir, "%s/", s); else errh_LogError(&cp->log, "Environment variable '%s' is not defined", dbs_cNameDirectory); if (!cp->flags.b.busid) { s = getenv(pwr_dEnvBusId); if (s != NULL) cp->busid = atoi(s); } } return cp->dir; }
int Op::sup_init() { pwr_tOid node_oid; pwr_tOid sup_oid; pwr_tAName aname; pwr_tStatus sts; // Index 0 is current node sts = gdh_GetNodeObject( 0, &node_oid); if ( EVEN(sts)) return sts; OpSup sup; sup.node_oid = node_oid; sts = gdh_ObjidToName( node_oid, sup.object_name, sizeof(sup.object_name), cdh_mName_volumeStrict); if ( EVEN(sts)) return sts; strcpy( aname, sup.object_name); strcat( aname, ".SystemStatus"); sts = gdh_RefObjectInfo( aname, (void **)&sup.p, &sup.refid, sizeof(pwr_tStatus)); if ( EVEN(sts)) return sts; syi_NodeName( &sts, sup.node_name, sizeof(sup.node_name)); sup_vect.push_back(sup); // Add nodes in NodeLinkSup objects for ( sts = gdh_GetClassList( pwr_cClass_NodeLinkSup, &sup_oid); ODD(sts); sts = gdh_GetNextObject( sup_oid, &sup_oid)) { pwr_sClass_NodeLinkSup *sup_p; qcom_sNode qnode; pwr_tNid nid; sts = gdh_ObjidToPointer( sup_oid, (void **)&sup_p); OpSup nsup; nsup.node_oid = sup_p->Node; sts = gdh_ObjidToName( nsup.node_oid, nsup.object_name, sizeof(nsup.object_name), cdh_mName_volumeStrict); if ( EVEN(sts)) strcpy( nsup.object_name, ""); sts = gdh_ObjidToName( sup_oid, aname, sizeof(aname), cdh_mName_volumeStrict); if ( EVEN(sts)) return sts; strcat( aname, ".SystemStatus"); sts = gdh_RefObjectInfo( aname, (void **)&nsup.p, &sup.refid, sizeof(pwr_tStatus)); if ( EVEN(sts)) return sts; int found = 0; for (nid = qcom_cNNid; qcom_NextNode(&sts, &qnode, nid); nid = qnode.nid) { if ( qnode.nid == nsup.node_oid.vid) { strcpy( nsup.node_name, qnode.name); found = 1; break; } } if ( !found) strcpy( nsup.node_name, "Unknown"); sup_vect.push_back(nsup); } return 1; }
void wb_build::node( char *nodename, void *volumelist, int volumecnt) { lfu_t_volumelist *vlist = (lfu_t_volumelist *)volumelist; pwr_tTime vtime; pwr_tTime btime; pwr_tFileName fname; pwr_tObjName vname; int bussid = -1; int rebuild = 1; pwr_tStatus status; char currentnode[80]; char node[80]; pwr_tStatus sumsts; printf( "-- Build node %s\n", nodename); wb_log::push(); if ( !opt.manual) { // Check if there is any new dbsfile rebuild = 0; for ( int i = 0; i < volumecnt; i++) { if ( cdh_NoCaseStrcmp( nodename, vlist[i].p1) == 0) { if ( bussid == -1) { char systemname[80], systemgroup[80]; pwr_tVid *vl; pwr_tString40 *vnl; int vcnt; // Get time for current bootfile status = sscanf( vlist[i].p3, "%d", &bussid); if ( status != 1) { // Bussid error } sprintf( fname, load_cNameBoot, load_cDirectory, vlist[i].p2, bussid); cdh_ToLower( fname, fname); dcli_translate_filename( fname, fname); status = lfu_ReadBootFile( fname, &btime, systemname, systemgroup, &vl, &vnl, &vcnt, 0, 0); if ( EVEN(status)) { rebuild = 1; } strcpy( node, vlist[i].p2); } if ( vlist[i].volume_id == m_session.vid()) { // Build current volume volume(); if ( evenSts()) return; } cdh_ToLower( vname, vlist[i].volume_name); if ( vlist[i].volume_id >= cdh_cUserVolMin && vlist[i].volume_id <= cdh_cUserVolMax) { sprintf( fname, "$pwrp_load/%s.dbs", vname); dcli_translate_filename( fname, fname); m_sts = dcli_file_time( fname, &vtime); if ( evenSts()) { // Dbs file is missing char msg[200]; sprintf( msg, "Loadfile for volume %s not created", vname); MsgWindow::message('E', msg, msgw_ePop_Yes); return; } if ( vtime.tv_sec > btime.tv_sec) rebuild = 1; } } } } wb_log::pull(); if ( m_wnav && m_wnav->ldhses) { wb_erep *erep = *(wb_env *)ldh_SessionToWB( m_wnav->ldhses); erep->checkVolumes( &m_sts, nodename); if ( evenSts()) return; } if ( opt.force || opt.manual || rebuild) { m_sts = lfu_create_bootfile( nodename, (lfu_t_volumelist *)volumelist, volumecnt, opt.debug); if ( ODD(m_sts)) wb_log::log( wlog_eCategory_NodeBuild, nodename, 0); } else m_sts = PWRB__NOBUILT; sumsts = m_sts; syi_NodeName( &m_sts, currentnode, sizeof(currentnode)); // if ( cdh_NoCaseStrcmp( node, currentnode) == 0) { pwr_tFileName src_fname, dest_fname; pwr_tCmd cmd; pwr_tTime dest_time, src_time; // Copy xtt_help.dat from $pwrp_cnf to $pwrp_exe sprintf( src_fname, "$pwrp_cnf/%s/xtt_help.dat", node); dcli_translate_filename( src_fname, src_fname); m_sts = dcli_file_time( src_fname, &src_time); if ( evenSts()) { strcpy( src_fname, "$pwrp_cnf/xtt_help.dat"); dcli_translate_filename( src_fname, src_fname); m_sts = dcli_file_time( src_fname, &src_time); if ( evenSts()) { char msg[200]; sprintf( msg, "File is missing $pwrp_cnf/xtt_help.dat"); MsgWindow::message('E', msg, msgw_ePop_Yes); } } if ( oddSts()) { strcpy( dest_fname, "$pwrp_exe/xtt_help.dat"); dcli_translate_filename( dest_fname, dest_fname); m_sts = dcli_file_time( dest_fname, &dest_time); if ( opt.force || evenSts() || src_time.tv_sec > dest_time.tv_sec) { sprintf( cmd, "cp %s %s", src_fname, dest_fname); system( cmd); sprintf( cmd, "Build: Copy %s -> $pwrp_exe", src_fname); MsgWindow::message( 'I', cmd, msgw_ePop_No); m_sts = PWRB__SUCCESS; } else m_sts = PWRB__NOBUILT; } if ( sumsts == PWRB__NOBUILT && m_sts != PWRB__NOBUILT) sumsts = m_sts; // Copy pwrp_alias.dat from $pwrp_cnf to $pwrp_load sprintf( src_fname, "$pwrp_cnf/%s/pwrp_alias.dat", node); dcli_translate_filename( src_fname, src_fname); m_sts = dcli_file_time( src_fname, &src_time); if ( evenSts()) { strcpy( src_fname, "$pwrp_cnf/pwrp_alias.dat"); dcli_translate_filename( src_fname, src_fname); m_sts = dcli_file_time( src_fname, &src_time); } if ( oddSts()) { strcpy( dest_fname, "$pwrp_load/pwrp_alias.dat"); dcli_translate_filename( dest_fname, dest_fname); m_sts = dcli_file_time( dest_fname, &dest_time); if ( opt.force || evenSts() || src_time.tv_sec > dest_time.tv_sec) { sprintf( cmd, "cp %s %s", src_fname, dest_fname); system( cmd); sprintf( cmd, "Build: Copy %s -> $pwrp_load", src_fname); MsgWindow::message( 'I', cmd, msgw_ePop_No); m_sts = PWRB__SUCCESS; } else m_sts = PWRB__NOBUILT; } else m_sts = PWRB__NOBUILT; if ( sumsts == PWRB__NOBUILT && m_sts != PWRB__NOBUILT) sumsts = m_sts; // Copy ld_appl_...txt from $pwrp_cnf to $pwrp_load sprintf( src_fname, load_cNameAppl, "$pwrp_cnf", cdh_Low(node), bussid); dcli_translate_filename( src_fname, src_fname); m_sts = dcli_file_time( src_fname, &src_time); if ( evenSts()) { char dir[80]; strcpy( dir, "$pwrp_cnf/"); sprintf( src_fname, load_cNameAppl, dir, cdh_Low(node), bussid); dcli_translate_filename( src_fname, src_fname); m_sts = dcli_file_time( src_fname, &src_time); } if ( oddSts()) { sprintf( dest_fname, load_cNameAppl, "$pwrp_load/", cdh_Low(node), bussid); dcli_translate_filename( dest_fname, dest_fname); m_sts = dcli_file_time( dest_fname, &dest_time); if ( opt.force || evenSts() || src_time.tv_sec > dest_time.tv_sec) { sprintf( cmd, "cp %s %s", src_fname, dest_fname); system( cmd); sprintf( cmd, "Build: %s -> $pwrp_load", src_fname); MsgWindow::message( 'I', cmd, msgw_ePop_No); m_sts = PWRB__SUCCESS; } else m_sts = PWRB__NOBUILT; } else m_sts = PWRB__NOBUILT; if ( sumsts == PWRB__NOBUILT && m_sts != PWRB__NOBUILT) sumsts = m_sts; } if ( sumsts != PWRB__NOBUILT) { char msg[200]; sprintf( msg, "Build: Node %s", nodename); MsgWindow::message('I', msg, msgw_ePop_No); } m_sts = sumsts; }
XttMotif::XttMotif( int argc, char *argv[], int *return_sts) : Xtt( &argc, &argv, return_sts), cmd_current_recall(0), value_current_recall(0) { char uid_filename[120] = {"xtt.uid"}; char *uid_filename_p = uid_filename; Arg args[20]; pwr_tStatus sts; int i; XtAppContext app_ctx; MrmHierarchy s_DRMh; MrmType dclass; Widget xtt_widget; char title[120] = "Xtt "; char nodename[80]; static char translations[] = "<FocusIn>: xtt_inputfocus()\n"; static XtTranslations compiled_translations = NULL; static XtActionsRec actions[] = { {(char*) "xtt_inputfocus", (XtActionProc) action_inputfocus} }; static MrmRegisterArg reglist[] = { {(char*) "xtt_ctx", 0 }, {(char*) "xtt_activate_exit",(caddr_t)activate_exit }, {(char*) "xtt_activate_print",(caddr_t)activate_print }, {(char*) "xtt_activate_find",(caddr_t)activate_find }, {(char*) "xtt_activate_findregex",(caddr_t)activate_findregex }, {(char*) "xtt_activate_findnext",(caddr_t)activate_findnext }, {(char*) "xtt_activate_collapse",(caddr_t)activate_collapse }, {(char*) "xtt_activate_openobject",(caddr_t)activate_openobject }, {(char*) "xtt_activate_openplc",(caddr_t)activate_openplc }, {(char*) "xtt_activate_opengraph",(caddr_t)activate_opengraph }, {(char*) "xtt_activate_showcrossref",(caddr_t)activate_showcrossref }, {(char*) "xtt_activate_change_value",(caddr_t)activate_change_value }, {(char*) "xtt_activate_command",(caddr_t)activate_command }, {(char*) "xtt_activate_collect_insert",(caddr_t)activate_collect_insert }, {(char*) "xtt_activate_collect_show",(caddr_t)activate_collect_show }, {(char*) "xtt_activate_collect_remove",(caddr_t)activate_collect_remove }, {(char*) "xtt_activate_collect_clear",(caddr_t)activate_collect_clear }, {(char*) "xtt_activate_advanceduser",(caddr_t)activate_advanceduser }, {(char*) "xtt_activate_zoom_in",(caddr_t)activate_zoom_in }, {(char*) "xtt_activate_zoom_out",(caddr_t)activate_zoom_out }, {(char*) "xtt_activate_zoom_reset",(caddr_t)activate_zoom_reset }, {(char*) "xtt_activate_help",(caddr_t)activate_help }, {(char*) "xtt_activate_help_project",(caddr_t)activate_help_project }, {(char*) "xtt_activate_help_proview",(caddr_t)activate_help_proview }, {(char*) "xtt_create_msg_label",(caddr_t)create_msg_label }, {(char*) "xtt_create_cmd_prompt",(caddr_t)create_cmd_prompt }, {(char*) "xtt_create_cmd_input",(caddr_t)create_cmd_input }, {(char*) "xtt_create_xnav_form",(caddr_t)create_xnav_form }, {(char*) "xtt_activate_india_ok",(caddr_t)activate_india_ok }, {(char*) "xtt_activate_india_cancel",(caddr_t)activate_india_cancel }, {(char*) "xtt_create_india_label",(caddr_t)create_india_label }, {(char*) "xtt_create_india_text",(caddr_t)create_india_text } }; static int reglist_num = (sizeof reglist / sizeof reglist[0]); syi_NodeName( &sts, nodename, sizeof(nodename)); if ( ODD(sts)) strcat( title, nodename); // Motif Lng::get_uid( uid_filename, uid_filename); MrmInitialize(); toplevel = XtVaAppInitialize ( &app_ctx, "Rt_xtt", NULL, 0, &argc, argv, fbr, XtNallowShellResize, True, XtNtitle, title, XmNmappedWhenManaged, True, NULL); reglist[0].value = (caddr_t) this; if (compiled_translations == NULL) XtAppAddActions( XtWidgetToApplicationContext(toplevel), actions, XtNumber(actions)); // Save the context structure in the widget i = 0; XtSetArg( args[i], XmNuserData, (XtPointer) this);i++; sts = MrmOpenHierarchy( 1, &uid_filename_p, NULL, &s_DRMh); if (sts != MrmSUCCESS) printf("can't open %s\n", uid_filename); MrmRegisterNames(reglist, reglist_num); sts = MrmFetchWidgetOverride( s_DRMh, (char*) "xtt_window", toplevel, title, args, i, &xtt_widget, &dclass); if (sts != MrmSUCCESS) printf("can't fetch xtt_window\n"); sts = MrmFetchWidget(s_DRMh, (char*) "input_dialog", toplevel, &india_widget, &dclass); if (sts != MrmSUCCESS) printf("can't fetch input dialog\n"); MrmCloseHierarchy(s_DRMh); if (compiled_translations == NULL) compiled_translations = XtParseTranslationTable(translations); XtOverrideTranslations( xtt_widget, compiled_translations); i = 0; XtSetArg(args[i],XmNwidth,350);i++; XtSetArg(args[i],XmNheight,600);i++; XtSetArg(args[i], XmNdeleteResponse, XmDO_NOTHING);i++; XtSetValues( toplevel ,args,i); XtManageChild( xtt_widget); XtUnmanageChild( cmd_input); xnav = new XNavMotif( this, xnav_form, "Plant", &brow_widget, (xnav_sStartMenu *)root_menu, opplace_str, op_close_button, &sts); xnav->message_cb = &xtt_message_cb; xnav->close_cb = &close; xnav->map_cb = ↦ xnav->change_value_cb = &change_value; xnav->set_dimension_cb = &set_dimension; xnav->attach_audio = attach_audio; // Create help window CoXHelp *xhelp = new CoXHelpMotif( toplevel, this, xhelp_eUtility_Xtt, &sts); xhelp->open_URL_cb = open_URL_cb; CoXHelp::set_default( xhelp); XtRealizeWidget( toplevel); if ( !xnav->is_authorized( pwr_mAccess_AllRt, 0)) xnav->open_login(); wow = new CoWowMotif( toplevel); if ( !quiet) wow->DisplayWarranty(); // XmProcessTraversal( xnav->brow_widget, XmTRAVERSE_CURRENT); // xnav->set_inputfocus(); init_hotkey( app_ctx, toplevel); // Connect the window manager close-button to exit flow_AddCloseVMProtocolCb( toplevel, (XtCallbackProc)activate_exit, this); if ( xnav->op) close( this, 0); timerid = wow->timer_new(); // Start timer to check for qcom events timerid->add( 1000, qcom_events, this); xtt_mainloop( app_ctx); }