]> jspc29.x-matter.uni-frankfurt.de Git - daqdata.git/commitdiff
do a proper deregistration of online service
authorhadaq <hadaq>
Mon, 16 Aug 2004 11:25:53 +0000 (11:25 +0000)
committerhadaq <hadaq>
Mon, 16 Aug 2004 11:25:53 +0000 (11:25 +0000)
hadaq/evtbuild.c
hadaq/online.c

index a4821511aa2199c36b1e6f37a713bda60ca9894b..3ed0b56b30f27a0c7c90ac7697671634d0f7ed55 100644 (file)
@@ -1,4 +1,4 @@
-static char *rcsId = "$Header: /misc/hadesprojects/daq/cvsroot/eventbuilder/hadaq/evtbuild.c,v 6.69 2004-08-13 10:30:00 hadaq Exp $";
+static char *rcsId = "$Header: /misc/hadesprojects/daq/cvsroot/eventbuilder/hadaq/evtbuild.c,v 6.70 2004-08-16 11:25:53 hadaq Exp $";
 
 
 #define _POSIX_C_SOURCE 199309L
@@ -688,6 +688,7 @@ int main(int argc, char *argv[])
        for (i = 0; i < theArgs->nrOfMsgs; i++) {
                ShmTrans_remove(shmTrans[i]);
        }
+       finiOnline();
        Worker_fini(worker);
 
        exit(EXIT_SUCCESS);
index 79ab41e76e09e95230bdef208ded2ab17b1ca07e..19e825b6362714e21192bdcc3eb2779307ac39ad 100644 (file)
@@ -1,4 +1,4 @@
-static char *rcsId = "$Header: /misc/hadesprojects/daq/cvsroot/eventbuilder/hadaq/online.c,v 6.9 2003-05-14 13:54:45 muench Exp $";
+static char *rcsId = "$Header: /misc/hadesprojects/daq/cvsroot/eventbuilder/hadaq/online.c,v 6.10 2004-08-16 11:25:53 hadaq Exp $";
 
 
 #define _GNU_SOURCE
@@ -15,27 +15,33 @@ static void *ourEvt;
 
 extern void daqprog_1();
 
-static struct timeval timeout =
-{0, 0};
+static struct timeval timeout = { 0, 0 };
+
+static SVCXPRT *ourTransp;
 
 initOnline()
 {
-       register SVCXPRT *transp;
 
        (void) pmap_unset(DAQPROG, DAQVERS);
 
-       transp = svctcp_create(RPC_ANYSOCK, 0, 0);
-       if (transp == NULL) {
+       ourTransp = svctcp_create(RPC_ANYSOCK, 0, 0);
+       if (ourTransp == NULL) {
                fprintf(stderr, "cannot create tcp service.");
                return -1;
        }
-       if (!svc_register(transp, DAQPROG, DAQVERS, daqprog_1, IPPROTO_TCP)) {
+       if (!svc_register(ourTransp, DAQPROG, DAQVERS, daqprog_1, IPPROTO_TCP)) {
                fprintf(stderr, "unable to register (DAQPROG, DAQVERS, tcp).");
                return -1;
        }
        return 0;
 }
 
+int finiOnline(void)
+{
+       svc_unregister(DAQPROG, DAQVERS);
+       svc_destroy(ourTransp);
+}
+
 void Evt_online(void *evt)
 {
        fd_set readfdset;