version 1.128, 2013/12/24 22:26:19 |
version 1.129, 2013/12/25 01:46:00 |
|
|
{ |
{ |
struct inpcbtable table; |
struct inpcbtable table; |
struct inpcb *prev, *next; |
struct inpcb *prev, *next; |
struct inpcb inpcb; |
struct inpcb inpcb, prevpcb; |
int istcp, israw, isany; |
int istcp, israw, isany; |
int addrlen = 22; |
int addrlen = 22; |
int first = 1; |
int first = 1; |
|
|
|
|
while (next != NULL) { |
while (next != NULL) { |
kread((u_long)next, &inpcb, sizeof inpcb); |
kread((u_long)next, &inpcb, sizeof inpcb); |
|
if (prev != NULL) { |
|
kread((u_long)prev, &prevpcb, sizeof prevpcb); |
|
if (TAILQ_NEXT(&prevpcb, inp_queue) != next) { |
|
printf("PCB list changed\n"); |
|
break; |
|
} |
|
} |
prev = next; |
prev = next; |
next = TAILQ_NEXT(&inpcb, inp_queue); |
next = TAILQ_NEXT(&inpcb, inp_queue); |
|
|