From 8d52177933b691c06d78129b72d5ed670ec53a3f Mon Sep 17 00:00:00 2001 From: Jim Kowalkowski Date: Wed, 13 Sep 1995 18:26:42 +0000 Subject: [PATCH] Fixed the address of ioc by name in BSlib.c. Added app list to the services of PVSvx. Removed rdbls from PVSserver - made it a separate file. --- src/dbtools/BSlib.c | 10 ++++---- src/dbtools/Makefile.Unix | 18 +++++++------- src/dbtools/PVSserver.c | 21 +---------------- src/dbtools/PVSvx.c | 49 +++++++++++++++++++++++++++++++++++---- 4 files changed, 58 insertions(+), 40 deletions(-) diff --git a/src/dbtools/BSlib.c b/src/dbtools/BSlib.c index 156338ad1..71679d733 100644 --- a/src/dbtools/BSlib.c +++ b/src/dbtools/BSlib.c @@ -637,17 +637,12 @@ int BSsetAddress(BSDATA* info, char* ip_addr) struct sockaddr_in* sin = (struct sockaddr_in*)&(info->sin); unsigned long addr; - sin->sin_family=AF_INET; - #ifndef vxWorks /* Deal with the name -vs- IP number issue. */ if (isdigit(ip_addr[0])) { #endif - if((addr=inet_addr(ip_addr))==-1) - return -1; - else - memcpy((char*)&(sin->sin_addr),(char*)&addr,sizeof(addr)); + if((addr=inet_addr(ip_addr))==-1) return -1; #ifndef vxWorks } else @@ -657,6 +652,9 @@ int BSsetAddress(BSDATA* info, char* ip_addr) } #endif + sin->sin_family=AF_INET; + memcpy((char*)&(sin->sin_addr),(char*)&addr,sizeof(addr)); + return 0; } diff --git a/src/dbtools/Makefile.Unix b/src/dbtools/Makefile.Unix index a8ddfb56a..acea0b4b0 100644 --- a/src/dbtools/Makefile.Unix +++ b/src/dbtools/Makefile.Unix @@ -11,13 +11,13 @@ LEXOPT = -L SRCS.c = ../dbVarSub.c dbLoadTemplate_lex.c dbLoadTemplate.c \ dbLoadRecords_lex.c dbLoadRecords.c \ - ../BSlib.c ../PVSserver.c + ../BSlib.c ../PVSserver.c ../rdbapplist.c ../rdbls.o VAR_OBJS = dbVarSub.o dbLoadTemplate.o dbLoadRecords.o -OBJS = $(VAR_OBJS) BSlib.o PVSserver.o +OBJS = $(VAR_OBJS) BSlib.o PVSserver.o rdbapplist.o rdbls.o -PROD = subtool dbLoadTemplate -TARGETS = PVSserver rdbls +PROD = subtool dbLoadTemplate rdbls rdbapplist +TARGETS = PVSserver include $(EPICS)/config/RULES.Unix @@ -27,8 +27,11 @@ dbLoadRecords.o: dbLoadRecords_lex.c PVSserver: PVSserver.o BSlib.o $(LINK.c) $(ARCH_DEP_LDLIBS) $(LDFLAGS) -o $@ $^ -rdbls.o: ../PVSserver.c - $(COMPILE.c) $(CFLAGS) -DRDBLS -o $@ $< +rdbls: rdbls.o BSlib.o + $(LINK.c) $(ARCH_DEP_LDLIBS) $(LDFLAGS) -o $@ $^ + +rdbapplist: rdbapplist.o BSlib.o + $(LINK.c) $(ARCH_DEP_LDLIBS) $(LDFLAGS) -o $@ $^ subtool.o: dbLoadTemplate.c dbLoadTemplate_lex.c $(COMPILE.c) $(CFLAGS) -DSUB_TOOL -o $@ $< @@ -36,9 +39,6 @@ subtool.o: dbLoadTemplate.c dbLoadTemplate_lex.c subtool: subtool.o dbVarSub.o $(LINK.c) $(CFLAGS) -DSUB_TOOL -o $@ $^ -s -rdbls: rdbls.o BSlib.o - $(LINK.c) $(ARCH_DEP_LDLIBS) $(LDFLAGS) -DRDBLS -o $@ $^ -s - dbLoadTemplate: $(VAR_OBJS) $(LINK.c) -o $@ $^ $(LDLIBS) -lDb diff --git a/src/dbtools/PVSserver.c b/src/dbtools/PVSserver.c index 4fe99b2e4..17f8b1eac 100644 --- a/src/dbtools/PVSserver.c +++ b/src/dbtools/PVSserver.c @@ -21,24 +21,6 @@ static PVSNODE* ioc_list = (PVSNODE*)NULL; static int read_pvs(BSDATA* info,int serv,char* sname); #ifndef PVS_SERVER_PROG -#ifdef RDBLS -int main(int argc,char** argv) -{ - BSDATA info; - int rc; - - if(argc<2) - { - fprintf(stderr,"usage: %s IOC-ip-address\n",argv[0]); - return -1; - } - - BSsetAddress(&info,argv[1]); - rc=read_pvs(&info,PVS_RecList,(char*)NULL); - if(rc<0) fprintf(stderr,"read of data failed horribly\n"); - return 0; -} -#else int main(int argc,char** argv) { BSDATA info; @@ -64,7 +46,6 @@ int main(int argc,char** argv) return 0; } -#endif #else int main(int argc,char** argv) { @@ -184,7 +165,7 @@ static int read_pvs(BSDATA* info,int serv,char* sname) BSgetAddressPort(info,ip_from,&port); - printf("IOC %s starting\n",ip_from); + /* printf("IOC %s starting\n",ip_from); */ /* verify ioc not already added */ if(access(ip_from,F_OK)==0) diff --git a/src/dbtools/PVSvx.c b/src/dbtools/PVSvx.c index 1523e4524..dd82eef33 100644 --- a/src/dbtools/PVSvx.c +++ b/src/dbtools/PVSvx.c @@ -29,6 +29,8 @@ static void handle_requests(BS* bs); static void handle_reclist(BS* bs); static void handle_applist(BS* bs); static void handle_recdump(BS* bs); +static void handle_spylist(BS* bs); +static void handle_tasklist(BS* bs); void PVS_test_server(BS* bs); static char* names = (char*)NULL; @@ -302,21 +304,58 @@ static void handle_requests(BS* bs) } } -void PVS_test_server(BS* bs) +/* --------------------------------------------------------------- */ + +struct dbnode { - printf("PVS_test_server invoked\n"); - BSsendHeader(bs,BS_Done,0); -} + char* name; + struct dbnode* next; +}; +typedef struct dbnode DBNODE; + +extern DBNODE* DbApplList; void handle_applist(BS* bs) { - printf("AppList server invoked\n"); + DBNODE* n; + int size,len; + + len=0; + for(n=DbApplList;n;n=n->next) + { + len=strlen(n->name)+1; + + if(BSsendHeader(bs,PVS_Data,len)<0) + printf("PVSserver: data cmd failed\n"); + else + { + if(BSsendData(bs,n->name,len)<0) + printf("PVSserver: data send failed\n"); + } + } BSsendHeader(bs,BS_Done,0); } +/* --------------------------------------------------------------- */ + void handle_recdump(BS* bs) { printf("RecDump server invoked\n"); BSsendHeader(bs,BS_Done,0); } +void PVS_test_server(BS* bs) +{ + printf("PVS_test_server invoked\n"); + BSsendHeader(bs,BS_Done,0); +} + +void handle_spylist(BS* bs) +{ + printf("PVS spy list server invoked\n"); +} + +void handle_tasklist(BS* bs) +{ + printf("PVS task list server invoked\n"); +}