Skip to content

Commit ee94f9f

Browse files
committed
1.0-release
1 parent 9cc6fcc commit ee94f9f

File tree

6 files changed

+43
-58
lines changed

6 files changed

+43
-58
lines changed

CHANGELOG.md

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
# Changelog
22

33
* 2023.11.09 v0.1
4-
* Initial release
4+
* Initial efforts
55

66
* 2023.11.13 v0.2
77
* CLI arguments added
@@ -19,3 +19,6 @@
1919
* 2023.11.19 v0.6
2020
* LISTENING sockes filter
2121
* Many optimizations
22+
23+
* 2023.11.19 v1.0
24+
* The first release

Makefile

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -32,8 +32,14 @@ OBJS = sockstat.o
3232

3333
all: sockstat
3434

35-
sockstat: $(OBJS)
36-
$(CC) -o $@ $(OBJS)
35+
sockstat: sockstat_x64 sockstat_arm
36+
lipo -create -output sockstat sockstat_x64 sockstat_arm
37+
38+
sockstat_x64:
39+
$(CC) -o sockstat_x64 -target x86_64-apple-macos10.12 sockstat.c
40+
41+
sockstat_arm:
42+
$(CC) -o sockstat_arm -target arm64-apple-macos11 sockstat.c
3743

3844
install: sockstat
3945
install -d $(PREFIX)/bin/
@@ -43,6 +49,4 @@ uninstall:
4349
rm -f $(PREFIX)/bin/sockstat
4450

4551
clean:
46-
rm -rf sockstat *.o *.dSYM *.core
47-
48-
# sockstat.o: sockstat.h
52+
rm -rf sockstat sockstat_x64 sockstat_arm *.o *.dSYM *.core

README.md

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,7 @@
77

88
<a href="https://www.buymeacoffee.com/mezantrop" target="_blank"><img src="https://cdn.buymeacoffee.com/buttons/default-orange.png" alt="Buy Me A Coffee" height="41" width="174"></a>
99

10-
Warning! This is still beta version!
11-
1210
![sockstat](sockstat.png)
1311

14-
If you have an idea, a question, or have found a problem, do not hesitate to open an issue or
15-
mail me: Mikhail Zakharov <[email protected]>
12+
If you have an idea, a question, or have found a problem, do not hesitate to open an
13+
[issue](https://github.com/mezantrop/sockstat/issues) or mail me: Mikhail Zakharov <[email protected]>

TODO.md

Lines changed: 0 additions & 4 deletions
This file was deleted.

sockstat.c

Lines changed: 28 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ void usage(int ecode);
4444

4545
/* ------------------------------------------------------------------------------------------------------------------ */
4646
#define PROG_NAME "sockstat"
47-
#define PROG_VERSION "0.6"
47+
#define PROG_VERSION "1.0"
4848

4949
#define MAXPROC 16384;
5050
/* ------------------------------------------------------------------------------------------------------------------ */
@@ -60,54 +60,35 @@ int main(int argc, char* argv[]) {
6060
struct passwd *pwd;
6161
char buf[INET6_ADDRSTRLEN] = {0}; /* Local/Remote IPv4/6 addresses bufs */
6262
char outstr[160] = {0};
63+
int ready = 0; /* Socket info collected - ready to print */
64+
int listen = 1; /* Socket is listening for flg_l output */
65+
6366
int flg = 0; /* CLI flags, see below */
6467
int flg_i4 = 0; /* IPv4 */
6568
int flg_i6 = 0; /* IPv6 */
6669
int flg_k = 0; /* Kern/system sockets */
6770
int flg_l = 0; /* TCP LISTENing sockets */
68-
int flg_N = 0; /* NDRV sockets */
71+
int flg_n = 0; /* NDRV sockets */
72+
int flg_q = 0; /* Quiet - hide header */
6973
int flg_r = 0; /* ROUTE sockets */
7074
int flg_u = 0; /* UNIX aka LOCAL sockets */
7175
int flg_a = 0; /* pseudo-flag ALL socket flags are on */
72-
int ready = 0;
73-
int listen = 1;
7476

75-
while ((flg = getopt(argc, argv, "46klNruh")) != -1)
77+
while ((flg = getopt(argc, argv, "46klnrquh")) != -1)
7678
switch(flg) {
77-
case '4':
78-
flg_i4 = 1;
79-
break;
80-
81-
case '6':
82-
flg_i6 = 1;
83-
break;
84-
85-
case 'k':
86-
flg_k = 1;
87-
break;
88-
89-
case 'l':
90-
flg_l = 1;
91-
break;
92-
93-
case 'N':
94-
flg_N = 1;
95-
break;
96-
97-
case 'r':
98-
flg_r = 1;
99-
break;
100-
101-
case 'u':
102-
flg_u = 1;
103-
break;
104-
105-
case 'h':
106-
default:
107-
(void)usage(0);
79+
case '4': flg_i4 = 1; break;
80+
case '6': flg_i6 = 1; break;
81+
case 'k': flg_k = 1; break;
82+
case 'l': flg_l = 1; break;
83+
case 'n': flg_n = 1; break;
84+
case 'q': flg_q = 1; break;
85+
case 'r': flg_r = 1; break;
86+
case 'u': flg_u = 1; break;
87+
case 'h': (void)usage(0); break;
88+
default: (void)usage(1);
10889
}
10990

110-
if (!flg_i4 && !flg_i6 && !flg_k && !flg_N && !flg_r && !flg_u) flg_a = 1;
91+
if (!flg_i4 && !flg_i6 && !flg_k && !flg_n && !flg_r && !flg_u) flg_a = 1;
11192

11293
if (sysctlbyname("kern.maxproc", &mproc, &mproc_len, NULL, 0) == -1) {
11394
perror("Unable to get the maximum allowed number of processes");
@@ -121,8 +102,9 @@ int main(int argc, char* argv[]) {
121102

122103
fds = (struct proc_fdinfo *)malloc(sizeof(struct proc_fdinfo) * OPEN_MAX);
123104

124-
printf("%-23s %-5s %-31s %-3s\t%-5s\t%s\t\t%s\n",
125-
"USER", "PID", "COMMAND", "FD", "PROTO", "LOCAL ADDRESS", "REMOTE ADDRESS");
105+
if (!flg_q)
106+
printf("%-23s %-5s %-31s %-3s\t%-5s\t%s\t\t%s\n",
107+
"USER", "PID", "COMMAND", "FD", "PROTO", "LOCAL ADDRESS", "REMOTE ADDRESS");
126108

127109
for (int i = 0; i < npids/sizeof(int); i++) {
128110
/* PID => FDs */
@@ -280,7 +262,7 @@ int main(int argc, char* argv[]) {
280262
break;
281263

282264
case AF_NDRV:
283-
if (flg_N || flg_a) {
265+
if (flg_n || flg_a) {
284266
if (si.psi.soi_kind == SOCKINFO_NDRV) { /* is this check useless? */
285267
sprintf(outstr + strlen(outstr), "\tndrv\tunit: %d name: %s",
286268
si.psi.soi_proto.pri_ndrv.ndrvsi_if_unit,
@@ -341,18 +323,20 @@ int main(int argc, char* argv[]) {
341323

342324
/* ------------------------------------------------------------------------------------------------------------------ */
343325
void usage(int ecode) {
344-
printf("Usage:\n\
345-
sockstat [-46klNruh]\n\n\
326+
printf("%s-%s\n\n\
327+
Usage:\n\
328+
sockstat [-46klNrquh]\n\n\
346329
-4\tShow AF_INET (IPv4) sockets\n\
347330
-6\tShow AF_INET (IPv6) sockets\n\
348331
-k\tShow AF_SYSTEM (Kernel) sockets\n\
349-
-N\tShow AF_NDRV sockets\n\
332+
-n\tShow AF_NDRV sockets\n\
350333
-r\tShow AF_ROUTE sockets\n\
351334
-u\tShow AF_LOCAL (UNIX) sockets\n\
352335
\n\
353336
-l\tShow only LISTENing sockets\n\
337+
-q\tQuiet mode - suppress header\n\
354338
\n\
355-
-h\tThis help message\n\n");
339+
-h\tThis help message\n\n", PROG_NAME, PROG_VERSION);
356340

357341
exit(ecode);
358342
}

sockstat.png

19 KB
Loading

0 commit comments

Comments
 (0)