X-Git-Url: http://git.linux-vserver.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=util-vserver%2Fsrc%2Fchbind.c;h=285fe1c2c3e9b798826ad61f05d673403e8f6887;hb=a917f24ef7b003dcef54a3db2644cf9cb4bc2db2;hp=90bf13ccaacc17064d6f57fb4ab10be0c459a681;hpb=0e682b2d060bbf4e3178f942408c900625a92696;p=util-vserver.git diff --git a/util-vserver/src/chbind.c b/util-vserver/src/chbind.c index 90bf13c..285fe1c 100644 --- a/util-vserver/src/chbind.c +++ b/util-vserver/src/chbind.c @@ -38,6 +38,7 @@ #include #include +#define ENSC_WRAPPERS_PREFIX "chbind: " #define ENSC_WRAPPERS_IO 1 #define ENSC_WRAPPERS_UNISTD 1 #include "wrappers.h" @@ -238,10 +239,11 @@ readBcast(char const *str, uint32_t *bcast) int main (int argc, char *argv[]) { - bool is_silent = false; - struct vc_ip_mask_pair ips[16]; + size_t const nb_ipv4root = vc_get_nb_ipv4root(); + bool is_silent = false; + struct vc_ip_mask_pair ips[nb_ipv4root]; size_t nbaddrs = 0; - uint32_t bcast = 0xffffffff; + uint32_t bcast = 0xffffffff; while (1) { int c = getopt_long(argc, argv, "+", CMDLINE_OPTIONS, 0); @@ -253,7 +255,7 @@ int main (int argc, char *argv[]) case CMD_SILENT : is_silent = true; break; case CMD_BCAST : readBcast(optarg, &bcast); break; case CMD_IP : - if (nbaddrs>=16) { + if (nbaddrs>=nb_ipv4root) { WRITE_MSG(2, "Too many IP numbers, max 16\n"); exit(wrapper_exit_code); } @@ -276,7 +278,7 @@ int main (int argc, char *argv[]) if (vc_set_ipv4root(bcast,nbaddrs,ips)!=0) { - perror("vc_set_ipv4root()"); + perror("chbind: vc_set_ipv4root()"); exit(wrapper_exit_code); } @@ -302,7 +304,6 @@ void test() { struct vc_ip_mask_pair ip; uint32_t bcast; - uint32_t tmp; bcast = 0; readIP("1.2.3.4", &ip, &bcast); @@ -317,9 +318,11 @@ void test() readIP("localhost", &ip, &bcast); assert(ip.ip==ntohl(0x7f000001) && ip.mask==ntohl(0xffffff00) && bcast==0); +#if 0 if (ifconfig_getaddr("lo", &tmp, &tmp, &tmp)!=-1) { readIP("lo", &ip, &bcast); assert(ip.ip==ntohl(0x7f000001) && ip.mask==ntohl(0xff000000) && bcast==ntohl(0x7fffffff)); } +#endif } #endif