>Hi! > >Is there any way (environment variable, Ingres command etc...) to check from >inside an application if it is running on a client machine (ie. only >the Ingres name server and NET are running) or on a server machine? > >I need to know this because certain administrative operations are not allowed >from a client machine. > >Thank You >-- >Tommi.Joutsiniemi@prodax.fi Yes. Well, kinda. I do this by looking at the Ingres environment variable II_RUN. This can be accessed with the command ingres% ingprenv1 II_RUN On a server, it is usually defined as II_RUN=,DBMS,NET while on a client is is II_RUN=,NET Here is a C function you might find handy for reading Ingres environment variables within an application: ------------------------------------------------------------------------------- #define DB_INGPRENV1_STRING "$II_SYSTEM/ingres/bin/ingprenv1 " long db_getenv ( char *env_var, /* The environment value to translate */ char *buf, /* The buffer to translate into */ int buf_size /* The size of the buffer */ ) { FILE *pfp; /* Pipe file descriptor */ char *str; /* utility string pointer */ long ret_val=DB_FAIL; /* Return status, assume failure */ /* | Malloc a string big enough to | construct the ingprenv1 command. */ str=malloc(sizeof(DB_INGPRENV1_STRING)+strlen(env_var)+1); if (str!=NULL) { /* | Determine the value of the II_CONFIG symbol, | by piping in the output of the ingprenv1 command. */ sprintf(str, "%s%s", DB_INGPRENV1_STRING, env_var); pfp=popen(str, "r"); free(str); if (pfp!=NULL) { /* | Get the data returned from the ingprenv1 command. */ str=fgets(buf,buf_size-1,pfp); if(str!=NULL) { /* | Remove the newline, if necessary. */ str=strchr(buf, '\n'); if (str!=NULL) *str='\0'; /* | Close the command pipe and check the | commands exit status. */ if (pclose(pfp)==0) ret_val=DB_OKAY; else ret_val=DB_FAIL; } /* fgets ok */ } /* popen ok */ } /* malloc ok */ /* | Return the status. */ return(ret_val); } /* db_getenv() */ ------------------------------------------------------------------------------- As usual, all disclaimers apply. |--------------------------------------------------------------------------| | Michael Leo | The Ingres FAQ is at ftp.adc.com, /pub/ingres. | | York & Associates, Inc.| Also check out /pub/ingres/utilities/NAIUA for | | Minneapolis, MN, USA | the NAIUA Tool Kit. Lastly, access all this via| | (612) 921-8083 (voice) | WWW at http://www.adc.com/ingres/ing-top.html. | | mal@winternet.com | All constructive suggestions/criticism welcome. | |--------------------------------------------------------------------------|
© William Yuan 2000
Email William