summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorCraig Small <csmall@enc.com.au>2001-05-03 02:05:20 +0000
committerCraig Small <csmall@enc.com.au>2001-05-03 02:05:20 +0000
commite51bb90d354881ef3bdf6fa98c1270e3710221dd (patch)
treed85f1fbe66d7b0e75f04ab52f42d2c2e2e97cc1f
parent59cfcb1d81825cc4816fc1ffddd0193f0ebec4ae (diff)
fixed sockaddr problem and moved b* to mem* functions
-rw-r--r--tcpip/Makefile457
-rw-r--r--tcpip/rip98d.c12
-rw-r--r--tcpip/rip98r.c18
-rw-r--r--tcpip/rip98t.c4
-rw-r--r--tcpip/ttylinkd.c43
5 files changed, 498 insertions, 36 deletions
diff --git a/tcpip/Makefile b/tcpip/Makefile
new file mode 100644
index 0000000..19fee17
--- /dev/null
+++ b/tcpip/Makefile
@@ -0,0 +1,457 @@
+# Generated automatically from Makefile.in by configure.
+# Makefile.in generated automatically by automake 1.4 from Makefile.am
+
+# Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+
+SHELL = /bin/sh
+
+srcdir = .
+top_srcdir = ..
+prefix = /usr/local
+exec_prefix = ${prefix}
+
+bindir = ${exec_prefix}/bin
+sbindir = ${exec_prefix}/sbin
+libexecdir = ${exec_prefix}/libexec
+datadir = ${prefix}/share
+sysconfdir = ${prefix}/etc
+sharedstatedir = ${prefix}/com
+localstatedir = ${prefix}/var
+libdir = ${exec_prefix}/lib
+infodir = ${prefix}/info
+mandir = ${prefix}/man
+includedir = ${prefix}/include
+oldincludedir = /usr/include
+
+DESTDIR =
+
+pkgdatadir = $(datadir)/ax25-tools
+pkglibdir = $(libdir)/ax25-tools
+pkgincludedir = $(includedir)/ax25-tools
+
+top_builddir = ..
+
+ACLOCAL = aclocal
+AUTOCONF = autoconf
+AUTOMAKE = automake
+AUTOHEADER = autoheader
+
+INSTALL = /usr/bin/install -c
+INSTALL_PROGRAM = ${INSTALL} $(AM_INSTALL_PROGRAM_FLAGS)
+INSTALL_DATA = ${INSTALL} -m 644
+INSTALL_SCRIPT = ${INSTALL_PROGRAM}
+transform = s,x,x,
+
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+AWK = mawk
+AX25IO_LIB =
+AX25_LIB = -lax25
+CC = gcc
+CXX = c++
+DMASCC =
+FLTK_LIB = -lfltk -lGL -lSM -lICE -lXi -lXext -lX11
+MAKEINFO = /home/csmall/ax25/ax25-tools/missing makeinfo
+NCURSES_LIB = -lncurses
+PACKAGE = ax25-tools
+UTIL_LIB = -lutil
+VERSION = 0.0.8cvs
+Z_LIB = -lz
+
+etcfiles = rip98d.conf ttylinkd.conf
+
+sbin_PROGRAMS = rip98d ttylinkd
+
+man_MANS = rip98d.conf.5 rip98d.8 ttylinkd.conf.5 ttylinkd.8
+
+docdir = ${datadir}/doc/ax25-tools
+doc_DATA = ttylinkd.README ttylinkd.INSTALL
+
+EXTRA_DIST = $(man_MANS) $(etcfiles) $(doc_DATA)
+
+rip98d_SOURCES = rip98d.c rip98r.c rip98t.c rip98d.h
+
+
+rip98d_LDADD = $(AX25_LIB)
+
+INCLUDES = -DAX25_SYSCONFDIR=\""$(AX25_SYSCONFDIR)"\" -DAX25_LOCALSTATEDIR=\""$(AX25_LOCALSTATEDIR)"\"
+
+
+AX25_SYSCONFDIR = ${sysconfdir}/ax25/
+AX25_LOCALSTATEDIR = ${localstatedir}/ax25/
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_HEADER = ../config.h
+CONFIG_CLEAN_FILES =
+PROGRAMS = $(sbin_PROGRAMS)
+
+
+DEFS = -DHAVE_CONFIG_H -I. -I$(srcdir) -I..
+CPPFLAGS =
+LDFLAGS =
+LIBS =
+X_CFLAGS = -I/usr/X11R6/include
+X_LIBS = -L/usr/X11R6/lib
+X_EXTRA_LIBS =
+X_PRE_LIBS = -lSM -lICE
+rip98d_OBJECTS = rip98d.o rip98r.o rip98t.o
+rip98d_DEPENDENCIES =
+rip98d_LDFLAGS =
+ttylinkd_SOURCES = ttylinkd.c
+ttylinkd_OBJECTS = ttylinkd.o
+ttylinkd_LDADD = $(LDADD)
+ttylinkd_DEPENDENCIES =
+ttylinkd_LDFLAGS =
+CFLAGS = -g -O2 -Wall
+COMPILE = $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+CCLD = $(CC)
+LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(LDFLAGS) -o $@
+man5dir = $(mandir)/man5
+man8dir = $(mandir)/man8
+MANS = $(man_MANS)
+
+NROFF = nroff
+DATA = $(doc_DATA)
+
+DIST_COMMON = Makefile.am Makefile.in
+
+
+DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
+
+TAR = tar
+GZIP_ENV = --best
+DEP_FILES = .deps/rip98d.P .deps/rip98r.P .deps/rip98t.P \
+.deps/ttylinkd.P
+SOURCES = $(rip98d_SOURCES) ttylinkd.c
+OBJECTS = $(rip98d_OBJECTS) ttylinkd.o
+
+all: all-redirect
+.SUFFIXES:
+.SUFFIXES: .S .c .o .s
+$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
+ cd $(top_srcdir) && $(AUTOMAKE) --gnu tcpip/Makefile
+
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status $(BUILT_SOURCES)
+ cd $(top_builddir) \
+ && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
+
+
+mostlyclean-sbinPROGRAMS:
+
+clean-sbinPROGRAMS:
+ -test -z "$(sbin_PROGRAMS)" || rm -f $(sbin_PROGRAMS)
+
+distclean-sbinPROGRAMS:
+
+maintainer-clean-sbinPROGRAMS:
+
+install-sbinPROGRAMS: $(sbin_PROGRAMS)
+ @$(NORMAL_INSTALL)
+ $(mkinstalldirs) $(DESTDIR)$(sbindir)
+ @list='$(sbin_PROGRAMS)'; for p in $$list; do \
+ if test -f $$p; then \
+ echo " $(INSTALL_PROGRAM) $$p $(DESTDIR)$(sbindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`"; \
+ $(INSTALL_PROGRAM) $$p $(DESTDIR)$(sbindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`; \
+ else :; fi; \
+ done
+
+uninstall-sbinPROGRAMS:
+ @$(NORMAL_UNINSTALL)
+ list='$(sbin_PROGRAMS)'; for p in $$list; do \
+ rm -f $(DESTDIR)$(sbindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`; \
+ done
+
+.s.o:
+ $(COMPILE) -c $<
+
+.S.o:
+ $(COMPILE) -c $<
+
+mostlyclean-compile:
+ -rm -f *.o core *.core
+
+clean-compile:
+
+distclean-compile:
+ -rm -f *.tab.c
+
+maintainer-clean-compile:
+
+rip98d: $(rip98d_OBJECTS) $(rip98d_DEPENDENCIES)
+ @rm -f rip98d
+ $(LINK) $(rip98d_LDFLAGS) $(rip98d_OBJECTS) $(rip98d_LDADD) $(LIBS)
+
+ttylinkd: $(ttylinkd_OBJECTS) $(ttylinkd_DEPENDENCIES)
+ @rm -f ttylinkd
+ $(LINK) $(ttylinkd_LDFLAGS) $(ttylinkd_OBJECTS) $(ttylinkd_LDADD) $(LIBS)
+
+install-man5:
+ $(mkinstalldirs) $(DESTDIR)$(man5dir)
+ @list='$(man5_MANS)'; \
+ l2='$(man_MANS)'; for i in $$l2; do \
+ case "$$i" in \
+ *.5*) list="$$list $$i" ;; \
+ esac; \
+ done; \
+ for i in $$list; do \
+ if test -f $(srcdir)/$$i; then file=$(srcdir)/$$i; \
+ else file=$$i; fi; \
+ ext=`echo $$i | sed -e 's/^.*\\.//'`; \
+ inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \
+ inst=`echo $$inst | sed '$(transform)'`.$$ext; \
+ echo " $(INSTALL_DATA) $$file $(DESTDIR)$(man5dir)/$$inst"; \
+ $(INSTALL_DATA) $$file $(DESTDIR)$(man5dir)/$$inst; \
+ done
+
+uninstall-man5:
+ @list='$(man5_MANS)'; \
+ l2='$(man_MANS)'; for i in $$l2; do \
+ case "$$i" in \
+ *.5*) list="$$list $$i" ;; \
+ esac; \
+ done; \
+ for i in $$list; do \
+ ext=`echo $$i | sed -e 's/^.*\\.//'`; \
+ inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \
+ inst=`echo $$inst | sed '$(transform)'`.$$ext; \
+ echo " rm -f $(DESTDIR)$(man5dir)/$$inst"; \
+ rm -f $(DESTDIR)$(man5dir)/$$inst; \
+ done
+
+install-man8:
+ $(mkinstalldirs) $(DESTDIR)$(man8dir)
+ @list='$(man8_MANS)'; \
+ l2='$(man_MANS)'; for i in $$l2; do \
+ case "$$i" in \
+ *.8*) list="$$list $$i" ;; \
+ esac; \
+ done; \
+ for i in $$list; do \
+ if test -f $(srcdir)/$$i; then file=$(srcdir)/$$i; \
+ else file=$$i; fi; \
+ ext=`echo $$i | sed -e 's/^.*\\.//'`; \
+ inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \
+ inst=`echo $$inst | sed '$(transform)'`.$$ext; \
+ echo " $(INSTALL_DATA) $$file $(DESTDIR)$(man8dir)/$$inst"; \
+ $(INSTALL_DATA) $$file $(DESTDIR)$(man8dir)/$$inst; \
+ done
+
+uninstall-man8:
+ @list='$(man8_MANS)'; \
+ l2='$(man_MANS)'; for i in $$l2; do \
+ case "$$i" in \
+ *.8*) list="$$list $$i" ;; \
+ esac; \
+ done; \
+ for i in $$list; do \
+ ext=`echo $$i | sed -e 's/^.*\\.//'`; \
+ inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \
+ inst=`echo $$inst | sed '$(transform)'`.$$ext; \
+ echo " rm -f $(DESTDIR)$(man8dir)/$$inst"; \
+ rm -f $(DESTDIR)$(man8dir)/$$inst; \
+ done
+install-man: $(MANS)
+ @$(NORMAL_INSTALL)
+ $(MAKE) $(AM_MAKEFLAGS) install-man5 install-man8
+uninstall-man:
+ @$(NORMAL_UNINSTALL)
+ $(MAKE) $(AM_MAKEFLAGS) uninstall-man5 uninstall-man8
+
+install-docDATA: $(doc_DATA)
+ @$(NORMAL_INSTALL)
+ $(mkinstalldirs) $(DESTDIR)$(docdir)
+ @list='$(doc_DATA)'; for p in $$list; do \
+ if test -f $(srcdir)/$$p; then \
+ echo " $(INSTALL_DATA) $(srcdir)/$$p $(DESTDIR)$(docdir)/$$p"; \
+ $(INSTALL_DATA) $(srcdir)/$$p $(DESTDIR)$(docdir)/$$p; \
+ else if test -f $$p; then \
+ echo " $(INSTALL_DATA) $$p $(DESTDIR)$(docdir)/$$p"; \
+ $(INSTALL_DATA) $$p $(DESTDIR)$(docdir)/$$p; \
+ fi; fi; \
+ done
+
+uninstall-docDATA:
+ @$(NORMAL_UNINSTALL)
+ list='$(doc_DATA)'; for p in $$list; do \
+ rm -f $(DESTDIR)$(docdir)/$$p; \
+ done
+
+tags: TAGS
+
+ID: $(HEADERS) $(SOURCES) $(LISP)
+ list='$(SOURCES) $(HEADERS)'; \
+ unique=`for i in $$list; do echo $$i; done | \
+ awk ' { files[$$0] = 1; } \
+ END { for (i in files) print i; }'`; \
+ here=`pwd` && cd $(srcdir) \
+ && mkid -f$$here/ID $$unique $(LISP)
+
+TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) $(LISP)
+ tags=; \
+ here=`pwd`; \
+ list='$(SOURCES) $(HEADERS)'; \
+ unique=`for i in $$list; do echo $$i; done | \
+ awk ' { files[$$0] = 1; } \
+ END { for (i in files) print i; }'`; \
+ test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \
+ || (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags $$unique $(LISP) -o $$here/TAGS)
+
+mostlyclean-tags:
+
+clean-tags:
+
+distclean-tags:
+ -rm -f TAGS ID
+
+maintainer-clean-tags:
+
+distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir)
+
+subdir = tcpip
+
+distdir: $(DISTFILES)
+ here=`cd $(top_builddir) && pwd`; \
+ top_distdir=`cd $(top_distdir) && pwd`; \
+ distdir=`cd $(distdir) && pwd`; \
+ cd $(top_srcdir) \
+ && $(AUTOMAKE) --include-deps --build-dir=$$here --srcdir-name=$(top_srcdir) --output-dir=$$top_distdir --gnu tcpip/Makefile
+ @for file in $(DISTFILES); do \
+ d=$(srcdir); \
+ if test -d $$d/$$file; then \
+ cp -pr $$d/$$file $(distdir)/$$file; \
+ else \
+ test -f $(distdir)/$$file \
+ || ln $$d/$$file $(distdir)/$$file 2> /dev/null \
+ || cp -p $$d/$$file $(distdir)/$$file || :; \
+ fi; \
+ done
+
+DEPS_MAGIC := $(shell mkdir .deps > /dev/null 2>&1 || :)
+
+-include $(DEP_FILES)
+
+mostlyclean-depend:
+
+clean-depend:
+
+distclean-depend:
+ -rm -rf .deps
+
+maintainer-clean-depend:
+
+%.o: %.c
+ @echo '$(COMPILE) -c $<'; \
+ $(COMPILE) -Wp,-MD,.deps/$(*F).pp -c $<
+ @-cp .deps/$(*F).pp .deps/$(*F).P; \
+ tr ' ' '\012' < .deps/$(*F).pp \
+ | sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \
+ >> .deps/$(*F).P; \
+ rm .deps/$(*F).pp
+
+%.lo: %.c
+ @echo '$(LTCOMPILE) -c $<'; \
+ $(LTCOMPILE) -Wp,-MD,.deps/$(*F).pp -c $<
+ @-sed -e 's/^\([^:]*\)\.o[ ]*:/\1.lo \1.o :/' \
+ < .deps/$(*F).pp > .deps/$(*F).P; \
+ tr ' ' '\012' < .deps/$(*F).pp \
+ | sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \
+ >> .deps/$(*F).P; \
+ rm -f .deps/$(*F).pp
+info-am:
+info: info-am
+dvi-am:
+dvi: dvi-am
+check-am: all-am
+check: check-am
+installcheck-am:
+installcheck: installcheck-am
+install-exec-am: install-sbinPROGRAMS
+install-exec: install-exec-am
+
+install-data-am: install-man install-docDATA
+install-data: install-data-am
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+install: install-am
+uninstall-am: uninstall-sbinPROGRAMS uninstall-man uninstall-docDATA
+uninstall: uninstall-am
+all-am: Makefile $(PROGRAMS) $(MANS) $(DATA)
+all-redirect: all-am
+install-strip:
+ $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install
+installdirs:
+ $(mkinstalldirs) $(DESTDIR)$(sbindir) $(DESTDIR)$(mandir)/man5 \
+ $(DESTDIR)$(mandir)/man8 $(DESTDIR)$(docdir)
+
+
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+ -rm -f Makefile $(CONFIG_CLEAN_FILES)
+ -rm -f config.cache config.log stamp-h stamp-h[0-9]*
+
+maintainer-clean-generic:
+mostlyclean-am: mostlyclean-sbinPROGRAMS mostlyclean-compile \
+ mostlyclean-tags mostlyclean-depend mostlyclean-generic
+
+mostlyclean: mostlyclean-am
+
+clean-am: clean-sbinPROGRAMS clean-compile clean-tags clean-depend \
+ clean-generic mostlyclean-am
+
+clean: clean-am
+
+distclean-am: distclean-sbinPROGRAMS distclean-compile distclean-tags \
+ distclean-depend distclean-generic clean-am
+
+distclean: distclean-am
+
+maintainer-clean-am: maintainer-clean-sbinPROGRAMS \
+ maintainer-clean-compile maintainer-clean-tags \
+ maintainer-clean-depend maintainer-clean-generic \
+ distclean-am
+ @echo "This command is intended for maintainers to use;"
+ @echo "it deletes files that may require special tools to rebuild."
+
+maintainer-clean: maintainer-clean-am
+
+.PHONY: mostlyclean-sbinPROGRAMS distclean-sbinPROGRAMS \
+clean-sbinPROGRAMS maintainer-clean-sbinPROGRAMS uninstall-sbinPROGRAMS \
+install-sbinPROGRAMS mostlyclean-compile distclean-compile \
+clean-compile maintainer-clean-compile install-man5 uninstall-man5 \
+install-man8 uninstall-man8 install-man uninstall-man uninstall-docDATA \
+install-docDATA tags mostlyclean-tags distclean-tags clean-tags \
+maintainer-clean-tags distdir mostlyclean-depend distclean-depend \
+clean-depend maintainer-clean-depend info-am info dvi-am dvi check \
+check-am installcheck-am installcheck install-exec-am install-exec \
+install-data-am install-data install-am install uninstall-am uninstall \
+all-redirect all-am all installdirs mostlyclean-generic \
+distclean-generic clean-generic maintainer-clean-generic clean \
+mostlyclean distclean maintainer-clean
+
+
+installconf:
+ $(mkinstalldirs) $(DESTDIR)$(AX25_SYSCONFDIR)
+ @list='$(etcfiles)'; for p in $$list; do \
+ echo " $(INSTALL_DATA) $$p $(DESTDIR)$(AX25_SYSCONFDIR)/$$p"; \
+ $(INSTALL_DATA) $$p $(DESTDIR)$(AX25_SYSCONFDIR)/$$p; \
+ done
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/tcpip/rip98d.c b/tcpip/rip98d.c
index 78851cd..9fffab6 100644
--- a/tcpip/rip98d.c
+++ b/tcpip/rip98d.c
@@ -1,3 +1,8 @@
+
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
@@ -5,10 +10,10 @@
#include <netdb.h>
#include <syslog.h>
#include <signal.h>
+#include <time.h>
#include <sys/types.h>
#include <sys/ioctl.h>
-#include <sys/time.h>
#include <sys/socket.h>
#include <netinet/in.h>
@@ -18,7 +23,6 @@
#include <netax25/daemon.h>
-#include <config.h>
#include "../pathnames.h"
#include "rip98d.h"
@@ -246,7 +250,7 @@ static int load_dests(void)
return FALSE;
}
- bcopy(host->h_addr, (char *)&dest_list[dest_count].dest_addr, host->h_length);
+ memcpy((char *)&dest_list[dest_count].dest_addr, host->h_addr, host->h_length);
dest_count++;
}
@@ -309,7 +313,7 @@ int main(int argc, char **argv)
return 1;
}
- bzero((char *)&loc_addr, sizeof(loc_addr));
+ memset((char *)&loc_addr, 0, sizeof(loc_addr));
loc_addr.sin_family = AF_INET;
loc_addr.sin_addr.s_addr = htonl(INADDR_ANY);
loc_addr.sin_port = htons(RIP_PORT);
diff --git a/tcpip/rip98r.c b/tcpip/rip98r.c
index 765e786..25cb546 100644
--- a/tcpip/rip98r.c
+++ b/tcpip/rip98r.c
@@ -115,7 +115,7 @@ void receive_routes(int s)
syslog(LOG_DEBUG, "RIP98 message received from %s\n", inet_ntoa(rem_addr.sin_addr));
for (p = message + RIP98_HEADER; p < message + mess_len; p += RIP98_ENTRY) {
- bcopy((char *)p, (char *)&addr, sizeof(addr));
+ memcpy((char *)&addr, (char *)p, sizeof(addr));
bits = p[4];
metric = p[5];
@@ -203,12 +203,12 @@ void receive_routes(int s)
for (route = first_route; route != NULL; route = route->next) {
if (route->action == DEL_ROUTE) {
- bzero((char *)&rt, sizeof(rt));
+ memset((char *)&rt, 0, sizeof(rt));
trg.sin_family = AF_INET;
trg.sin_addr = route->addr;
trg.sin_port = 0;
- bcopy((char *)&trg, (char *)&rt.rt_dst, sizeof(struct sockaddr));
+ memcpy((char *)&rt.rt_dst, (char *)&trg, sizeof(struct sockaddr));
if (ioctl(s, SIOCDELRT, &rt) < 0) {
if (logging)
@@ -219,12 +219,12 @@ void receive_routes(int s)
for (route = first_route; route != NULL; route = route->next) {
if (route->action == NEW_ROUTE) {
- bzero((char *)&rt, sizeof(rt));
+ memset((char *)&rt, 0, sizeof(rt));
trg.sin_family = AF_INET;
trg.sin_addr = route->addr;
trg.sin_port = 0;
- bcopy((char *)&trg, (char *)&rt.rt_dst, sizeof(struct sockaddr));
+ memcpy((char *)&rt.rt_dst, (char *)&trg, sizeof(struct sockaddr));
rt.rt_flags = RTF_UP | RTF_GATEWAY | RTF_DYNAMIC;
@@ -234,17 +234,17 @@ void receive_routes(int s)
netmask = bits2mask(route->bits);
trg.sin_family = AF_INET;
- bcopy((char *)&netmask, (char *)&trg.sin_addr, sizeof(struct in_addr));
+ memcpy((char *)&trg.sin_addr, (char *)&netmask, sizeof(struct in_addr));
trg.sin_port = 0;
- bcopy((char *)&trg, (char *)&rt.rt_genmask, sizeof(struct sockaddr));
+ memcpy((char *)&rt.rt_genmask, (char *)&trg, sizeof(struct sockaddr));
}
- rt.rt_metric = route->metric;
+ rt.rt_metric = route->metric + 1;
trg.sin_family = AF_INET;
trg.sin_addr = rem_addr.sin_addr;
trg.sin_port = 0;
- bcopy((char *)&trg, (char *)&rt.rt_gateway, sizeof(struct sockaddr));
+ memcpy((char *)&rt.rt_gateway, (char *)&trg, sizeof(struct sockaddr));
if (ioctl(s, SIOCADDRT, &rt) < 0) {
if (logging)
diff --git a/tcpip/rip98t.c b/tcpip/rip98t.c
index c227fc4..2441c49 100644
--- a/tcpip/rip98t.c
+++ b/tcpip/rip98t.c
@@ -42,7 +42,7 @@ void transmit_routes(int s)
if (debug && logging)
syslog(LOG_DEBUG, "transmit_routes: sending routing message to %s\n", inet_ntoa(dest_list[i].dest_addr));
- bzero((char *)&rem_addr, sizeof(rem_addr));
+ memset((char *)&rem_addr, 0, sizeof(rem_addr));
rem_addr.sin_family = AF_INET;
rem_addr.sin_addr = dest_list[i].dest_addr;
rem_addr.sin_port = htons(RIP_PORT);
@@ -55,7 +55,7 @@ void transmit_routes(int s)
while (mess_len < 184 && route != NULL) {
if (route->action != DEL_ROUTE) {
- bcopy((char *)&route->addr, message + mess_len + 0, sizeof(struct in_addr));
+ memcpy(message + mess_len + 0, (char *)&route->addr, sizeof(struct in_addr));
message[mess_len + 4] = route->bits;
message[mess_len + 5] = route->metric;
diff --git a/tcpip/ttylinkd.c b/tcpip/ttylinkd.c
index 69642c5..032a5bd 100644
--- a/tcpip/ttylinkd.c
+++ b/tcpip/ttylinkd.c
@@ -38,7 +38,6 @@
#include <config.h>
-#define osockaddr sockaddr
#include <protocols/talkd.h>
#include <syslog.h>
@@ -104,7 +103,7 @@ static char *Responses[] = {
int main(int argc, char *argv[])
{
- struct sockaddr_in sin, ctl_sin;
+ struct sockaddr_in ctl_sin;
struct in_addr my_addr, rem_addr;
int ctl_skt, skt, new_skt;
int length;
@@ -116,9 +115,9 @@ int main(int argc, char *argv[])
int local_id, remote_id;
char buf[256];
char user[NAME_SIZE];
- struct sockaddr sa;
+ struct sockaddr sa, msg_sa;
int sa_len, i;
- struct sockaddr_in *peer_sin=NULL;
+ struct sockaddr_in *peer_sin=NULL, *msg_sin;
struct sockaddr_ax25 *peer_sax;
struct sockaddr_rose *peer_srose;
@@ -129,7 +128,7 @@ int main(int argc, char *argv[])
/* Work out who is calling us */
userfamily = AF_UNSPEC;
- bzero(user, NAME_SIZE);
+ memset(user, 0, NAME_SIZE);
strcpy(sysop_addr, SYSOP_USER);
strcpy(config_file, CONF_TTYLINKD_FILE);
for(i=1 ; i < argc ; i++)
@@ -260,7 +259,7 @@ int main(int argc, char *argv[])
exit(1);
}
}
- bcopy(rhe->h_addr, (char*)&rem_addr, rhe->h_length);
+ memcpy((char*)&rem_addr, rhe->h_addr, rhe->h_length);
/* Get our local address */
if ((phe = gethostbyname(hostname)) == NULL)
@@ -268,14 +267,15 @@ int main(int argc, char *argv[])
syslog(LOG_DAEMON | LOG_CRIT, "main(): gethostbyname failed.");
exit(1);
}
- bcopy(phe->h_addr, (char*)&my_addr, phe->h_length);
+ memcpy((char*)&my_addr, phe->h_addr, phe->h_length);
/* Create local data socket */
- bzero((char*)&sin, sizeof(sin));
+ memset((char*)&msg_sa, 0, sizeof(msg_sa));
- sin.sin_family = AF_INET;
- sin.sin_port = htons(0);
- bcopy(phe->h_addr, (char*)&sin.sin_addr, phe->h_length);
+ msg_sa.sa_family = AF_INET;
+ msg_sin = (struct sockaddr_in*)&msg_sa;
+ msg_sin->sin_port = htons(0);
+ memcpy((char*)&(msg_sin->sin_addr), phe->h_addr, phe->h_length);
if ((skt = socket(PF_INET, SOCK_STREAM, 0)) < 0)
{
@@ -283,24 +283,24 @@ int main(int argc, char *argv[])
exit(1);
}
- if (bind( skt, (struct sockaddr*)&sin, sizeof(sin)) != 0)
+ if (bind( skt, &msg_sa, sizeof(msg_sa)) != 0)
{
syslog(LOG_DAEMON | LOG_CRIT, "main(): bind() failed.");
exit(1);
}
- length = sizeof(sin);
- if (getsockname(skt, (struct sockaddr*)&sin, &length) < 0)
+ length = sizeof(msg_sa);
+ if (getsockname(skt, &msg_sa, &length) < 0)
{
syslog(LOG_DAEMON | LOG_CRIT, "main(): getsockname() failed.");
exit(1);
}
/* Create local control socket */
- bzero((char*)&ctl_sin, sizeof(ctl_sin));
+ memset((char*)&ctl_sin, 0, sizeof(ctl_sin));
ctl_sin.sin_family = AF_INET;
- bcopy(phe->h_addr, (char*)&ctl_sin.sin_addr, phe->h_length);
+ memcpy((char*)&ctl_sin.sin_addr, phe->h_addr, phe->h_length);
ctl_sin.sin_port = htons(0);
if ((ctl_skt = socket(PF_INET, SOCK_DGRAM, 0)) < 0)
@@ -327,12 +327,13 @@ int main(int argc, char *argv[])
}
/* Start talking to the talk daemon */
- bzero((char*)&msg, sizeof(msg));
+ memset((char*)&msg, 0, sizeof(msg));
msg.vers = TALK_VERSION;
msg.id_num = htonl(0);
msg.addr.sa_family = ntohs(AF_INET);
- msg.ctl_addr = *(struct sockaddr*)&ctl_sin;
- msg.ctl_addr = *(struct sockaddr*)&ctl_sin;
+ memcpy(&(msg.ctl_addr), &msg_sa, sizeof(struct osockaddr));
+ /*msg.ctl_addr = *(struct sockaddr*)&ctl_sin;
+ msg.ctl_addr = *(struct sockaddr*)&ctl_sin;*/
msg.ctl_addr.sa_family = ntohs(AF_INET);
msg.pid = htonl(getpid());
strncpy(msg.l_name, user, NAME_SIZE-1);
@@ -345,7 +346,7 @@ int main(int argc, char *argv[])
/* The person not there? Send an announce and wake him up */
msg.type = ANNOUNCE;
- msg.addr = *(struct sockaddr*)&sin;
+ memcpy((char*)&(msg.addr), (char*)&msg_sa, sizeof(struct osockaddr));
msg.addr.sa_family = htons(AF_INET);
msg.id_num = -1;
i = send_control(ctl_skt, rem_addr, msg, &resp);
@@ -495,7 +496,7 @@ int send_control(int skt, struct in_addr addr, CTL_MSG msg, CTL_RESPONSE *resp)
}
/* Create the socket address */
- bzero((char*)&sin, sizeof(sin));
+ memset((char*)&sin, 0, sizeof(sin));
sin.sin_addr = addr;
sin.sin_family = AF_INET;
sin.sin_port = talk_port;