Update of /cvsroot/linux-decnet/dnprogs/contrib/ph3-der-loewe
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv17952
Modified Files:
dnetstat.c
Log Message:
New stuff...
Index: dnetstat.c
===================================================================
RCS file: /cvsroot/linux-decnet/dnprogs/contrib/ph3-der-loewe/dnetstat.c,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -r1.1 -r1.2
*** dnetstat.c 5 Sep 2008 08:19:44 -0000 1.1
--- dnetstat.c 5 Sep 2008 14:02:47 -0000 1.2
***************
*** 73,82 ****
}
! char * state_ktou (char * state) {
if ( strcmp(state, "OPEN") == 0 ) {
return "LISTEN";
} else if ( strcmp(state, "RUN") == 0 ) {
return "ESTABLISHED";
} else if ( strcmp(state, "RJ") == 0 ) {
return "REJECTED";
} else if ( strcmp(state, "DN") == 0 ) {
--- 73,84 ----
}
! char * state_ktou (char * state, char ** dir) {
if ( strcmp(state, "OPEN") == 0 ) {
+ *dir = "IN";
return "LISTEN";
} else if ( strcmp(state, "RUN") == 0 ) {
return "ESTABLISHED";
} else if ( strcmp(state, "RJ") == 0 ) {
+ *dir = "OUT";
return "REJECTED";
} else if ( strcmp(state, "DN") == 0 ) {
***************
*** 93,96 ****
--- 95,100 ----
char state[32], immed[32];
char buf[1024];
+ char out[1024] = {0}, * outdir = out+57;
+ char conid[8] = {0,0,0,0,0,0,0,0}, *lid, *rid;
char * lbuf = buf, * rbuf = buf + 512;
char * dir = ""; // max be "UNI" or "BI", "IN", "OUT"
***************
*** 114,129 ****
state, immed
) == 16) {
prep_addr(lbuf, local.object);
prep_addr(rbuf, remote.object);
if ( strcmp(state, "OPEN") != 0 ) {
immed[0] = 0;
- dir = "";
- } else {
- dir = "IN";
}
! printf("decnet %-24s %-24s %-3s %-12s %s\n", lbuf, rbuf, dir, state_ktou(state), immed);
}
return 0;
--- 118,152 ----
state, immed
) == 16) {
+ lid = index(lbuf, '/') + 1;
+ rid = index(rbuf, '/') + 1;
+
+ if ( memcmp(lid, conid+4, 4) == 0 && memcmp(rid, conid, 4) == 0 && strcmp(state, "OPEN") != 0 ) {
+ if ( *out ) {
+ memcpy(outdir, "LOC", 3);
+ puts(out);
+ *out = 0;
+ continue;
+ }
+ }
+
+ if ( *out )
+ puts(out);
+
+ memcpy(conid, lid, 4);
+ memcpy(conid+4, rid, 4);
+
+
prep_addr(lbuf, local.object);
prep_addr(rbuf, remote.object);
+ dir = "";
+
if ( strcmp(state, "OPEN") != 0 ) {
immed[0] = 0;
}
! sprintf(out, "decnet %-24s %-24s %-3s %-12s %s", lbuf, rbuf, dir, state_ktou(state, &dir), immed);
}
+ puts(out);
return 0;
|