diff options
author | Rene Ladan <rene@FreeBSD.org> | 2020-10-22 11:11:03 +0000 |
---|---|---|
committer | Rene Ladan <rene@FreeBSD.org> | 2020-10-22 11:11:03 +0000 |
commit | 85da70486cf5e10c48e90ca20699cf3926d05fa8 (patch) | |
tree | f9c102180f350c5a749314b8355b44296b8267ce /sysutils | |
parent | e4e4c748055c3e9ca2a3eb1b917e6feba67ec433 (diff) |
Notes
Diffstat (limited to 'sysutils')
-rw-r--r-- | sysutils/p5-BSD-Jail-Object/files/patch-Object.pm | 36 |
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; |