shithub: netgraph

Download patch

ref: e78b5e27f582a692b81369be4614d0a7b8eee9cb
parent: 4432f986824b5c1faaec19a218a6b48c15161944
author: sirjofri <sirjofri@sirjofri.de>
date: Sun Aug 31 06:28:40 EDT 2025

adds pdf injection

--- a/netgraph.c
+++ b/netgraph.c
@@ -9,7 +9,7 @@
 static void
 usage(void)
 {
-	fprint(2, "usage: %s [-i] [-s systuples] [-n ipnettuples]\n", argv0);
+	fprint(2, "usage: %s [-ip] [-s systuples] [-n ipnettuples]\n", argv0);
 	exits("usage");
 }
 
@@ -184,6 +184,32 @@
 	dblock(n);
 }
 
+static void
+injectpdfout(void)
+{
+	char *size;
+	int p[2];
+	
+	pipe(p);
+	
+	switch (fork()) {
+	case -1:
+		sysfatal("fork: %r");
+	case 0:
+		break;
+	default: /* parent */
+		dup(p[0], 1);
+		close(p[1]);
+		return;
+	}
+	/* child */
+	dup(p[1], 0);
+	close(p[0]);
+	size = smprint("-g%dx%d", pagewidth, pageheight);
+	execl("/bin/ps2pdf", "ps2pdf", size, "-r72", nil);
+	sysfatal("execl: %r");
+}
+
 void
 main(int argc, char **argv)
 {
@@ -193,6 +219,7 @@
 	char *ntp = "ipnet,ip,ipmask,ipgw,authdom,auth,fs,dns";
 	char *s;
 	int i;
+	int pdf = 0;
 	
 	ARGBEGIN{
 	case 'h':
@@ -209,7 +236,13 @@
 	case 'i':
 		showipnet++;
 		break;
+	case 'p':
+		pdf++;
+		break;
 	}ARGEND;
+	
+	if (pdf)
+		injectpdfout();
 	
 	nsystuples = getfields(stp, systuples, MAXSYSTP, 1, ",");
 	nipnettuples = getfields(ntp, ipnettuples, MAXSYSTP, 1, ",");
--