Skip to content

Commit 44be138

Browse files
committed
Make default_envs global and check against that list in add envs
1 parent 2a82568 commit 44be138

File tree

4 files changed

+30
-3
lines changed

4 files changed

+30
-3
lines changed

client/castApp/src/caster.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,8 @@
2020
epicsShareExtern double reccastTimeout;
2121
epicsShareExtern double reccastMaxHoldoff;
2222

23+
extern const char* default_envs[];
24+
2325
typedef enum {
2426
casterUDPSetup,
2527
casterTCPSetup,

client/castApp/src/castinit.c

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -125,7 +125,18 @@ void addReccasterEnvVars(caster_t* self, int argc, char **argv)
125125
continue;
126126
}
127127
found_dup = 0;
128-
/* check if dup in self->extra_envs. doesn't check if arg is in default_envs right now */
128+
/* check if dup in self->default_envs */
129+
for(j = 0; default_envs[j]; j++) {
130+
if(strcmp(argv[i], default_envs[j]) == 0) {
131+
found_dup = 1;
132+
errlogSevPrintf(errlogMinor, "Env var %s is already in env list sent by reccaster by default\n", argv[i]);
133+
break;
134+
}
135+
}
136+
if(found_dup) {
137+
continue;
138+
}
139+
/* check if dup in self->extra_envs */
129140
for(j = 0; j < num_new_extra_envs; j++) {
130141
if(new_extra_envs[j] == NULL) {
131142
continue;

client/castApp/src/dbcb.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010

1111
#include "caster.h"
1212

13-
static const char* default_envs[] =
13+
const char* default_envs[] =
1414
{
1515
/* automatic (if unset) */
1616
"HOSTNAME",

client/castApp/src/testAddEnvVars.c

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -127,6 +127,20 @@ static void testAddEnvVars(void)
127127
testOk1(strcmp(caster.extra_envs[i], expectedExtraEnvs[i]) == 0);
128128
}
129129

130+
testDiag("Testing addReccasterEnvVars with a env vars from default list");
131+
argvlist[1] = "EPICS_BASE";
132+
argvlist[2] = "EPICS_CA_MAX_ARRAY_BYTES";
133+
argvlist[3] = "PVAS_SERVER_PORT";
134+
argvlist[4] = "RSRV_SERVER_PORT";
135+
argvlist[5] = "ENGINEER";
136+
argc = 6;
137+
testOk1(caster.num_extra_envs==expectedNumExtraEnvs);
138+
addReccasterEnvVars(&caster, argc, argvlist);
139+
testOk1(caster.num_extra_envs==expectedNumExtraEnvs);
140+
for(i=0; i < expectedNumExtraEnvs; i++) {
141+
testOk1(strcmp(caster.extra_envs[i], expectedExtraEnvs[i]) == 0);
142+
}
143+
130144
epicsMutexUnlock(lock);
131145

132146
epicsEventId sd;
@@ -139,7 +153,7 @@ static void testAddEnvVars(void)
139153

140154
MAIN(testAddEnvVars)
141155
{
142-
testPlan(40);
156+
testPlan(48);
143157
testAddEnvVars();
144158
return testDone();
145159
}

0 commit comments

Comments
 (0)