On Sep 9, 2003, at 9:58 AM, Grenville and Benita Fernandes wrote:
Firstly, I am not a developer. However, to try and figure out how things work in Ethereal, I was modifying parts of the code for the HSRP dissector. I then decided that I wanted to get rid of packet-hsrp.c, and put in my own version, packet-myhsrp.c.
Well, you've modified Ethereal code, so you're a developer now. :-)
1. I modified Makefile.am and Makefile.nmake, and did a `make'. For some reason, when I looked at Makefile.in, I could see the old hsrp and not my new code. I did a lot of searching, found some link to autogen.sh, ran it and somehow it worked, and I got a packet-myhsrp.o after running make. If someone could explain why it worked after running autogen.sh, that would be great.
A "make" in that situation has always regenerated Makefile.in, and Makefile, for me.
However, I build from CVS, not from a release tarball; it might be that the release tarball version (which is different - the GNU automake stuff generates a Makefile.in with a "dist" rule that generates a release tarball that doesn't require all the tools that the CVS version does, so that you can distribute your software to people who don't have all the GNU auto* stuff installed) doesn't make Makefile.in dependent on Makefile.am (perhaps because, as per the previous parenthetical note, they don't want to depend on the user having the GNU auto* stuff installed).
More importantly, now I have my HSRP code in, but when I decode HSRP packets, it still decodes using the original HSRP code. ( I know, because I modified all the text that should be in the info columns )
If you have more than one dissector registering for the same "port" number, you might not get the one you want. Did you really get rid of packet-hsrp.c - and packet-hsrp.o, and the reference to packet-hsrp.c in Makefile.am? If not, either
1) do so
or
2) call your "packet-myhsrp.c" just "packet-hsrp.c", and put the original Makefile.am back
so that Ethereal doesn't have both dissectors in it.
Perhaps you didn't actually get rid of packet-hsrp.c - try removing it and packet-hsrp.o, removing it fr
