diff --git a/docs/parsers/proc_net_protocols.md b/docs/parsers/proc_net_protocols.md
index a86416dd..8517308d 100644
--- a/docs/parsers/proc_net_protocols.md
+++ b/docs/parsers/proc_net_protocols.md
@@ -99,37 +99,37 @@ Examples:
$ cat /proc/net/protocols | jc --proc -p -r
[
- {
- "protocol": "AF_VSOCK",
- "size": "1216",
- "sockets": "0",
- "memory": "-1",
- "press": "NI",
- "maxhdr": "0",
- "slab": "yes",
- "module": "vsock",
- "cl": "n",
- "co": "n",
- "di": "n",
- "ac": "n",
- "io": "n",
- "in": "n",
- "de": "n",
- "sh": "n",
- "ss": "n",
- "gs": "n",
- "se": "n",
- "re": "n",
- "sp": "n",
- "bi": "n",
- "br": "n",
- "ha": "n",
- "uh": "n",
- "gp": "n",
- "em": "n"
- },
- ...
- ]
+ {
+ "protocol": "AF_VSOCK",
+ "size": "1216",
+ "sockets": "0",
+ "memory": "-1",
+ "press": "NI",
+ "maxhdr": "0",
+ "slab": "yes",
+ "module": "vsock",
+ "cl": "n",
+ "co": "n",
+ "di": "n",
+ "ac": "n",
+ "io": "n",
+ "in": "n",
+ "de": "n",
+ "sh": "n",
+ "ss": "n",
+ "gs": "n",
+ "se": "n",
+ "re": "n",
+ "sp": "n",
+ "bi": "n",
+ "br": "n",
+ "ha": "n",
+ "uh": "n",
+ "gp": "n",
+ "em": "n"
+ },
+ ...
+ ]
diff --git a/docs/parsers/proc_net_unix.md b/docs/parsers/proc_net_unix.md
new file mode 100644
index 00000000..9b565d32
--- /dev/null
+++ b/docs/parsers/proc_net_unix.md
@@ -0,0 +1,100 @@
+[Home](https://kellyjonbrazil.github.io/jc/)
+
+
+# jc.parsers.proc\_net\_unix
+
+jc - JSON Convert `/proc/net/unix` file parser
+
+Usage (cli):
+
+ $ cat /proc/net/unix | jc --proc
+
+or
+
+ $ jc /proc/net/unix
+
+or
+
+ $ cat /proc/net/unix | jc --proc-net-unix
+
+Usage (module):
+
+ import jc
+ result = jc.parse('proc', proc_net_unix_file)
+
+or
+
+ import jc
+ result = jc.parse('proc_net_unix', proc_net_unix_file)
+
+Schema:
+
+ [
+ {
+ "Num": string,
+ "RefCount": string,
+ "Protocol": string,
+ "Flags": string,
+ "Type": string,
+ "St": string,
+ "Inode": integer,
+ "Path": string
+ }
+ ]
+
+Examples:
+
+ $ cat /proc/net/unix | jc --proc -p
+ [
+ {
+ "Num": "ffff9b61ac49c400:",
+ "RefCount": "00000002",
+ "Protocol": "00000000",
+ "Flags": "00010000",
+ "Type": "0001",
+ "St": "01",
+ "Inode": 42776,
+ "Path": "/var/snap/lxd/common/lxd/unix.socket"
+ },
+ ...
+ ]
+
+ $ cat /proc/net/unix | jc --proc -p -r
+ [
+ {
+ "Num": "ffff9b61ac49c400:",
+ "RefCount": "00000002",
+ "Protocol": "00000000",
+ "Flags": "00010000",
+ "Type": "0001",
+ "St": "01",
+ "Inode": "42776",
+ "Path": "/var/snap/lxd/common/lxd/unix.socket"
+ },
+ ...
+ ]
+
+
+
+### parse
+
+```python
+def parse(data: str, raw: bool = False, quiet: bool = False) -> List[Dict]
+```
+
+Main text parsing function
+
+Parameters:
+
+ data: (string) text data to parse
+ raw: (boolean) unprocessed output if True
+ quiet: (boolean) suppress warning messages if True
+
+Returns:
+
+ List of Dictionaries. Raw or processed structured data.
+
+### Parser Information
+Compatibility: linux
+
+Version 1.0 by Kelly Brazil (kellyjonbrazil@gmail.com)
diff --git a/jc/lib.py b/jc/lib.py
index 4b088c35..2ddd9d48 100644
--- a/jc/lib.py
+++ b/jc/lib.py
@@ -133,6 +133,7 @@ parsers = [
'proc-net-packet',
'proc-net-protocols',
'proc-net-route',
+ 'proc-net-unix',
'ps',
'route',
'rpm-qi',
diff --git a/jc/parsers/proc_net_protocols.py b/jc/parsers/proc_net_protocols.py
index 024e568d..1a309bf4 100644
--- a/jc/parsers/proc_net_protocols.py
+++ b/jc/parsers/proc_net_protocols.py
@@ -94,37 +94,37 @@ Examples:
$ cat /proc/net/protocols | jc --proc -p -r
[
- {
- "protocol": "AF_VSOCK",
- "size": "1216",
- "sockets": "0",
- "memory": "-1",
- "press": "NI",
- "maxhdr": "0",
- "slab": "yes",
- "module": "vsock",
- "cl": "n",
- "co": "n",
- "di": "n",
- "ac": "n",
- "io": "n",
- "in": "n",
- "de": "n",
- "sh": "n",
- "ss": "n",
- "gs": "n",
- "se": "n",
- "re": "n",
- "sp": "n",
- "bi": "n",
- "br": "n",
- "ha": "n",
- "uh": "n",
- "gp": "n",
- "em": "n"
- },
- ...
- ]
+ {
+ "protocol": "AF_VSOCK",
+ "size": "1216",
+ "sockets": "0",
+ "memory": "-1",
+ "press": "NI",
+ "maxhdr": "0",
+ "slab": "yes",
+ "module": "vsock",
+ "cl": "n",
+ "co": "n",
+ "di": "n",
+ "ac": "n",
+ "io": "n",
+ "in": "n",
+ "de": "n",
+ "sh": "n",
+ "ss": "n",
+ "gs": "n",
+ "se": "n",
+ "re": "n",
+ "sp": "n",
+ "bi": "n",
+ "br": "n",
+ "ha": "n",
+ "uh": "n",
+ "gp": "n",
+ "em": "n"
+ },
+ ...
+ ]
"""
from typing import List, Dict
import jc.utils
diff --git a/jc/parsers/proc_net_unix.py b/jc/parsers/proc_net_unix.py
new file mode 100644
index 00000000..66e1536f
--- /dev/null
+++ b/jc/parsers/proc_net_unix.py
@@ -0,0 +1,139 @@
+"""jc - JSON Convert `/proc/net/unix` file parser
+
+Usage (cli):
+
+ $ cat /proc/net/unix | jc --proc
+
+or
+
+ $ jc /proc/net/unix
+
+or
+
+ $ cat /proc/net/unix | jc --proc-net-unix
+
+Usage (module):
+
+ import jc
+ result = jc.parse('proc', proc_net_unix_file)
+
+or
+
+ import jc
+ result = jc.parse('proc_net_unix', proc_net_unix_file)
+
+Schema:
+
+ [
+ {
+ "Num": string,
+ "RefCount": string,
+ "Protocol": string,
+ "Flags": string,
+ "Type": string,
+ "St": string,
+ "Inode": integer,
+ "Path": string
+ }
+ ]
+
+Examples:
+
+ $ cat /proc/net/unix | jc --proc -p
+ [
+ {
+ "Num": "ffff9b61ac49c400:",
+ "RefCount": "00000002",
+ "Protocol": "00000000",
+ "Flags": "00010000",
+ "Type": "0001",
+ "St": "01",
+ "Inode": 42776,
+ "Path": "/var/snap/lxd/common/lxd/unix.socket"
+ },
+ ...
+ ]
+
+ $ cat /proc/net/unix | jc --proc -p -r
+ [
+ {
+ "Num": "ffff9b61ac49c400:",
+ "RefCount": "00000002",
+ "Protocol": "00000000",
+ "Flags": "00010000",
+ "Type": "0001",
+ "St": "01",
+ "Inode": "42776",
+ "Path": "/var/snap/lxd/common/lxd/unix.socket"
+ },
+ ...
+ ]
+"""
+from typing import List, Dict
+import jc.utils
+from jc.parsers.universal import simple_table_parse
+
+
+class info():
+ """Provides parser metadata (version, author, etc.)"""
+ version = '1.0'
+ description = '`/proc/net/unix` file parser'
+ author = 'Kelly Brazil'
+ author_email = 'kellyjonbrazil@gmail.com'
+ compatible = ['linux']
+ hidden = True
+
+
+__version__ = info.version
+
+
+def _process(proc_data: List[Dict]) -> List[Dict]:
+ """
+ Final processing to conform to the schema.
+
+ Parameters:
+
+ proc_data: (List of Dictionaries) raw structured data to process
+
+ Returns:
+
+ List of Dictionaries. Structured to conform to the schema.
+ """
+ int_list = {'Inode'}
+
+ for entry in proc_data:
+ for key, val in entry.items():
+ if key in int_list:
+ entry[key] = int(val)
+
+ return proc_data
+
+
+def parse(
+ data: str,
+ raw: bool = False,
+ quiet: bool = False
+) -> List[Dict]:
+ """
+ Main text parsing function
+
+ Parameters:
+
+ data: (string) text data to parse
+ raw: (boolean) unprocessed output if True
+ quiet: (boolean) suppress warning messages if True
+
+ Returns:
+
+ List of Dictionaries. Raw or processed structured data.
+ """
+ jc.utils.compatibility(__name__, info.compatible, quiet)
+ jc.utils.input_type_check(data)
+
+ raw_output: List = []
+
+ if jc.utils.has_data(data):
+
+ raw_output = simple_table_parse(data.splitlines())
+
+ return raw_output if raw else _process(raw_output)
diff --git a/man/jc.1 b/man/jc.1
index a53fd049..f8a3734a 100644
--- a/man/jc.1
+++ b/man/jc.1
@@ -650,6 +650,11 @@ PLIST file parser
\fB--proc-net-route\fP
`/proc/net/route` file parser
+.TP
+.B
+\fB--proc-net-unix\fP
+`/proc/net/unix` file parser
+
.TP
.B
\fB--ps\fP
diff --git a/tests/fixtures/linux-proc/net_unix.json b/tests/fixtures/linux-proc/net_unix.json
new file mode 100644
index 00000000..4106e4bf
--- /dev/null
+++ b/tests/fixtures/linux-proc/net_unix.json
@@ -0,0 +1 @@
+[{"Num":"ffff9b61ac49c400:","RefCount":"00000002","Protocol":"00000000","Flags":"00010000","Type":"0001","St":"01","Inode":42776,"Path":"/var/snap/lxd/common/lxd/unix.socket"},{"Num":"ffff9b61b509bc00:","RefCount":"00000002","Protocol":"00000000","Flags":"00010000","Type":"0001","St":"01","Inode":35128,"Path":"/var/run/vmware/guestServicePipe"},{"Num":"ffff9b61a77b9800:","RefCount":"00000002","Protocol":"00000000","Flags":"00010000","Type":"0005","St":"01","Inode":29792,"Path":"/run/udev/control"},{"Num":"ffff9b61ac49a800:","RefCount":"00000002","Protocol":"00000000","Flags":"00010000","Type":"0001","St":"01","Inode":42769,"Path":"/var/snap/lxd/common/lxd-user/unix.socket"},{"Num":"ffff9b61b0e54800:","RefCount":"00000002","Protocol":"00000000","Flags":"00000000","Type":"0002","St":"01","Inode":41863,"Path":"/run/user/1000/systemd/notify"},{"Num":"ffff9b61b0e56c00:","RefCount":"00000002","Protocol":"00000000","Flags":"00010000","Type":"0001","St":"01","Inode":41866,"Path":"/run/user/1000/systemd/private"},{"Num":"ffff9b61b0e52c00:","RefCount":"00000002","Protocol":"00000000","Flags":"00010000","Type":"0001","St":"01","Inode":41874,"Path":"/run/user/1000/bus"},{"Num":"ffff9b61a77bb800:","RefCount":"00000002","Protocol":"00000000","Flags":"00010000","Type":"0001","St":"01","Inode":29777,"Path":"@/org/kernel/linux/storage/multipathd"},{"Num":"ffff9b61b0e50000:","RefCount":"00000002","Protocol":"00000000","Flags":"00010000","Type":"0001","St":"01","Inode":41875,"Path":"/run/user/1000/gnupg/S.dirmngr"},{"Num":"ffff9b61b0e51000:","RefCount":"00000002","Protocol":"00000000","Flags":"00010000","Type":"0001","St":"01","Inode":41876,"Path":"/run/user/1000/gnupg/S.gpg-agent.browser"},{"Num":"ffff9b61b0e50c00:","RefCount":"00000002","Protocol":"00000000","Flags":"00010000","Type":"0001","St":"01","Inode":41877,"Path":"/run/user/1000/gnupg/S.gpg-agent.extra"},{"Num":"ffff9b61b0e51400:","RefCount":"00000002","Protocol":"00000000","Flags":"00010000","Type":"0001","St":"01","Inode":41878,"Path":"/run/user/1000/gnupg/S.gpg-agent.ssh"},{"Num":"ffff9b61a777d400:","RefCount":"00000002","Protocol":"00000000","Flags":"00010000","Type":"0001","St":"01","Inode":35973,"Path":"/run/dbus/system_bus_socket"},{"Num":"ffff9b61b0e52400:","RefCount":"00000002","Protocol":"00000000","Flags":"00010000","Type":"0001","St":"01","Inode":41879,"Path":"/run/user/1000/gnupg/S.gpg-agent"},{"Num":"ffff9b61a7779800:","RefCount":"00000002","Protocol":"00000000","Flags":"00010000","Type":"0001","St":"01","Inode":35990,"Path":"/run/snapd.socket"},{"Num":"ffff9b61b0e57000:","RefCount":"00000002","Protocol":"00000000","Flags":"00010000","Type":"0001","St":"01","Inode":41903,"Path":"/run/user/1000/pk-debconf-socket"},{"Num":"ffff9b61a777d000:","RefCount":"00000002","Protocol":"00000000","Flags":"00010000","Type":"0001","St":"01","Inode":35992,"Path":"/run/snapd-snap.socket"},{"Num":"ffff9b61b0e54c00:","RefCount":"00000002","Protocol":"00000000","Flags":"00010000","Type":"0001","St":"01","Inode":41904,"Path":"/run/user/1000/snapd-session-agent.socket"},{"Num":"ffff9b61a777ac00:","RefCount":"00000002","Protocol":"00000000","Flags":"00010000","Type":"0001","St":"01","Inode":35994,"Path":"/run/uuidd/request"},{"Num":"ffff9b61b2919c00:","RefCount":"00000002","Protocol":"00000000","Flags":"00010000","Type":"0001","St":"01","Inode":37637,"Path":"/run/irqbalance/irqbalance861.sock"},{"Num":"ffff9b61a77bfc00:","RefCount":"00000003","Protocol":"00000000","Flags":"00000000","Type":"0002","St":"01","Inode":29761,"Path":"/run/systemd/notify"},{"Num":"ffff9b61a77b9c00:","RefCount":"00000002","Protocol":"00000000","Flags":"00010000","Type":"0001","St":"01","Inode":29764,"Path":"/run/systemd/private"},{"Num":"ffff9b61a77ba000:","RefCount":"00000002","Protocol":"00000000","Flags":"00010000","Type":"0001","St":"01","Inode":29766,"Path":"/run/systemd/userdb/io.systemd.DynamicUser"},{"Num":"ffff9b61a77bec00:","RefCount":"00000002","Protocol":"00000000","Flags":"00010000","Type":"0001","St":"01","Inode":29775,"Path":"/run/lvm/lvmpolld.socket"},{"Num":"ffff9b61a77be000:","RefCount":"00000002","Protocol":"00000000","Flags":"00000000","Type":"0002","St":"01","Inode":29778,"Path":"/run/systemd/journal/syslog"},{"Num":"ffff9b61a77bdc00:","RefCount":"0000000A","Protocol":"00000000","Flags":"00000000","Type":"0002","St":"01","Inode":29785,"Path":"/run/systemd/journal/dev-log"},{"Num":"ffff9b61a77bc000:","RefCount":"00000002","Protocol":"00000000","Flags":"00010000","Type":"0001","St":"01","Inode":29787,"Path":"/run/systemd/journal/stdout"},{"Num":"ffff9b61a77bcc00:","RefCount":"00000009","Protocol":"00000000","Flags":"00000000","Type":"0002","St":"01","Inode":29789,"Path":"/run/systemd/journal/socket"},{"Num":"ffff9b61a777c000:","RefCount":"00000002","Protocol":"00000000","Flags":"00010000","Type":"0001","St":"01","Inode":30858,"Path":"/run/systemd/journal/io.systemd.journal"},{"Num":"ffff9b61a777f800:","RefCount":"00000002","Protocol":"00000000","Flags":"00010000","Type":"0001","St":"01","Inode":35985,"Path":"@ISCSIADM_ABSTRACT_NAMESPACE"},{"Num":"ffff9b61b0e55400:","RefCount":"00000003","Protocol":"00000000","Flags":"00000000","Type":"0002","St":"01","Inode":41865},{"Num":"ffff9b61b2c07800:","RefCount":"00000003","Protocol":"00000000","Flags":"00000000","Type":"0001","St":"03","Inode":40074,"Path":"/run/dbus/system_bus_socket"},{"Num":"ffff9b61b2d56c00:","RefCount":"00000002","Protocol":"00000000","Flags":"00000000","Type":"0002","St":"01","Inode":37639},{"Num":"ffff9b61a7842800:","RefCount":"00000002","Protocol":"00000000","Flags":"00000000","Type":"0002","St":"01","Inode":34191},{"Num":"ffff9b61b5a91000:","RefCount":"00000003","Protocol":"00000000","Flags":"00000000","Type":"0002","St":"01","Inode":34731},{"Num":"ffff9b61a7842c00:","RefCount":"00000003","Protocol":"00000000","Flags":"00000000","Type":"0002","St":"01","Inode":34198},{"Num":"ffff9b61b4a40000:","RefCount":"00000003","Protocol":"00000000","Flags":"00000000","Type":"0001","St":"03","Inode":37395},{"Num":"ffff9b61ac18a400:","RefCount":"00000002","Protocol":"00000000","Flags":"00000000","Type":"0002","St":"01","Inode":34187},{"Num":"ffff9b61b0e54400:","RefCount":"00000003","Protocol":"00000000","Flags":"00000000","Type":"0001","St":"03","Inode":41868,"Path":"/run/dbus/system_bus_socket"},{"Num":"ffff9b61ab65dc00:","RefCount":"00000003","Protocol":"00000000","Flags":"00000000","Type":"0001","St":"03","Inode":32191,"Path":"/run/systemd/journal/stdout"},{"Num":"ffff9b61b4a40400:","RefCount":"00000003","Protocol":"00000000","Flags":"00000000","Type":"0001","St":"03","Inode":37695,"Path":"/run/dbus/system_bus_socket"},{"Num":"ffff9b61b5a90800:","RefCount":"00000003","Protocol":"00000000","Flags":"00000000","Type":"0002","St":"01","Inode":34732},{"Num":"ffff9b61a777c400:","RefCount":"00000003","Protocol":"00000000","Flags":"00000000","Type":"0001","St":"03","Inode":34123},{"Num":"ffff9b61a77bc400:","RefCount":"00000003","Protocol":"00000000","Flags":"00000000","Type":"0001","St":"03","Inode":104866},{"Num":"ffff9b61b279d000:","RefCount":"00000003","Protocol":"00000000","Flags":"00000000","Type":"0001","St":"03","Inode":39056},{"Num":"ffff9b61a777cc00:","RefCount":"00000003","Protocol":"00000000","Flags":"00000000","Type":"0001","St":"03","Inode":37694,"Path":"/run/dbus/system_bus_socket"},{"Num":"ffff9b61b579d000:","RefCount":"00000003","Protocol":"00000000","Flags":"00000000","Type":"0001","St":"03","Inode":35846,"Path":"/run/systemd/journal/stdout"},{"Num":"ffff9b61b4a43000:","RefCount":"00000003","Protocol":"00000000","Flags":"00000000","Type":"0001","St":"03","Inode":35594,"Path":"/run/systemd/journal/stdout"},{"Num":"ffff9b61ab65ec00:","RefCount":"00000003","Protocol":"00000000","Flags":"00000000","Type":"0001","St":"03","Inode":33108},{"Num":"ffff9b61a7840000:","RefCount":"00000003","Protocol":"00000000","Flags":"00000000","Type":"0002","St":"01","Inode":34195},{"Num":"ffff9b61a77bf800:","RefCount":"00000003","Protocol":"00000000","Flags":"00000000","Type":"0001","St":"03","Inode":30127},{"Num":"ffff9b61b633a000:","RefCount":"00000003","Protocol":"00000000","Flags":"00000000","Type":"0002","St":"01","Inode":30139},{"Num":"ffff9b61a77bf400:","RefCount":"00000003","Protocol":"00000000","Flags":"00000000","Type":"0001","St":"03","Inode":37473},{"Num":"ffff9b61b633ac00:","RefCount":"00000003","Protocol":"00000000","Flags":"00000000","Type":"0002","St":"01","Inode":30140},{"Num":"ffff9b61b5a93000:","RefCount":"00000003","Protocol":"00000000","Flags":"00000000","Type":"0002","St":"01","Inode":34729},{"Num":"ffff9b61a77bf000:","RefCount":"00000003","Protocol":"00000000","Flags":"00000000","Type":"0002","St":"01","Inode":29762},{"Num":"ffff9b61ab7fe400:","RefCount":"00000002","Protocol":"00000000","Flags":"00000000","Type":"0002","St":"01","Inode":30860},{"Num":"ffff9b61b0e56400:","RefCount":"00000003","Protocol":"00000000","Flags":"00000000","Type":"0002","St":"01","Inode":41864},{"Num":"ffff9b61b4058000:","RefCount":"00000003","Protocol":"00000000","Flags":"00000000","Type":"0001","St":"03","Inode":35735,"Path":"/run/systemd/journal/stdout"},{"Num":"ffff9b61a777e400:","RefCount":"00000003","Protocol":"00000000","Flags":"00000000","Type":"0001","St":"03","Inode":36549},{"Num":"ffff9b61b0e56000:","RefCount":"00000003","Protocol":"00000000","Flags":"00000000","Type":"0001","St":"03","Inode":41867},{"Num":"ffff9b61b4820000:","RefCount":"00000003","Protocol":"00000000","Flags":"00000000","Type":"0001","St":"03","Inode":37693,"Path":"/run/dbus/system_bus_socket"},{"Num":"ffff9b61b3af2400:","RefCount":"00000003","Protocol":"00000000","Flags":"00000000","Type":"0001","St":"03","Inode":37400,"Path":"/run/systemd/journal/stdout"},{"Num":"ffff9b61a77be400:","RefCount":"00000003","Protocol":"00000000","Flags":"00000000","Type":"0002","St":"01","Inode":29763},{"Num":"ffff9b61a7841800:","RefCount":"00000003","Protocol":"00000000","Flags":"00000000","Type":"0002","St":"01","Inode":34196},{"Num":"ffff9b61a777ec00:","RefCount":"00000003","Protocol":"00000000","Flags":"00000000","Type":"0001","St":"03","Inode":36166},{"Num":"ffff9b61b633b800:","RefCount":"00000003","Protocol":"00000000","Flags":"00000000","Type":"0001","St":"03","Inode":30891,"Path":"/run/systemd/journal/stdout"},{"Num":"ffff9b61a7779000:","RefCount":"00000003","Protocol":"00000000","Flags":"00000000","Type":"0001","St":"03","Inode":36010},{"Num":"ffff9b61b2897800:","RefCount":"00000003","Protocol":"00000000","Flags":"00000000","Type":"0001","St":"03","Inode":37635,"Path":"/run/systemd/journal/stdout"},{"Num":"ffff9b61b5a95800:","RefCount":"00000003","Protocol":"00000000","Flags":"00000000","Type":"0001","St":"03","Inode":37691,"Path":"/run/dbus/system_bus_socket"},{"Num":"ffff9b61b2798c00:","RefCount":"00000003","Protocol":"00000000","Flags":"00000000","Type":"0001","St":"03","Inode":39057},{"Num":"ffff9b61ac18fc00:","RefCount":"00000003","Protocol":"00000000","Flags":"00000000","Type":"0001","St":"03","Inode":32701,"Path":"/run/systemd/journal/stdout"},{"Num":"ffff9b61a7846800:","RefCount":"00000003","Protocol":"00000000","Flags":"00000000","Type":"0001","St":"03","Inode":33991,"Path":"/run/systemd/journal/stdout"},{"Num":"ffff9b61a7778000:","RefCount":"00000003","Protocol":"00000000","Flags":"00000000","Type":"0001","St":"03","Inode":35845},{"Num":"ffff9b61a7847000:","RefCount":"00000003","Protocol":"00000000","Flags":"00000000","Type":"0001","St":"03","Inode":35984},{"Num":"ffff9b61a77b8800:","RefCount":"00000003","Protocol":"00000000","Flags":"00000000","Type":"0001","St":"03","Inode":35734},{"Num":"ffff9b61b5a94800:","RefCount":"00000002","Protocol":"00000000","Flags":"00000000","Type":"0002","St":"01","Inode":34725},{"Num":"ffff9b61a77b8400:","RefCount":"00000003","Protocol":"00000000","Flags":"00000000","Type":"0001","St":"03","Inode":35806},{"Num":"ffff9b61a7778800:","RefCount":"00000003","Protocol":"00000000","Flags":"00000000","Type":"0001","St":"03","Inode":34722},{"Num":"ffff9b61a7778c00:","RefCount":"00000003","Protocol":"00000000","Flags":"00000000","Type":"0001","St":"03","Inode":38537},{"Num":"ffff9b61a77b8000:","RefCount":"00000003","Protocol":"00000000","Flags":"00000000","Type":"0001","St":"03","Inode":35593},{"Num":"ffff9b61b5a94000:","RefCount":"00000003","Protocol":"00000000","Flags":"00000000","Type":"0001","St":"03","Inode":35262,"Path":"/run/systemd/journal/stdout"},{"Num":"ffff9b61b2799400:","RefCount":"00000003","Protocol":"00000000","Flags":"00000000","Type":"0001","St":"03","Inode":39051},{"Num":"ffff9b61a777b000:","RefCount":"00000003","Protocol":"00000000","Flags":"00000000","Type":"0001","St":"03","Inode":33989},{"Num":"ffff9b61b2c01400:","RefCount":"00000003","Protocol":"00000000","Flags":"00000000","Type":"0001","St":"03","Inode":37547,"Path":"/run/systemd/journal/stdout"},{"Num":"ffff9b61a77bb400:","RefCount":"00000003","Protocol":"00000000","Flags":"00000000","Type":"0001","St":"03","Inode":41833,"Path":"/run/systemd/journal/stdout"},{"Num":"ffff9b61b5a97400:","RefCount":"00000003","Protocol":"00000000","Flags":"00000000","Type":"0001","St":"03","Inode":35983},{"Num":"ffff9b61b4825c00:","RefCount":"00000003","Protocol":"00000000","Flags":"00000000","Type":"0001","St":"03","Inode":35453},{"Num":"ffff9b61a7844800:","RefCount":"00000003","Protocol":"00000000","Flags":"00000000","Type":"0002","St":"01","Inode":34197},{"Num":"ffff9b61a77bb000:","RefCount":"00000003","Protocol":"00000000","Flags":"00000000","Type":"0001","St":"03","Inode":42102},{"Num":"ffff9b61b0e53800:","RefCount":"00000002","Protocol":"00000000","Flags":"00000000","Type":"0002","St":"01","Inode":41844},{"Num":"ffff9b61a7844c00:","RefCount":"00000003","Protocol":"00000000","Flags":"00000000","Type":"0001","St":"03","Inode":37692,"Path":"/run/dbus/system_bus_socket"},{"Num":"ffff9b61a777a000:","RefCount":"00000003","Protocol":"00000000","Flags":"00000000","Type":"0001","St":"03","Inode":36317},{"Num":"ffff9b61b2c00000:","RefCount":"00000003","Protocol":"00000000","Flags":"00000000","Type":"0001","St":"03","Inode":38743},{"Num":"ffff9b61b4824400:","RefCount":"00000002","Protocol":"00000000","Flags":"00000000","Type":"0002","St":"01","Inode":35335},{"Num":"ffff9b61b279b800:","RefCount":"00000003","Protocol":"00000000","Flags":"00000000","Type":"0001","St":"03","Inode":39052,"Path":"/run/dbus/system_bus_socket"},{"Num":"ffff9b61b08e4800:","RefCount":"00000003","Protocol":"00000000","Flags":"00000000","Type":"0001","St":"03","Inode":32702,"Path":"/run/systemd/journal/stdout"},{"Num":"ffff9b61b5a96400:","RefCount":"00000003","Protocol":"00000000","Flags":"00000000","Type":"0002","St":"01","Inode":34730},{"Num":"ffff9b61a777a800:","RefCount":"00000003","Protocol":"00000000","Flags":"00000000","Type":"0001","St":"03","Inode":34066},{"Num":"ffff9b61a77ba400:","RefCount":"00000002","Protocol":"00000000","Flags":"00000000","Type":"0002","St":"01","Inode":30241},{"Num":"ffff9b61b633f800:","RefCount":"00000002","Protocol":"00000000","Flags":"00000000","Type":"0002","St":"01","Inode":30136},{"Num":"ffff9b61b288b800:","RefCount":"00000003","Protocol":"00000000","Flags":"00000000","Type":"0001","St":"03","Inode":37721,"Path":"/run/systemd/journal/stdout"},{"Num":"ffff9b61b48ab800:","RefCount":"00000003","Protocol":"00000000","Flags":"00000000","Type":"0001","St":"03","Inode":39006,"Path":"/run/systemd/journal/stdout"},{"Num":"ffff9b61b0defc00:","RefCount":"00000002","Protocol":"00000000","Flags":"00000000","Type":"0002","St":"01","Inode":42110},{"Num":"ffff9b61b3b5ac00:","RefCount":"00000003","Protocol":"00000000","Flags":"00000000","Type":"0001","St":"03","Inode":39035,"Path":"/run/dbus/system_bus_socket"},{"Num":"ffff9b612acc4800:","RefCount":"00000003","Protocol":"00000000","Flags":"00000000","Type":"0001","St":"03","Inode":104870,"Path":"/run/dbus/system_bus_socket"},{"Num":"ffff9b612acc5000:","RefCount":"00000003","Protocol":"00000000","Flags":"00000000","Type":"0001","St":"03","Inode":103612,"Path":"/run/systemd/journal/stdout"},{"Num":"ffff9b61b4121c00:","RefCount":"00000002","Protocol":"00000000","Flags":"00000000","Type":"0002","St":"01","Inode":37688},{"Num":"ffff9b61ab534400:","RefCount":"00000002","Protocol":"00000000","Flags":"00000000","Type":"0002","St":"01","Inode":40763},{"Num":"ffff9b61b24a3800:","RefCount":"00000003","Protocol":"00000000","Flags":"00000000","Type":"0001","St":"03","Inode":37831},{"Num":"ffff9b61b6334400:","RefCount":"00000002","Protocol":"00000000","Flags":"00000000","Type":"0002","St":"01","Inode":38990},{"Num":"ffff9b612acc2400:","RefCount":"00000003","Protocol":"00000000","Flags":"00000000","Type":"0001","St":"03","Inode":104869},{"Num":"ffff9b61af8ce800:","RefCount":"00000002","Protocol":"00000000","Flags":"00000000","Type":"0002","St":"01","Inode":89141},{"Num":"ffff9b61af8cf000:","RefCount":"00000003","Protocol":"00000000","Flags":"00000000","Type":"0001","St":"03","Inode":86011},{"Num":"ffff9b61b6335000:","RefCount":"00000003","Protocol":"00000000","Flags":"00000000","Type":"0001","St":"03","Inode":38997,"Path":"/run/dbus/system_bus_socket"},{"Num":"ffff9b61b3b5d000:","RefCount":"00000003","Protocol":"00000000","Flags":"00000000","Type":"0001","St":"03","Inode":39038},{"Num":"ffff9b61b4127000:","RefCount":"00000003","Protocol":"00000000","Flags":"00000000","Type":"0001","St":"03","Inode":35808,"Path":"/run/systemd/journal/stdout"},{"Num":"ffff9b61b3b5e400:","RefCount":"00000003","Protocol":"00000000","Flags":"00000000","Type":"0001","St":"03","Inode":37474,"Path":"/run/systemd/journal/stdout"},{"Num":"ffff9b61b42d7c00:","RefCount":"00000002","Protocol":"00000000","Flags":"00000000","Type":"0002","St":"01","Inode":36009},{"Num":"ffff9b61b3b5ec00:","RefCount":"00000003","Protocol":"00000000","Flags":"00000000","Type":"0001","St":"03","Inode":39037},{"Num":"ffff9b61af8cc800:","RefCount":"00000003","Protocol":"00000000","Flags":"00000000","Type":"0001","St":"03","Inode":86012},{"Num":"ffff9b61b3b5e800:","RefCount":"00000003","Protocol":"00000000","Flags":"00000000","Type":"0001","St":"03","Inode":39034},{"Num":"ffff9b61b6337400:","RefCount":"00000003","Protocol":"00000000","Flags":"00000000","Type":"0001","St":"03","Inode":38996},{"Num":"ffff9b61b4125400:","RefCount":"00000003","Protocol":"00000000","Flags":"00000000","Type":"0001","St":"03","Inode":37690},{"Num":"ffff9b61af8cd000:","RefCount":"00000002","Protocol":"00000000","Flags":"00000000","Type":"0002","St":"01","Inode":89121},{"Num":"ffff9b61b288cc00:","RefCount":"00000002","Protocol":"00000000","Flags":"00000000","Type":"0002","St":"01","Inode":85934},{"Num":"ffff9b61b4125000:","RefCount":"00000003","Protocol":"00000000","Flags":"00000000","Type":"0001","St":"03","Inode":37689},{"Num":"ffff9b61b288c000:","RefCount":"00000002","Protocol":"00000000","Flags":"00000000","Type":"0001","St":"03","Inode":85914},{"Num":"ffff9b61b24a0400:","RefCount":"00000003","Protocol":"00000000","Flags":"00000000","Type":"0001","St":"03","Inode":37832,"Path":"/run/dbus/system_bus_socket"},{"Num":"ffff9b61b288c400:","RefCount":"00000003","Protocol":"00000000","Flags":"00000000","Type":"0001","St":"03","Inode":38139}]
diff --git a/tests/test_proc.py b/tests/test_proc.py
index 82bf744c..b96e289b 100644
--- a/tests/test_proc.py
+++ b/tests/test_proc.py
@@ -163,6 +163,9 @@ class MyTests(unittest.TestCase):
'proc_net_route': (
'fixtures/linux-proc/net_route',
'fixtures/linux-proc/net_route.json'),
+ 'proc_net_unix': (
+ 'fixtures/linux-proc/net_unix',
+ 'fixtures/linux-proc/net_unix.json'),
'proc_pid_fdinfo': (
'fixtures/linux-proc/pid_fdinfo',
diff --git a/tests/test_proc_net_unix.py b/tests/test_proc_net_unix.py
new file mode 100644
index 00000000..a5d2ed91
--- /dev/null
+++ b/tests/test_proc_net_unix.py
@@ -0,0 +1,44 @@
+import os
+import unittest
+import json
+from typing import Dict
+import jc.parsers.proc_net_unix
+
+THIS_DIR = os.path.dirname(os.path.abspath(__file__))
+
+
+class MyTests(unittest.TestCase):
+ f_in: Dict = {}
+ f_json: Dict = {}
+
+ @classmethod
+ def setUpClass(cls):
+ fixtures = {
+ 'proc_net_unix': (
+ 'fixtures/linux-proc/net_unix',
+ 'fixtures/linux-proc/net_unix.json')
+ }
+
+ for file, filepaths in fixtures.items():
+ with open(os.path.join(THIS_DIR, filepaths[0]), 'r', encoding='utf-8') as a, \
+ open(os.path.join(THIS_DIR, filepaths[1]), 'r', encoding='utf-8') as b:
+ cls.f_in[file] = a.read()
+ cls.f_json[file] = json.loads(b.read())
+
+
+ def test_proc_net_unix_nodata(self):
+ """
+ Test 'proc_net_unix' with no data
+ """
+ self.assertEqual(jc.parsers.proc_net_unix.parse('', quiet=True), [])
+
+ def test_proc_net_unix(self):
+ """
+ Test '/proc/net/unix'
+ """
+ self.assertEqual(jc.parsers.proc_net_unix.parse(self.f_in['proc_net_unix'], quiet=True),
+ self.f_json['proc_net_unix'])
+
+
+if __name__ == '__main__':
+ unittest.main()