aboutsummaryrefslogtreecommitdiff
path: root/sysutils
diff options
context:
space:
mode:
authorRene Ladan <rene@FreeBSD.org>2020-10-22 11:11:03 +0000
committerRene Ladan <rene@FreeBSD.org>2020-10-22 11:11:03 +0000
commit85da70486cf5e10c48e90ca20699cf3926d05fa8 (patch)
treef9c102180f350c5a749314b8355b44296b8267ce /sysutils
parente4e4c748055c3e9ca2a3eb1b917e6feba67ec433 (diff)
Notes
Diffstat (limited to 'sysutils')
-rw-r--r--sysutils/p5-BSD-Jail-Object/files/patch-Object.pm36
1 files changed, 10 insertions, 26 deletions
diff --git a/sysutils/p5-BSD-Jail-Object/files/patch-Object.pm b/sysutils/p5-BSD-Jail-Object/files/patch-Object.pm
index 1a6e87a310c8..9975f21561c8 100644
--- a/sysutils/p5-BSD-Jail-Object/files/patch-Object.pm
+++ b/sysutils/p5-BSD-Jail-Object/files/patch-Object.pm
@@ -8,9 +8,9 @@
! version information along with the cached data.
! Look at usr.sbin/{jail,jls,jexec} sources for the right ideas.
!
---- ./Object.pm.orig 2006-08-08 04:54:29.000000000 +0000
-+++ ./Object.pm 2008-12-28 14:06:27.000000000 +0000
-@@ -317,21 +317,69 @@
+--- Object.pm.orig 2006-08-08 04:54:29 UTC
++++ Object.pm
+@@ -317,21 +317,56 @@ struct xprison
return NULL;
}
@@ -22,19 +22,13 @@
+_is_jail_ip4(char *string, struct xprison *xp)
+{
+ struct in_addr in;
-+#if ((__FreeBSD_version >= 800056) || (__FreeBSD_version < 800000) && (__FreeBSD_version >= 701103))
+ struct in_addr *iap;
+ char *q;
+ int i;
-+#endif
+
+ if (inet_pton(AF_INET, string, &in) != 1)
+ return (0);
+
-+#if ((__FreeBSD_version >= 800000 && __FreeBSD_version < 800056) || __FreeBSD_version < 701103)
-+ if (in.s_addr == xp->pr_ip)
-+ return (1);
-+#else
+ if (xp->pr_ip4s == 0)
+ return (0);
+ q = (char *)(xp + 1);
@@ -42,21 +36,15 @@
+ for (i=0; i < xp->pr_ip4s; i++)
+ if (in.s_addr == iap[i].s_addr)
+ return (1);
-+#endif
+ return (0);
+}
+
+static void
+_get_jail_ip4(struct xprison *xp, struct in_addr *ia)
+{
-+#if ((__FreeBSD_version >= 800056) || (__FreeBSD_version < 800000) && (__FreeBSD_version >= 701103))
+ struct in_addr *iap;
+ char *q;
-+#endif
+
-+#if ((__FreeBSD_version >= 800000 && __FreeBSD_version < 800056) || __FreeBSD_version < 701103)
-+ ia->s_addr = xp->pr_ip;
-+#else
+ if (xp->pr_ip4s == 0)
+ ia->s_addr = 0;
+ else {
@@ -64,7 +52,6 @@
+ iap = (struct in_addr *)(void *)q;
+ ia->s_addr = iap[0].s_addr;
+ }
-+#endif
+}
+
// fetch a specific jail's information
@@ -83,7 +70,7 @@
len = sysctl_len();
/*
-@@ -341,15 +389,15 @@
+@@ -341,15 +376,15 @@ _find_jail( int compare, char *string )
*/
for (i = 0; i < len / sizeof(*xp); i++) {
@@ -101,7 +88,7 @@
Inline_Stack_Push( sv_2mortal( newSVpvf( inet_ntoa(in) ) ));
Inline_Stack_Push( sv_2mortal( newSVpvf( xp->pr_host ) ));
Inline_Stack_Push( sv_2mortal( newSVpvf( xp->pr_path ) ));
-@@ -360,6 +408,7 @@
+@@ -360,6 +395,7 @@ _find_jail( int compare, char *string )
}
}
@@ -109,7 +96,7 @@
Inline_Stack_Done;
}
-@@ -367,12 +416,12 @@
+@@ -367,12 +403,12 @@ _find_jail( int compare, char *string )
void
_find_jids()
{
@@ -124,7 +111,7 @@
len = sysctl_len();
for (i = 0; i < len / sizeof(*xp); i++) {
-@@ -380,6 +429,7 @@
+@@ -380,6 +416,7 @@ _find_jids()
xp++;
}
@@ -132,18 +119,15 @@
Inline_Stack_Done;
}
-@@ -402,8 +452,14 @@
+@@ -402,8 +439,9 @@ _create( char *path, char *hostname, char *ipaddr )
j.path = path;
j.hostname = hostname;
-+#if ((__FreeBSD_version >= 800000 && __FreeBSD_version < 800056) || __FreeBSD_version < 701103)
- j.ip_number = ntohl( ip.s_addr );
- j.version = 0;
-+#else
+- j.ip_number = ntohl( ip.s_addr );
+- j.version = 0;
+ j.version = JAIL_API_VERSION;
+ j.ip4s = 1;
+ j.ip4 = &ip;
-+#endif
if ( (jid = jail( &j )) == -1 ) return 0;