diff -ru ipvs-0.9.4-vanilla/ipvs/ipvsadm/Makefile ipvs-0.9.4/ipvs/ipvsadm/Makefile --- ipvs-0.9.4-vanilla/ipvs/ipvsadm/Makefile Tue Sep 18 17:42:54 2001 +++ ipvs-0.9.4/ipvs/ipvsadm/Makefile Thu Nov 1 23:20:10 2001 @@ -34,10 +34,15 @@ SBIN = $(BUILD_ROOT)/sbin MAN = $(BUILD_ROOT)/usr/man/man8 INIT = $(BUILD_ROOT)/etc/rc.d/init.d +PREFIX = $(BUILD_ROOT)/usr/local +LIBDIR = $(PREFIX)/lib +INCDIR = $(PREFIX)/include/ipvs MKDIR = mkdir INSTALL = install INCLUDE = -I/usr/src/linux/include -I.. -I. STATIC_LIBS = libipvs/libipvs.a +SHARED_LIBS = libipvs/libipvs.so + ##################################### @@ -68,13 +73,24 @@ DEFINES = -DVERSION=\"$(VERSION)\" -DSCHEDULERS=\"$(SCHEDULERS)\" \ $(POPT_DEFINE) $(IP_VS_H_DEFINE) -.PHONY = all clean install dist distclean rpm rpms +.PHONY = all clean install dist distclean rpm rpms shared-libs all: ipvsadm ipvsadm: $(OBJS) $(STATIC_LIBS) $(CC) $(CFLAGS) -o $@ $^ $(LIBS) +libs: libipvs/libipvs.o $(STATIC_LIBS) + $(CC) $(CFLAGS) $(INCLUDE) $(DEFINES) -shared -o $(SHARED_LIBS) libipvs/libipvs.o + +libs-install: libs + $(INSTALL) -m 0755 $(SHARED_LIBS) $(LIBDIR)/libipvs.so + $(INSTALL) -m 0755 $(STATIC_LIBS) $(LIBDIR)/libipvs.a + if [ ! -d $(INCDIR) ]; then $(MKDIR) -p $(INCDIR); fi + $(INSTALL) -m 0755 libipvs/libipvs.h $(INCDIR)/libipvs.h + /sbin/ldconfig $(LIBDIR) + + install: ipvsadm strip ipvsadm if [ ! -d $(SBIN) ]; then $(MKDIR) -p $(SBIN); fi @@ -92,7 +108,7 @@ clean: rm -f ipvsadm $(NAME).spec $(NAME)-$(VERSION).tar.gz rm -rf debian/tmp - find . -name '*.[ao]' -o -name "*~" -o -name "*.orig" \ + find . -name '*.[ao]' -o -name "*.so" -o -name "*~" -o -name "*.orig" \ -o -name "*.rej" -o -name core | xargs rm -f distclean: dist diff -ru ipvs-0.9.4-vanilla/ipvs/ipvsadm/ipvsadm.c ipvs-0.9.4/ipvs/ipvsadm/ipvsadm.c --- ipvs-0.9.4-vanilla/ipvs/ipvsadm/ipvsadm.c Tue Sep 18 17:42:54 2001 +++ ipvs-0.9.4/ipvs/ipvsadm/ipvsadm.c Thu Nov 1 22:16:27 2001 @@ -337,7 +337,7 @@ {"udp-service", 'u', POPT_ARG_STRING, &optarg, 'u'}, {"fwmark-service", 'f', POPT_ARG_STRING, &optarg, 'f'}, {"scheduler", 's', POPT_ARG_STRING, &optarg, 's'}, - {"persistent", 'p', POPT_ARG_STRING|POPT_ARGFLAG_OPTIONAL, + {"persistent", 'p', POPT_ARG_STRING, &optarg, 'p'}, {"netmask", 'M', POPT_ARG_STRING, &optarg, 'M'}, {"real-server", 'r', POPT_ARG_STRING, &optarg, 'r'}, diff -ru ipvs-0.9.4-vanilla/ipvs/ipvsadm/libipvs/libipvs.c ipvs-0.9.4/ipvs/ipvsadm/libipvs/libipvs.c --- ipvs-0.9.4-vanilla/ipvs/ipvsadm/libipvs/libipvs.c Tue Sep 18 17:42:54 2001 +++ ipvs-0.9.4/ipvs/ipvsadm/libipvs/libipvs.c Thu Nov 1 23:02:17 2001 @@ -42,6 +42,18 @@ return 0; } +int ipvs_refresh_num_services(void) +{ + socklen_t len; + + len = sizeof(ipvs_info); + + if (getsockopt(sockfd, IPPROTO_IP, IP_VS_SO_GET_INFO, + (char *)&ipvs_info, &len)) + return -1; + + return 0; +} unsigned int ipvs_version(void) { diff -ru ipvs-0.9.4-vanilla/ipvs/ipvsadm/libipvs/libipvs.h ipvs-0.9.4/ipvs/ipvsadm/libipvs/libipvs.h --- ipvs-0.9.4-vanilla/ipvs/ipvsadm/libipvs/libipvs.h Tue Sep 18 17:42:54 2001 +++ ipvs-0.9.4/ipvs/ipvsadm/libipvs/libipvs.h Mon Oct 29 14:51:14 2001 @@ -13,6 +13,9 @@ /* init socket and get ipvs info */ extern int ipvs_init(void); +/* refreshes the static ipvs_info.numservices */ +extern int ipvs_refresh_num_services(void); + /* get the version number */ extern unsigned int ipvs_version(void);