[libnfnetlink: 3/3] Working rollup

Paul Komkoff stingray at fedoraproject.org
Sun Nov 27 21:53:49 UTC 2011


commit 7edd4b0dec455fcead6675dbb7d0432ef81d520f
Author: Paul P. Komkoff <i at stingr.net>
Date:   Mon Nov 28 01:52:54 2011 +0400

    Working rollup

 gpl.txt                   |  340 ----------------------
 libnfnetlink-rollup.patch |  699 +++++++++++++++++++++++++++++++++++++++++++++
 libnfnetlink.spec         |   11 +-
 3 files changed, 706 insertions(+), 344 deletions(-)
---
diff --git a/libnfnetlink-rollup.patch b/libnfnetlink-rollup.patch
new file mode 100644
index 0000000..ea0f8b6
--- /dev/null
+++ b/libnfnetlink-rollup.patch
@@ -0,0 +1,699 @@
+diff --git a/.gitignore b/.gitignore
+new file mode 100644
+index 0000000..c7acff2
+--- /dev/null
++++ b/.gitignore
+@@ -0,0 +1,21 @@
++.deps
++.libs
++Makefile
++Makefile.in
++*.o
++*.la
++*.lo
++
++/aclocal.m4
++/autom4te.cache
++/compile
++/config.*
++/configure
++/depcomp
++/install-sh
++/libtool
++/ltmain.sh
++/missing
++/stamp-h1
++
++/*.pc
+diff --git a/COPYING b/COPYING
+new file mode 100644
+index 0000000..a43ea21
+--- /dev/null
++++ b/COPYING
+@@ -0,0 +1,339 @@
++		    GNU GENERAL PUBLIC LICENSE
++		       Version 2, June 1991
++
++ Copyright (C) 1989, 1991 Free Software Foundation, Inc.
++                          675 Mass Ave, Cambridge, MA 02139, USA
++ Everyone is permitted to copy and distribute verbatim copies
++ of this license document, but changing it is not allowed.
++
++			    Preamble
++
++  The licenses for most software are designed to take away your
++freedom to share and change it.  By contrast, the GNU General Public
++License is intended to guarantee your freedom to share and change free
++software--to make sure the software is free for all its users.  This
++General Public License applies to most of the Free Software
++Foundation's software and to any other program whose authors commit to
++using it.  (Some other Free Software Foundation software is covered by
++the GNU Library General Public License instead.)  You can apply it to
++your programs, too.
++
++  When we speak of free software, we are referring to freedom, not
++price.  Our General Public Licenses are designed to make sure that you
++have the freedom to distribute copies of free software (and charge for
++this service if you wish), that you receive source code or can get it
++if you want it, that you can change the software or use pieces of it
++in new free programs; and that you know you can do these things.
++
++  To protect your rights, we need to make restrictions that forbid
++anyone to deny you these rights or to ask you to surrender the rights.
++These restrictions translate to certain responsibilities for you if you
++distribute copies of the software, or if you modify it.
++
++  For example, if you distribute copies of such a program, whether
++gratis or for a fee, you must give the recipients all the rights that
++you have.  You must make sure that they, too, receive or can get the
++source code.  And you must show them these terms so they know their
++rights.
++
++  We protect your rights with two steps: (1) copyright the software, and
++(2) offer you this license which gives you legal permission to copy,
++distribute and/or modify the software.
++
++  Also, for each author's protection and ours, we want to make certain
++that everyone understands that there is no warranty for this free
++software.  If the software is modified by someone else and passed on, we
++want its recipients to know that what they have is not the original, so
++that any problems introduced by others will not reflect on the original
++authors' reputations.
++
++  Finally, any free program is threatened constantly by software
++patents.  We wish to avoid the danger that redistributors of a free
++program will individually obtain patent licenses, in effect making the
++program proprietary.  To prevent this, we have made it clear that any
++patent must be licensed for everyone's free use or not licensed at all.
++
++  The precise terms and conditions for copying, distribution and
++modification follow.
++
++		    GNU GENERAL PUBLIC LICENSE
++   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
++
++  0. This License applies to any program or other work which contains
++a notice placed by the copyright holder saying it may be distributed
++under the terms of this General Public License.  The "Program", below,
++refers to any such program or work, and a "work based on the Program"
++means either the Program or any derivative work under copyright law:
++that is to say, a work containing the Program or a portion of it,
++either verbatim or with modifications and/or translated into another
++language.  (Hereinafter, translation is included without limitation in
++the term "modification".)  Each licensee is addressed as "you".
++
++Activities other than copying, distribution and modification are not
++covered by this License; they are outside its scope.  The act of
++running the Program is not restricted, and the output from the Program
++is covered only if its contents constitute a work based on the
++Program (independent of having been made by running the Program).
++Whether that is true depends on what the Program does.
++
++  1. You may copy and distribute verbatim copies of the Program's
++source code as you receive it, in any medium, provided that you
++conspicuously and appropriately publish on each copy an appropriate
++copyright notice and disclaimer of warranty; keep intact all the
++notices that refer to this License and to the absence of any warranty;
++and give any other recipients of the Program a copy of this License
++along with the Program.
++
++You may charge a fee for the physical act of transferring a copy, and
++you may at your option offer warranty protection in exchange for a fee.
++
++  2. You may modify your copy or copies of the Program or any portion
++of it, thus forming a work based on the Program, and copy and
++distribute such modifications or work under the terms of Section 1
++above, provided that you also meet all of these conditions:
++
++    a) You must cause the modified files to carry prominent notices
++    stating that you changed the files and the date of any change.
++
++    b) You must cause any work that you distribute or publish, that in
++    whole or in part contains or is derived from the Program or any
++    part thereof, to be licensed as a whole at no charge to all third
++    parties under the terms of this License.
++
++    c) If the modified program normally reads commands interactively
++    when run, you must cause it, when started running for such
++    interactive use in the most ordinary way, to print or display an
++    announcement including an appropriate copyright notice and a
++    notice that there is no warranty (or else, saying that you provide
++    a warranty) and that users may redistribute the program under
++    these conditions, and telling the user how to view a copy of this
++    License.  (Exception: if the Program itself is interactive but
++    does not normally print such an announcement, your work based on
++    the Program is not required to print an announcement.)
++
++These requirements apply to the modified work as a whole.  If
++identifiable sections of that work are not derived from the Program,
++and can be reasonably considered independent and separate works in
++themselves, then this License, and its terms, do not apply to those
++sections when you distribute them as separate works.  But when you
++distribute the same sections as part of a whole which is a work based
++on the Program, the distribution of the whole must be on the terms of
++this License, whose permissions for other licensees extend to the
++entire whole, and thus to each and every part regardless of who wrote it.
++
++Thus, it is not the intent of this section to claim rights or contest
++your rights to work written entirely by you; rather, the intent is to
++exercise the right to control the distribution of derivative or
++collective works based on the Program.
++
++In addition, mere aggregation of another work not based on the Program
++with the Program (or with a work based on the Program) on a volume of
++a storage or distribution medium does not bring the other work under
++the scope of this License.
++
++  3. You may copy and distribute the Program (or a work based on it,
++under Section 2) in object code or executable form under the terms of
++Sections 1 and 2 above provided that you also do one of the following:
++
++    a) Accompany it with the complete corresponding machine-readable
++    source code, which must be distributed under the terms of Sections
++    1 and 2 above on a medium customarily used for software interchange; or,
++
++    b) Accompany it with a written offer, valid for at least three
++    years, to give any third party, for a charge no more than your
++    cost of physically performing source distribution, a complete
++    machine-readable copy of the corresponding source code, to be
++    distributed under the terms of Sections 1 and 2 above on a medium
++    customarily used for software interchange; or,
++
++    c) Accompany it with the information you received as to the offer
++    to distribute corresponding source code.  (This alternative is
++    allowed only for noncommercial distribution and only if you
++    received the program in object code or executable form with such
++    an offer, in accord with Subsection b above.)
++
++The source code for a work means the preferred form of the work for
++making modifications to it.  For an executable work, complete source
++code means all the source code for all modules it contains, plus any
++associated interface definition files, plus the scripts used to
++control compilation and installation of the executable.  However, as a
++special exception, the source code distributed need not include
++anything that is normally distributed (in either source or binary
++form) with the major components (compiler, kernel, and so on) of the
++operating system on which the executable runs, unless that component
++itself accompanies the executable.
++
++If distribution of executable or object code is made by offering
++access to copy from a designated place, then offering equivalent
++access to copy the source code from the same place counts as
++distribution of the source code, even though third parties are not
++compelled to copy the source along with the object code.
++
++  4. You may not copy, modify, sublicense, or distribute the Program
++except as expressly provided under this License.  Any attempt
++otherwise to copy, modify, sublicense or distribute the Program is
++void, and will automatically terminate your rights under this License.
++However, parties who have received copies, or rights, from you under
++this License will not have their licenses terminated so long as such
++parties remain in full compliance.
++
++  5. You are not required to accept this License, since you have not
++signed it.  However, nothing else grants you permission to modify or
++distribute the Program or its derivative works.  These actions are
++prohibited by law if you do not accept this License.  Therefore, by
++modifying or distributing the Program (or any work based on the
++Program), you indicate your acceptance of this License to do so, and
++all its terms and conditions for copying, distributing or modifying
++the Program or works based on it.
++
++  6. Each time you redistribute the Program (or any work based on the
++Program), the recipient automatically receives a license from the
++original licensor to copy, distribute or modify the Program subject to
++these terms and conditions.  You may not impose any further
++restrictions on the recipients' exercise of the rights granted herein.
++You are not responsible for enforcing compliance by third parties to
++this License.
++
++  7. If, as a consequence of a court judgment or allegation of patent
++infringement or for any other reason (not limited to patent issues),
++conditions are imposed on you (whether by court order, agreement or
++otherwise) that contradict the conditions of this License, they do not
++excuse you from the conditions of this License.  If you cannot
++distribute so as to satisfy simultaneously your obligations under this
++License and any other pertinent obligations, then as a consequence you
++may not distribute the Program at all.  For example, if a patent
++license would not permit royalty-free redistribution of the Program by
++all those who receive copies directly or indirectly through you, then
++the only way you could satisfy both it and this License would be to
++refrain entirely from distribution of the Program.
++
++If any portion of this section is held invalid or unenforceable under
++any particular circumstance, the balance of the section is intended to
++apply and the section as a whole is intended to apply in other
++circumstances.
++
++It is not the purpose of this section to induce you to infringe any
++patents or other property right claims or to contest validity of any
++such claims; this section has the sole purpose of protecting the
++integrity of the free software distribution system, which is
++implemented by public license practices.  Many people have made
++generous contributions to the wide range of software distributed
++through that system in reliance on consistent application of that
++system; it is up to the author/donor to decide if he or she is willing
++to distribute software through any other system and a licensee cannot
++impose that choice.
++
++This section is intended to make thoroughly clear what is believed to
++be a consequence of the rest of this License.
++
++  8. If the distribution and/or use of the Program is restricted in
++certain countries either by patents or by copyrighted interfaces, the
++original copyright holder who places the Program under this License
++may add an explicit geographical distribution limitation excluding
++those countries, so that distribution is permitted only in or among
++countries not thus excluded.  In such case, this License incorporates
++the limitation as if written in the body of this License.
++
++  9. The Free Software Foundation may publish revised and/or new versions
++of the General Public License from time to time.  Such new versions will
++be similar in spirit to the present version, but may differ in detail to
++address new problems or concerns.
++
++Each version is given a distinguishing version number.  If the Program
++specifies a version number of this License which applies to it and "any
++later version", you have the option of following the terms and conditions
++either of that version or of any later version published by the Free
++Software Foundation.  If the Program does not specify a version number of
++this License, you may choose any version ever published by the Free Software
++Foundation.
++
++  10. If you wish to incorporate parts of the Program into other free
++programs whose distribution conditions are different, write to the author
++to ask for permission.  For software which is copyrighted by the Free
++Software Foundation, write to the Free Software Foundation; we sometimes
++make exceptions for this.  Our decision will be guided by the two goals
++of preserving the free status of all derivatives of our free software and
++of promoting the sharing and reuse of software generally.
++
++			    NO WARRANTY
++
++  11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
++FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN
++OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
++PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
++OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
++MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS
++TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE
++PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
++REPAIR OR CORRECTION.
++
++  12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
++WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
++REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
++INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
++OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
++TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
++YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
++PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
++POSSIBILITY OF SUCH DAMAGES.
++
++		     END OF TERMS AND CONDITIONS
++
++	Appendix: How to Apply These Terms to Your New Programs
++
++  If you develop a new program, and you want it to be of the greatest
++possible use to the public, the best way to achieve this is to make it
++free software which everyone can redistribute and change under these terms.
++
++  To do so, attach the following notices to the program.  It is safest
++to attach them to the start of each source file to most effectively
++convey the exclusion of warranty; and each file should have at least
++the "copyright" line and a pointer to where the full notice is found.
++
++    <one line to give the program's name and a brief idea of what it does.>
++    Copyright (C) 19yy  <name of author>
++
++    This program is free software; you can redistribute it and/or modify
++    it under the terms of the GNU General Public License as published by
++    the Free Software Foundation; either version 2 of the License, or
++    (at your option) any later version.
++
++    This program is distributed in the hope that it will be useful,
++    but WITHOUT ANY WARRANTY; without even the implied warranty of
++    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
++    GNU General Public License for more details.
++
++    You should have received a copy of the GNU General Public License
++    along with this program; if not, write to the Free Software
++    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
++
++Also add information on how to contact you by electronic and paper mail.
++
++If the program is interactive, make it output a short notice like this
++when it starts in an interactive mode:
++
++    Gnomovision version 69, Copyright (C) 19yy name of author
++    Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
++    This is free software, and you are welcome to redistribute it
++    under certain conditions; type `show c' for details.
++
++The hypothetical commands `show w' and `show c' should show the appropriate
++parts of the General Public License.  Of course, the commands you use may
++be called something other than `show w' and `show c'; they could even be
++mouse-clicks or menu items--whatever suits your program.
++
++You should also get your employer (if you work as a programmer) or your
++school, if any, to sign a "copyright disclaimer" for the program, if
++necessary.  Here is a sample; alter the names:
++
++  Yoyodyne, Inc., hereby disclaims all copyright interest in the program
++  `Gnomovision' (which makes passes at compilers) written by James Hacker.
++
++  <signature of Ty Coon>, 1 April 1989
++  Ty Coon, President of Vice
++
++This General Public License does not permit incorporating your program into
++proprietary programs.  If your program is a subroutine library, you may
++consider it more useful to permit linking proprietary applications with the
++library.  If this is what you want to do, use the GNU Library General
++Public License instead of this License.
+diff --git a/Make_global.am b/Make_global.am
+index b62b712..f091860 100644
+--- a/Make_global.am
++++ b/Make_global.am
+@@ -4,4 +4,5 @@
+ # http://sources.redhat.com/autobook/autobook/autobook_91.html
+ LIBVERSION=2:0:2
+ 
+-INCLUDES=$(all_includes) -I$(top_srcdir)/include
++AM_CPPFLAGS = -I$(top_srcdir)/include
++AM_CFLAGS = -Wall
+diff --git a/Makefile.am b/Makefile.am
+index 91e2670..d38da7d 100644
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -1,6 +1,6 @@
+ include $(top_srcdir)/Make_global.am
+ 
+-AUTOMAKE_OPTIONS = foreign dist-bzip2 1.6
++ACLOCAL_AMFLAGS = -I m4
+ 
+ EXTRA_DIST = $(man_MANS)
+ 
+@@ -12,9 +12,5 @@ man_MANS = #nfnetlink.3
+ pkgconfigdir = $(libdir)/pkgconfig
+ pkgconfig_DATA = libnfnetlink.pc
+ 
+-$(OBJECTS): libtool
+-libtool: $(LIBTOOL_DEPS)
+-	$(SHELL) ./config.status --recheck
+-
+ dist-hook:
+ 	rm -rf `find $(distdir)/debian -name .svn`
+diff --git a/README b/README
+index c6cff46..4a5631d 100644
+--- a/README
++++ b/README
+@@ -38,6 +38,11 @@ Please report all libnfnetlink bugs to https://bugzilla.netfilter.org/, using
+ the "libnfnetlink" Product.
+ 
+ 
++License
++
++This library is released under GPLv2+.
++
++
+ Where do I get support?
+ 
+ The netfilter at lists.netfilter.org and netfilter-devel at lists.netfilter.org
+diff --git a/autogen.sh b/autogen.sh
+index c167563..de861fc 100755
+diff --git a/configure.ac b/configure.ac
+new file mode 100644
+index 0000000..25a5b41
+--- /dev/null
++++ b/configure.ac
+@@ -0,0 +1,28 @@
++dnl Process this file with autoconf to create configure.
++
++AC_INIT(libnfnetlink, 1.0.0)
++AC_CONFIG_MACRO_DIR([m4])
++AC_CANONICAL_HOST
++
++AM_INIT_AUTOMAKE([-Wall foreign subdir-objects dist-bzip2 1.6])
++
++AC_PROG_CC
++AM_PROG_CC_C_O
++AC_EXEEXT
++AC_DISABLE_STATIC
++AM_PROG_LIBTOOL
++
++case "$host" in 
++*-*-linux*) ;;
++*) AC_MSG_ERROR([Linux only, dude!]);;
++esac
++
++
++dnl--------------------------------
++dnl--------------------------------
++
++
++dnl Output the makefile
++AC_CONFIG_FILES([Makefile src/Makefile include/Makefile
++	include/libnfnetlink/Makefile utils/Makefile libnfnetlink.pc])
++AC_OUTPUT
+diff --git a/configure.in b/configure.in
+deleted file mode 100644
+index 47f3551..0000000
+--- a/configure.in
++++ /dev/null
+@@ -1,25 +0,0 @@
+-dnl Process this file with autoconf to create configure.
+-
+-AC_INIT(libnfnetlink, 1.0.0)
+-
+-AC_CANONICAL_SYSTEM
+-
+-AM_INIT_AUTOMAKE
+-
+-AC_PROG_CC
+-AC_EXEEXT
+-AM_PROG_LIBTOOL
+-AC_SUBST(LIBTOOL_DEPS)
+-
+-case $target in 
+-*-*-linux*) ;;
+-*) AC_MSG_ERROR([Linux only, dude!]);;
+-esac
+-
+-
+-dnl--------------------------------
+-dnl--------------------------------
+-
+-
+-dnl Output the makefile
+-AC_OUTPUT(Makefile src/Makefile include/Makefile include/libnfnetlink/Makefile utils/Makefile libnfnetlink.pc)
+diff --git a/debian/changelog b/debian/changelog
+deleted file mode 100644
+index e5e8b58..0000000
+diff --git a/debian/control b/debian/control
+deleted file mode 100644
+index b3ed95a..0000000
+diff --git a/debian/copyright b/debian/copyright
+deleted file mode 100644
+index b4bac2e..0000000
+diff --git a/debian/libnfnetlink-dev.install b/debian/libnfnetlink-dev.install
+deleted file mode 100644
+index 5cc336f..0000000
+diff --git a/debian/libnfnetlink0.install b/debian/libnfnetlink0.install
+deleted file mode 100644
+index 093956b..0000000
+diff --git a/debian/rules b/debian/rules
+deleted file mode 100755
+index 54719e8..0000000
+diff --git a/m4/.gitignore b/m4/.gitignore
+new file mode 100644
+index 0000000..64d9bbc
+--- /dev/null
++++ b/m4/.gitignore
+@@ -0,0 +1,2 @@
++/libtool.m4
++/lt*.m4
+diff --git a/src/Makefile.am b/src/Makefile.am
+index cc400b9..d0098cc 100644
+--- a/src/Makefile.am
++++ b/src/Makefile.am
+@@ -1,8 +1,5 @@
+ include $(top_srcdir)/Make_global.am
+ 
+-AM_CFLAGS=-fPIC -Wall
+-LIBS=
+-
+ lib_LTLIBRARIES = libnfnetlink.la
+ 
+ libnfnetlink_la_LDFLAGS = -Wc,-nostartfiles	\
+diff --git a/src/iftable.c b/src/iftable.c
+index f316217..959249a 100644
+--- a/src/iftable.c
++++ b/src/iftable.c
+@@ -55,7 +55,7 @@ static int iftable_add(struct nlmsghdr *n, void *arg)
+ 	struct ifinfomsg *ifi_msg = NLMSG_DATA(n);
+ 	struct ifindex_node *this;
+ 	struct rtattr *cb[IFLA_MAX+1];
+-	struct nlif_handle *h = (struct nlif_handle *)arg;
++	struct nlif_handle *h = arg;
+ 
+ 	if (n->nlmsg_type != RTM_NEWLINK)
+ 		return -1;
+@@ -115,7 +115,7 @@ static int iftable_del(struct nlmsghdr *n, void *arg)
+ {
+ 	struct ifinfomsg *ifi_msg = NLMSG_DATA(n);
+ 	struct rtattr *cb[IFLA_MAX+1];
+-	struct nlif_handle *h = (struct nlif_handle *)arg;
++	struct nlif_handle *h = arg;
+ 	struct ifindex_node *this, *tmp;
+ 	unsigned int hash;
+ 
+@@ -245,7 +245,7 @@ struct nlif_handle *nlif_open(void)
+ 	return h;
+ 
+ err_unregister:
+-	rtnl_handler_unregister(h->rtnl_handle, &h->ifdel_handler);
++	rtnl_handler_unregister(h->rtnl_handle, &h->ifadd_handler);
+ err_close:
+ 	rtnl_close(h->rtnl_handle);
+ 	free(h);
+diff --git a/src/libnfnetlink.c b/src/libnfnetlink.c
+index b048d2b..0234e6f 100644
+--- a/src/libnfnetlink.c
++++ b/src/libnfnetlink.c
+@@ -445,8 +445,7 @@ void nfnl_fill_hdr(struct nfnl_subsys_handle *ssh,
+ 	assert(ssh);
+ 	assert(nlh);
+ 
+-	struct nfgenmsg *nfg = (struct nfgenmsg *) 
+-					((void *)nlh + sizeof(*nlh));
++	struct nfgenmsg *nfg = (void *)nlh + sizeof(*nlh);
+ 
+ 	nlh->nlmsg_len = NLMSG_LENGTH(len+sizeof(*nfg));
+ 	nlh->nlmsg_type = (ssh->subsys_id<<8)|msg_type;
+@@ -478,14 +477,14 @@ nfnl_parse_hdr(const struct nfnl_handle *nfnlh,
+ 
+ 	if (nlh->nlmsg_len == NLMSG_LENGTH(sizeof(struct nfgenmsg))) {
+ 		if (genmsg)
+-			*genmsg = (struct nfgenmsg *)((void *)nlh+sizeof(nlh));
++			*genmsg = (void *)nlh + sizeof(*nlh);
+ 		return NULL;
+ 	}
+ 
+ 	if (genmsg)
+-		*genmsg = (struct nfgenmsg *)((void *)nlh + sizeof(nlh));
++		*genmsg = (void *)nlh + sizeof(*nlh);
+ 
+-	return ((void *)nlh + NLMSG_LENGTH(sizeof(struct nfgenmsg)));
++	return (void *)nlh + NLMSG_LENGTH(sizeof(struct nfgenmsg));
+ }
+ 
+ /**
+@@ -575,10 +574,10 @@ int nfnl_listen(struct nfnl_handle *nfnlh,
+ 	int quit=0;
+ 
+ 	struct msghdr msg = {
+-		(void *)&nladdr, sizeof(nladdr),
+-		&iov, 1,
+-		NULL, 0,
+-		0
++		.msg_name    = &nladdr,
++		.msg_namelen = sizeof(nladdr),
++		.msg_iov     = &iov,
++		.msg_iovlen  = 1,
+ 	};
+ 
+ 	memset(&nladdr, 0, sizeof(nladdr));
+@@ -682,13 +681,13 @@ int nfnl_talk(struct nfnl_handle *nfnlh, struct nlmsghdr *n, pid_t peer,
+ 	unsigned int seq;
+ 	int status;
+ 	struct iovec iov = {
+-		(void *)n, n->nlmsg_len
++		n, n->nlmsg_len
+ 	};
+ 	struct msghdr msg = {
+-		(void *)&nladdr, sizeof(nladdr),
+-		&iov, 1,
+-		NULL, 0,
+-		0
++		.msg_name    = &nladdr,
++		.msg_namelen = sizeof(nladdr),
++		.msg_iov     = &iov,
++		.msg_iovlen  = 1,
+ 	};
+ 
+ 	memset(&nladdr, 0, sizeof(nladdr));
+@@ -780,10 +779,8 @@ cont:
+ 			nfnl_error("Messages truncated\n");
+ 			continue;
+ 		}
+-		if (status) {
++		if (status)
+ 			nfnl_error("Remnant of size %d\n", status);
+-			exit(1);
+-		}
+ 	}
+ }
+ 
+diff --git a/src/rtnl.c b/src/rtnl.c
+index 548dc09..1092c81 100644
+--- a/src/rtnl.c
++++ b/src/rtnl.c
+@@ -127,7 +127,7 @@ int rtnl_dump_type(struct rtnl_handle *rtnl_handle, unsigned int type)
+ 	req.nlh.nlmsg_seq = rtnl_handle->rtnl_dump = ++(rtnl_handle->rtnl_seq);
+ 	req.g.rtgen_family = AF_INET;
+ 
+-	return sendto(rtnl_handle->rtnl_fd, (void*)&req, sizeof(req), 0, 
++	return sendto(rtnl_handle->rtnl_fd, &req, sizeof(req), 0,
+ 		      (struct sockaddr*)&nladdr, sizeof(nladdr));
+ }
+ 
+@@ -141,10 +141,10 @@ int rtnl_receive(struct rtnl_handle *rtnl_handle)
+ 	struct nlmsghdr *h;
+ 
+ 	struct msghdr msg = {
+-		(void *)&nladdr, sizeof(nladdr),
+-		&iov, 1,
+-		NULL, 0,
+-		0
++		.msg_name    = &nladdr,
++		.msg_namelen = sizeof(nladdr),
++		.msg_iov     = &iov,
++		.msg_iovlen  = 1,
+ 	};
+ 
+ 	status = recvmsg(rtnl_handle->rtnl_fd, &msg, 0);
+@@ -177,7 +177,7 @@ int rtnl_receive(struct rtnl_handle *rtnl_handle)
+ 			return 0;
+ 		}
+ 		if (h->nlmsg_type == NLMSG_ERROR) { 
+-			struct nlmsgerr *err = (struct nlmsgerr *)NLMSG_DATA(h);
++			struct nlmsgerr *err = NLMSG_DATA(h);
+ 			if (h->nlmsg_len>=NLMSG_LENGTH(sizeof(struct nlmsgerr)))
+ 				errno = -err->error;
+ 			rtnl_log(LOG_ERROR, "NLMSG_ERROR, errnp=%d",
+diff --git a/utils/.gitignore b/utils/.gitignore
+new file mode 100644
+index 0000000..ddd4de3
+--- /dev/null
++++ b/utils/.gitignore
+@@ -0,0 +1 @@
++/iftest
+diff --git a/utils/iftest.c b/utils/iftest.c
+index 2bbe3a3..523a17a 100644
+--- a/utils/iftest.c
++++ b/utils/iftest.c
+@@ -7,7 +7,7 @@
+ 
+ #include <libnfnetlink/libnfnetlink.h>
+ 
+-int main()
++int main(void)
+ {
+ 	int i;
+ 	struct nlif_handle *h;
+@@ -33,4 +33,5 @@ int main()
+ 	}
+ 
+ 	nlif_close(h);
++	return EXIT_SUCCESS;
+ }
diff --git a/libnfnetlink.spec b/libnfnetlink.spec
index 98aca0e..c0b9a2f 100644
--- a/libnfnetlink.spec
+++ b/libnfnetlink.spec
@@ -1,12 +1,11 @@
 Name:           libnfnetlink
 Version:        1.0.0
-Release:        2%{?dist}
+Release:        3%{?dist}
 Summary:        Netfilter netlink userspace library
 Group:          System Environment/Libraries
 License:        GPLv2+
 URL:            http://netfilter.org
 Source0:        http://netfilter.org/projects/libnfnetlink/files/%{name}-%{version}.tar.bz2
-Source1:	http://www.gnu.org/licenses/gpl.txt
 Patch0:		libnfnetlink-sysheader.patch
 Patch1:         libnfnetlink-rollup.patch
 BuildRoot:      %(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX)
@@ -33,7 +32,6 @@ and libnfnetlink_queue.
 
 %prep
 %setup -q
-cp %{SOURCE1} LICENSE
 %patch0 -p1
 %patch1 -p1
 
@@ -56,7 +54,7 @@ rm -rf $RPM_BUILD_ROOT
 
 %files
 %defattr(-,root,root,-)
-%doc README LICENSE
+%doc README COPYING
 %{_libdir}/*.so.*
 
 
@@ -68,6 +66,11 @@ rm -rf $RPM_BUILD_ROOT
 %{_includedir}/libnfnetlink/*.h
 
 %changelog
+* Mon Nov 28 2011 Paul P. Komkoff Jr <i at stingr.net> - 1.0.0-3
+- post-1.0 build fixes
+- switch to gplv2+
+- use packaged COPYING for license
+
 * Tue Feb 08 2011 Fedora Release Engineering <rel-eng at lists.fedoraproject.org> - 1.0.0-2
 - Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild
 


More information about the scm-commits mailing list