-static char *rcsId = "$Header: /misc/hadesprojects/daq/cvsroot/eventbuilder/hadaq/netmem.c,v 6.40 2010-07-07 08:43:27 hadaq Exp $";
+static char *rcsId = "$Header: /misc/hadesprojects/daq/cvsroot/eventbuilder/hadaq/netmem.c,v 6.41 2010-07-15 17:51:49 hadaq Exp $";
 
 #define _POSIX_C_SOURCE 199309L
 #define SYSLOG_NAMES
        unsigned int buffStat;
        char shmname[PARAM_MAX_VALUE_LEN];
        char evtstat[PARAM_MAX_VALUE_LEN];
+
+       unsigned long portNr[MAXINPATH];
+       int portNrCnt;
 } TheArgs;
 
 typedef struct TheStatsS {
        }
        my->queueVarSizeCnt = 0;        /* no varible queue sizes by default */
 
+       my->portNrCnt = 0;
+
        my->buffStat = 0;
        strcpy(my->shmname, "");
 
        sprintf(my->evtstat, "%s_evtstat.txt", getenv("DAQ_SETUP"));
 }
 
-
-
 static int argsFromCL(TheArgs *my, int argc, char *argv[])
 {
        extern char *optarg;
                my->inPathCnt = inPathCntFromParam;
        }
 
+       /* Extract port numbers */
+       char fam[32];
+       char pa[32];
+       char ep[32];
+       int port;
+
+       for (i = 0; i < my->inPathCnt; i++) {
+               if (0 == (sscanf(my->inPath[i], "%[^:]:%[^:]:%s", fam, pa, ep))) {
+                       syslog(LOG_ERR, "%s, %d: %s", __FILE__, __LINE__, "sscanf failed.");
+                       sleep(5);
+               } else {
+                       port = atoi(ep);
+                       my->portNr[i] = port;
+                       my->portNrCnt++;
+               }
+       }
+
        return 0;
 }
 
 
        if (theArgs->isStandalone && strcmp(theArgs->verbosity, "info") == 0 && (dT = (time(NULL) - lastTime)) >= interval
                && !(theArgs->buffStat)) {
+
                fputs("==============================================================================\n", stderr);
                for (i = 0; i < theArgs->nrOfMsgs; i++) {
+                       printf("port:%6d ------------------------------------------------------------------\n", theArgs->portNr[i]);
                        fprintf(stderr, "%17s%02d:%6s", "pktsReceived", i, unit(*my[i]->pktsReceived));
                        fprintf(stderr, "%17s%02d:%6s", "pktsDiscarded", i, unit(*my[i]->pktsDiscarded));
                        fprintf(stderr, "%15s%02d  :%6s", "bytesReceived", i, unit(*my[i]->bytesReceived));
                        fprintf(stderr, "%15s%02d/s:%6s", "bytesReceived", i, unit(*my[i]->bytesReceived - lastBR[i]));
                        lastBR[i] = *my[i]->bytesReceived;
                        fputc('\n', stderr);
-                       fputs("------------------------------------------------------------------------------\n", stderr);
 
                        if ((long) (*my[i]->pktsReceived) - (long) lastPR < 0) {
                                lastPR[i] = 0;
                        lastPD[i] = *my[i]->pktsDiscarded;
                        lastMD[i] = *my[i]->msgsDiscarded;
                }
+               fputs("==============================================================================\n", stderr);
 
                lastTime += dT;
        }