AROS changes

This commit is contained in:
Carsten Sonne Larsen 2016-03-05 09:51:40 +01:00
parent 46852d6394
commit 097c701fe5
19 changed files with 378 additions and 256 deletions

29
.gitignore vendored
View File

@ -1,30 +1,3 @@
.*.swp
*.tar.gz
*~
src/*.gcno
src/*.gcda
src/*.gcov
.deps
Makefile
Makefile.in
aclocal.m4
autom4te.cache
compile
config.guess
config.h
config.h.in
config.log
config.status
config.sub
configure
depcomp
install-sh
missing
src/*.o
src/fping
src/fping6
stamp-h1
doc/fping.8
doc/fping6.8
ci/build
*.o
*.kdev4

View File

@ -3,34 +3,46 @@
all: fping
CC = gcc
CFLAGS = -O2 -DAROS -I. -Iinclude -Wall -Werror
CFLAGS = -O2 -DAROS -I. -D_DEBUG -Wall -Werror
LDLIBS = -lm
config.h: inet_getaddrinfo.h
touch config.h
build_date.h:
echo "#define BUILD_DATE \"$$(date -u)"\" >build_date.h
fping.o: fping.c config.h fping.h options.h seqmap.h
fping.h: mem.h
touch fping.h
fping_amiga.o: fping_amiga.c config.h
getaddrinfo.h: fping.h
touch getaddrinfo.h
inet_getaddrinfo.o: inet_getaddrinfo.c fping.h inet_getaddrinfo.h
fping.o: fping.c build_date.h fping.h getaddrinfo.h options.h seqmap.h
inet_ntop.o: inet_ntop.c
fping_amiga.o: fping_amiga.c fping.h getaddrinfo.h
inet_pton.o: inet_pton.c
getaddrinfo.o: getaddrinfo.c fping.h getaddrinfo.h
ntop.o: ntop.c
pton.o: pton.c
seqmap.o: seqmap.c options.h seqmap.h
socket.o: socket.c config.h fping.h
socket.o: socket.c fping.h
socket4.o: socket4.c config.h fping.h
socket4.o: socket4.c fping.h
mem.o: mem.c mem.h
getopt.o: getopt.c getopt.h
rand.o: rand.c
fping: fping.o fping_amiga.o inet_getaddrinfo.o inet_ntop.o inet_pton.o seqmap.o socket.o socket4.o
${CC} ${CFLAGS} -s -o fping fping.o fping_amiga.o inet_getaddrinfo.o inet_ntop.o inet_pton.o seqmap.o socket.o socket4.o ${LDLIBS}
fping: fping.o fping_amiga.o getaddrinfo.o ntop.o pton.o seqmap.o socket.o socket4.o mem.o getopt.o rand.o
${CC} ${CFLAGS} -s -o fping fping.o fping_amiga.o getaddrinfo.o ntop.o pton.o seqmap.o socket.o socket4.o mem.o getopt.o rand.o ${LDLIBS}
clean:
rm -f fping.o fping_amiga.o inet_getaddrinfo.o inet_ntop.o inet_pton.o seqmap.o socket.o socket4.o fping
rm -f fping.o fping_amiga.o getaddrinfo.o ntop.o pton.o seqmap.o socket.o socket4.o mem.o getopt.o rand.o build_date.h fping
depend:
@echo Dependencies already done

View File

@ -3,45 +3,46 @@
all: fping
CC = m68k-amigaos-gcc
CFLAGS = -O2 -noixemul -DAOS3 -I. -I.. -Iinclude -Wall -Werror
LDLIBS = -liberty -lm
CFLAGS = -O2 -noixemul -DAOS3 -D_DEBUG -I. -I.. -Iinclude -Wall -Werror
LDLIBS = -lm
build_date.h:
echo "#define BUILD_DATE \"$$(date -u)"\" >build_date.h
config.h: inet_getaddrinfo.h
touch config.h
fping.h: mem.h
touch fping.h
inet_getaddrinfo.h: fping.h
touch inet_getaddrinfo.h
getaddrinfo.h: fping.h
touch getaddrinfo.h
fping.o: fping.c build_date.h config.h fping.h options.h seqmap.h
fping.o: fping.c build_date.h fping.h getaddrinfo.h options.h seqmap.h
fping_amiga.o: fping_amiga.c config.h
fping_amiga.o: fping_amiga.c fping.h getaddrinfo.h
inet_getaddrinfo.o: inet_getaddrinfo.c fping.h inet_getaddrinfo.h
getaddrinfo.o: getaddrinfo.c fping.h getaddrinfo.h
inet_ntop.o: inet_ntop.c
ntop.o: ntop.c
inet_pton.o: inet_pton.c config.h
pton.o: pton.c
seqmap.o: seqmap.c options.h seqmap.h
socket.o: socket.c config.h fping.h
socket.o: socket.c fping.h
socket4.o: socket4.c config.h fping.h
socket4.o: socket4.c fping.h
mem.o: mem.c mem.h
getopt.o: getopt.c getopt.h
fping: fping.o fping_amiga.o inet_getaddrinfo.o inet_ntop.o inet_pton.o seqmap.o socket.o socket4.o mem.o
${CC} ${CFLAGS} -s -o fping fping.o fping_amiga.o inet_getaddrinfo.o inet_ntop.o inet_pton.o seqmap.o socket.o socket4.o mem.o ${LDLIBS}
rand.o: rand.c
fping: fping.o fping_amiga.o getaddrinfo.o ntop.o pton.o seqmap.o socket.o socket4.o mem.o getopt.o rand.o
${CC} ${CFLAGS} -s -o fping fping.o fping_amiga.o getaddrinfo.o ntop.o pton.o seqmap.o socket.o socket4.o mem.o getopt.o rand.o ${LDLIBS}
clean:
rm -f fping.o fping_amiga.o inet_getaddrinfo.o inet_ntop.o inet_pton.o seqmap.o socket.o socket4.o mem.o build_date.h fping
rm -f fping.o fping_amiga.o getaddrinfo.o ntop.o pton.o seqmap.o socket.o socket4.o mem.o getopt.o rand.o build_date.h fping
depend:
@echo Dependencies already done

View File

@ -1,85 +0,0 @@
/* config.h. Generated from config.h.in by configure. */
/* config.h.in. Generated from configure.ac by autoheader. */
#ifndef CONFIG_H
#define CONFIG_H
#ifdef AROS
/* Define to 1 if you have the <inttypes.h> header file. */
# define HAVE_INTTYPES_H 1
#endif
#include "inet_getaddrinfo.h"
/* Define to 1 if you have the <memory.h> header file. */
#define HAVE_MEMORY_H 1
#ifdef AROS
/* Define to 1 if you have the <stdint.h> header file. */
# define HAVE_STDINT_H 1
#endif
/* Define to 1 if you have the <stdlib.h> header file. */
#define HAVE_STDLIB_H 1
/* Define to 1 if you have the <strings.h> header file. */
#define HAVE_STRINGS_H 1
/* Define to 1 if you have the <string.h> header file. */
#define HAVE_STRING_H 1
/* Define to 1 if you have the <sys/file.h> header file. */
#define HAVE_SYS_FILE_H 1
/* Define to 1 if you have the <sys/select.h> header file. */
/* #undef HAVE_SYS_SELECT_H */
/* Define to 1 if you have the <sys/stat.h> header file. */
#define HAVE_SYS_STAT_H 1
/* Define to 1 if you have the <sys/types.h> header file. */
#define HAVE_SYS_TYPES_H 1
/* Define to 1 if you have the <unistd.h> header file. */
#define HAVE_UNISTD_H 1
/* Name of package */
#define PACKAGE "fping"
/* Define to the address where bug reports for this package should be sent. */
#define PACKAGE_BUGREPORT ""
/* Define to the full name of this package. */
#define PACKAGE_NAME "fping"
/* Define to the full name and version of this package. */
#define PACKAGE_STRING "fping 3.13"
/* Define to the one symbol short name of this package. */
#define PACKAGE_TARNAME "fping"
/* Define to the home page for this package. */
#define PACKAGE_URL ""
/* Define to the version of this package. */
#define PACKAGE_VERSION "3.13"
/* Define to 1 if you have the ANSI C header files. */
#define STDC_HEADERS 1
/* Version number of package */
#define VERSION "3.13"
/* some OSes do not define this ... lets take a wild guess */
#ifndef INADDR_NONE
# define INADDR_NONE 0xffffffffU
#endif
/* No TTL (time to live) in socket options */
#define NOTTL 1
/* No TOS (type of service) in socket options */
#define NOTOS 1
#endif /* CONFIG_H */

16
src/configure vendored
View File

@ -29,24 +29,26 @@
set -e
HDRS='
config.h
fping.h
inet_getaddrinfo.h
getaddrinfo.h
options.h
seqmap.h
mem.h
getopt.h
'
SRCS='
fping.c
fping_amiga.c
inet_getaddrinfo.c
inet_ntop.c
inet_pton.c
getaddrinfo.c
ntop.c
pton.c
seqmap.c
socket.c
socket4.c
mem.c
getopt.c
rand.c
'
if make -v 2>&1 | grep GNU > /dev/null 2>&1 ; then
@ -69,10 +71,10 @@ if $VALID ; then
if [ -n "$1" ] && [ $1 = "AMIGA" ] ; then
echo 'CC = m68k-amigaos-gcc'
echo "CFLAGS = -O2 -noixemul -DAOS3 ${DEBUG}-I. -I.. -Iinclude -Wall -Werror"
echo "LDLIBS = -liberty -lm"
echo "LDLIBS = -lm"
elif [ -n "$1" ] && [ $1 = "AROS" ] ; then
echo 'CC = gcc'
echo "CFLAGS = -O2 -DAROS -I. -Iinclude -Wall -Werror"
echo "CFLAGS = -O2 -DAROS -I. ${DEBUG}-Wall -Werror"
echo "LDLIBS = -lm"
else
echo "CFLAGS = -O2 -Wall -Werror"

View File

@ -37,47 +37,9 @@ extern "C"
#include "fping.h"
#include "options.h"
#include "build_date.h"
/* if compiling for Windows, use this separate set
(too difficult to ifdef all the autoconf defines) */
#ifdef WIN32
/*** Windows includes ***/
#else
/*** autoconf includes ***/
#include <stdio.h>
#include <errno.h>
#include <time.h>
#include <signal.h>
#include <stdarg.h>
#include "config.h"
#include "seqmap.h"
#ifdef HAVE_UNISTD_H
#include <unistd.h>
#endif /* HAVE_UNISTD_H */
#ifdef HAVE_STDLIB_H
#include <stdlib.h>
#endif /* HAVE_STDLIB_H */
#include <string.h>
#include <stddef.h>
#include <sys/types.h>
#include <sys/time.h>
#include <sys/socket.h>
#if HAVE_SYS_FILE_H
#include <sys/file.h>
#endif /* HAVE_SYS_FILE_H */
#include "build_date.h"
#include "getaddrinfo.h"
#ifdef IPV6
#include <netinet/icmp6.h>
@ -86,22 +48,11 @@ extern "C"
#include <netinet/ip.h>
#include <netinet/ip_icmp.h>
#include <arpa/inet.h>
#include <netdb.h>
/* RS6000 has sys/select.h */
#ifdef HAVE_SYS_SELECT_H
#include <sys/select.h>
#endif /* HAVE_SYS_SELECT_H */
#endif /* WIN32 */
/*** externals ***/
extern char *optarg;
extern int optind,opterr;
extern int h_errno;
#ifdef __cplusplus
}
@ -368,6 +319,8 @@ int main( int argc, char **argv )
int res;
HOST_ENTRY *cursor;
prog = argv[0];
if((res = open_libs()) != 0)
return res;
@ -378,7 +331,6 @@ int main( int argc, char **argv )
setuid( getuid() );
}
prog = argv[0];
ident = getpid() & 0xFFFF;
verbose_flag = 1;
backoff_flag = 1;
@ -512,7 +464,7 @@ int main( int argc, char **argv )
#endif /* DEBUG || _DEBUG */
case 'v':
printf( "%s: Version %s%s\n", argv[0], VERSION, DEBUG_TEXT );
printf( "%s: Version %s%s\n", argv[0], PACKAGE_VERSION, DEBUG_TEXT );
printf( "%s: Build %s\n", argv[0], BUILD_DATE );
printf( "%s: Comments to %s\n", argv[0], EMAIL );
exit( 0 );
@ -1158,7 +1110,7 @@ void finish()
print_global_stats();
if ( cancelled )
exit( 10 );
exit( 5 );
if( num_noaddress )
exit( 2 );
@ -1846,7 +1798,6 @@ void add_name( char *name )
{
struct addrinfo *res0, *res, hints;
int ret_ga;
size_t len;
char *printname;
char namebuf[256];
char addrbuf[256];
@ -1877,7 +1828,6 @@ void add_name( char *name )
// (need to implement a separate option for this)
for (res = res0; res; res = 0) {
len = res->ai_addrlen;
/* name_flag: addr -> name lookup requested) */
if(!name_flag) {
printname = name;
@ -2198,7 +2148,7 @@ int recvfrom_wto( int s, char *buf, int len, struct sockaddr *saddr, socklen_t *
int nfound, n;
struct timeval to;
fd_set readset, writeset;
long signal = SIGBREAKF_CTRL_C;
SIGNAL signal = SIGBREAKF_CTRL_C;
select_again:
if(timo < 100000) {
@ -2235,7 +2185,7 @@ select_again:
return -1; /* timeout */
// recvfrom(int socket, void *restrict buffer, size_t length, int flags, struct sockaddr *restrict address, socklen_t *restrict address_len);
n = RecvFrom( s, buf, len, 0, saddr, saddr_len );
n = RecvFrom( s, buf, len, 0, saddr, (int*)saddr_len );
if( n < 0 )
errno_crash_and_burn( "recvfrom" );
@ -2292,7 +2242,7 @@ void ev_enqueue(HOST_ENTRY *h)
#if defined( DEBUG ) || defined( _DEBUG )
if( trace_flag ) {
long st = timeval_diff(&h->ev_time, &current_time);
fprintf(stderr, "Enqueue: host=%s, when=%ld ms (%ld, %ld)\n", h->host, st/100, h->ev_time.tv_sec, h->ev_time.tv_usec);
fprintf(stderr, "Enqueue: host=%s, when=%ld ms (%ld, %ld)\n", h->host, st/100, (long)h->ev_time.tv_sec, (long)h->ev_time.tv_usec);
}
#endif
@ -2398,7 +2348,11 @@ void ev_remove(HOST_ENTRY *h)
void usage(int is_error)
{
FILE *out = is_error ? stderr : stdout;
fprintf(out, "\33[33mfping version " VERSION DEBUG_TEXT "\33[31m\n" );
#ifdef ANSI_CONSOLE
fprintf(out, "\33[33mfping version " PACKAGE_VERSION DEBUG_TEXT "\33[31m\n" );
#else
fprintf(out, "fping version " PACKAGE_VERSION DEBUG_TEXT "\n" );
#endif
fprintf(out, "Usage: %s [options] [targets...]\n", prog );
fprintf(out, " -a show targets that are alive\n" );
fprintf(out, " -A show targets by address\n" );

View File

@ -6,38 +6,57 @@
#ifndef _FPING_H
#define _FPING_H
#define __APPLE_USE_RFC_3542 1
#include <clib/dos_protos.h>
#include <clib/exec_protos.h>
#include <clib/alib_protos.h>
#include <clib/timer_protos.h>
#include <clib/utility_protos.h>
#include <utility/date.h>
#include <devices/timer.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <sys/file.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <stddef.h>
#include <unistd.h>
#include <errno.h>
#include <signal.h>
#include <stdarg.h>
#include "mem.h"
#define calloc(x, y) allocmem(x*y)
#define malloc(x) allocmem(x)
#define free(x) freemem(x)
#if defined(__AMIGA__)
#include <clib/dos_protos.h>
#include <clib/exec_protos.h>
#include <clib/timer_protos.h>
#include <clib/amitcp_protos.h>
#include <amitcp/socketbasetags.h>
#include <clib/utility_protos.h>
#include <utility/date.h>
#include <machine/types.h>
#define uint16_t u_int16_t
#define IPTR ULONG
#ifdef AOS3
# include <clib/amitcp_protos.h>
# include <amitcp/socketbasetags.h>
# include <machine/types.h>
# define uint16_t u_int16_t
# define IPTR ULONG
# define ANSI_CONSOLE 1
# define gettimeofday(x, y) getsystime(x)
typedef unsigned int socklen_t;
typedef unsigned int sa_family_t;
#endif
typedef unsigned int socklen_t;
typedef u_int16_t in_port_t;
typedef unsigned int sa_family_t;
#ifdef AROS
# include <inttypes.h>
# include <sys/time.h>
# define Socket(a,b,c) socket(a,b,c)
# define Bind(a,b,c) bind(a,b,c)
# define RecvFrom(a,b,c,d,e,f) recvfrom(a,b,c,d,e,f)
# define SendTo(a,b,c,d,e,f) sendto(a,b,c,d,e,f)
#endif
#ifdef AOS3
/*
* struct addrinfo.
*/
struct addrinfo {
int ai_flags;
int ai_family;
@ -60,6 +79,10 @@ struct addrinfo {
# define FPING_ICMPHDR struct icmp6_hdr
#endif
#ifndef INADDR_NONE
# define INADDR_NONE 0xffffffffU
#endif
#ifndef PF_INET6
# define PF_INET6 10
#endif
@ -80,7 +103,21 @@ struct addrinfo {
# define DEBUG_TEXT ""
#endif
#define gettimeofday(x, y) getsystime(x)
#ifdef AOS3
# define random() rand()
# define srandom() srand()
#endif
#define PACKAGE_NAME "fping"
#define PACKAGE_VERSION "3.13"
/* No TTL (time to live) in socket options */
#define NOTTL 1
/* No TOS (type of service) in socket options */
#define NOTOS 1
#define SIGNAL ULONG
/* fping.c */
void crash_and_burn( char *message );

View File

@ -3,25 +3,20 @@
* Public domain.
*/
#include <stdio.h>
#include <stdlib.h>
#include <clib/exec_protos.h>
#include <clib/timer_protos.h>
#include <clib/utility_protos.h>
#include <clib/alib_protos.h>
#include <devices/timer.h>
#include "fping.h"
#include "getaddrinfo.h"
#define OPEN_ERROR "Cannot open %s.\n"
#define OPEN_VER_ERROR "Cannot open %s (%d.0)\n"
#define DOSLIB_NAME "dos.library"
#define DOSLIB_REV 37L
#define BSDLIB_NAME "bsdsocket.library"
#define BSDLIB_REV 03L
#define UTILLIB_NAME "utility.library"
#define UTILLIB_REV 37L
#define DOSLIB_NAME "dos.library"
#define DOSLIB_REV 37L
#define BSDLIB_NAME "bsdsocket.library"
#define BSDLIB_REV 03L
#define UTILLIB_NAME "utility.library"
#define UTILLIB_REV 37L
#define TIMER_NAME TIMERNAME
#define LIB_ERROR 4
#include "config.h"
const char *vers = "\0$VER: " PACKAGE_NAME " " PACKAGE_VERSION " (21.02.2016)";
#include <unistd.h>
@ -75,27 +70,29 @@ void close_libs()
SocketBase = NULL;
}
freeall();
if (DOSBase != NULL) {
CloseLibrary(DOSBase);
DOSBase = NULL;
}
freeall();
}
int open_libs()
{
struct timeval tv;
atexit(close_libs);
InitSemaphore(&GetaddrinfoSemaphore);
if(!(DOSBase = OpenLibrary((STRPTR)DOSLIB_NAME, DOSLIB_REV))) {
amiga_open_lib_error(DOSLIB_NAME, DOSLIB_REV);
return 5;
return LIB_ERROR;
}
if(!(SocketBase = OpenLibrary((STRPTR)BSDLIB_NAME, BSDLIB_REV))) {
amiga_open_lib_error(BSDLIB_NAME, BSDLIB_REV);
return 5;
return LIB_ERROR;
} else {
SocketBaseTags(
SBTM_SETVAL(SBTC_ERRNOPTR(sizeof(errno))), (IPTR) &errno,
@ -106,17 +103,21 @@ int open_libs()
if(!(UtilityBase = OpenLibrary((STRPTR)UTILLIB_NAME, UTILLIB_REV))) {
amiga_open_lib_error(UTILLIB_NAME, UTILLIB_REV);
return 5;
return LIB_ERROR;
}
if (create_timer() != 0) {
amiga_open_error(TIMER_NAME);
return 10;
return LIB_ERROR;
}
gettimeofday(&tv, NULL);
srand(tv.tv_usec);
return 0;
}
#ifdef AOS3
int create_timer()
{
LONG error;
@ -171,3 +172,7 @@ int getsystime(struct timeval *tv)
return 0;
}
#else
int create_timer() { return 0; }
void delete_timer() { }
#endif

View File

@ -60,7 +60,7 @@
#include <netdb.h>
#include "fping.h"
#include "inet_getaddrinfo.h"
#include "getaddrinfo.h"
#ifdef ENABLE_NLS
#include <libintl.h>

117
src/getopt.c Normal file
View File

@ -0,0 +1,117 @@
/*
* getopt.c --
*
* Standard UNIX getopt function. Code is from BSD.
*
* Copyright (c) 1987-2002 The Regents of the University of California.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* A. Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* B. Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
* C. Neither the names of the copyright holders nor the names of its
* contributors may be used to endorse or promote products derived from this
* software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS
* IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
* THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*/
/* #if !defined(lint)
* static char sccsid[] = "@(#)getopt.c 8.2 (Berkeley) 4/2/94";
* #endif
*/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "getopt.h"
int opterr = 1, /* if error message should be printed */
optind = 1, /* index into parent argv vector */
optopt, /* character checked for validity */
optreset; /* reset getopt */
char *optarg; /* argument associated with option */
#define BADCH (int)'?'
#define BADARG (int)':'
#define EMSG ""
/*
* getopt --
* Parse argc/argv argument vector.
*/
int
getopt( int nargc,
char * const *nargv,
const char *ostr)
{
static char *place = EMSG; /* option letter processing */
char *oli; /* option letter list index */
if (optreset || !*place) { /* update scanning pointer */
optreset = 0;
if (optind >= nargc || *(place = nargv[optind]) != '-') {
place = EMSG;
return (EOF);
}
if (place[1] && *++place == '-') { /* found "--" */
++optind;
place = EMSG;
return (EOF);
}
} /* option letter okay? */
if ((optopt = (int)*place++) == (int)':' ||
!(oli = (char*) strchr(ostr, optopt))) {
/*
* if the user didn't specify '-' as an option,
* assume it means EOF.
*/
if (optopt == (int)'-')
return (EOF);
if (!*place)
++optind;
if (opterr && *ostr != ':')
(void)fprintf(stderr,
"illegal option -- %c\n", optopt);
return (BADCH);
}
if (*++oli != ':') { /* don't need argument */
optarg = NULL;
if (!*place)
++optind;
}
else { /* need an argument */
if (*place) /* no white space */
optarg = place;
else if (nargc <= ++optind) { /* no arg */
place = EMSG;
if (*ostr == ':')
return (BADARG);
if (opterr)
(void)fprintf(stderr,
"option requires an argument -- %c\n",
optopt);
return (BADCH);
}
else /* white space */
optarg = nargv[optind];
place = EMSG;
++optind;
}
return (optopt); /* dump back option letter */
}

51
src/getopt.h Normal file
View File

@ -0,0 +1,51 @@
#ifndef _HAD_GETOPT_H
#define _HAD_GETOPT_H
/*
getopt.h -- header for getopt() replacement function
Copyright (C) 1999-2011 Dieter Baron and Thomas Klausner
This file is part of libzip, a library to manipulate ZIP archives.
The authors can be contacted at <libzip@nih.at>
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:
1. Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in
the documentation and/or other materials provided with the
distribution.
3. The names of the authors may not be used to endorse or promote
products derived from this software without specific prior
written permission.
THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS
OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY
DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
#ifdef __cplusplus
extern "C" {
#endif
extern char *optarg;
extern int optind;
extern int opterr;
extern int getopt(int, char * const *, const char *);
#ifdef __cplusplus
}
#endif
#endif /* _HAD_GETOPT_H */

View File

@ -2,6 +2,7 @@
// This file is in the public domain. //
//--------------------------------------------------------------------------//
#include <stddef.h>
#include <string.h>
#include <exec/io.h>
#include <exec/types.h>
#include <exec/memory.h>

View File

@ -36,8 +36,6 @@
*
*/
# include <config.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

View File

@ -21,8 +21,6 @@
*
*/
#include "config.h"
#include <stdio.h>
#include <ctype.h>
#include <stdlib.h>

61
src/rand.c Normal file
View File

@ -0,0 +1,61 @@
/* $NetBSD: rand.c,v 1.12 2012/06/25 22:32:45 abs Exp $ */
/*-
* Copyright (c) 1990, 1993
* The Regents of the University of California. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* 3. Neither the name of the University nor the names of its contributors
* may be used to endorse or promote products derived from this software
* without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*/
#include <sys/cdefs.h>
#if defined(LIBC_SCCS) && !defined(lint)
#if 1
static char sccsid[] = "@(#)rand.c 8.1 (Berkeley) 6/14/93";
#else
__RCSID("$NetBSD: rand.c,v 1.12 2012/06/25 22:32:45 abs Exp $");
#endif
#endif /* LIBC_SCCS and not lint */
#include <sys/types.h>
#include <stdlib.h>
#ifndef RAND_MAX
#define RAND_MAX 2147483647
#endif
static u_long next = 1;
int
rand(void)
{
/* LINTED integer overflow */
return (int)((next = next * 1103515245 + 12345) % ((u_long)RAND_MAX + 1));
}
void
srand(u_int seed)
{
next = seed;
}

View File

@ -31,7 +31,6 @@
*/
#include "fping.h"
#include "config.h"
int open_ping_socket_ipv4();
int open_ping_socket_ipv6();

View File

@ -31,7 +31,6 @@
*/
#include "fping.h"
#include "config.h"
#include <sys/socket.h>
#include <netinet/in_systm.h>

View File

@ -31,7 +31,6 @@
*/
#include "fping.h"
#include "config.h"
#include <sys/socket.h>
#include <netinet/in.h>