mirror of
https://github.com/sheumann/hush.git
synced 2024-12-21 23:29:34 +00:00
- patch from Denis Vlasenko to add and use bb_xsocket() and to use
bb_xopen some more while at it. Also use shorter boilerplate while at it.
This commit is contained in:
parent
79865bc507
commit
dac7ff15b7
@ -1228,8 +1228,8 @@ int gzip_main(int argc, char **argv)
|
||||
inFileNum = STDIN_FILENO;
|
||||
outFileNum = STDOUT_FILENO;
|
||||
} else {
|
||||
inFileNum = open(argv[i], O_RDONLY);
|
||||
if (inFileNum < 0 || fstat(inFileNum, &statBuf) < 0)
|
||||
inFileNum = bb_xopen(argv[i], O_RDONLY);
|
||||
if (fstat(inFileNum, &statBuf) < 0)
|
||||
bb_perror_msg_and_die("%s", argv[i]);
|
||||
time_stamp = statBuf.st_ctime;
|
||||
ifile_size = statBuf.st_size;
|
||||
|
@ -28,21 +28,7 @@ For a new applet mu, here is the code that would go in mu.c:
|
||||
*
|
||||
* Copyright (C) [YEAR] by [YOUR NAME] <YOUR EMAIL>
|
||||
*
|
||||
* 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., 59 Temple Place, Suite 330, Boston, MA
|
||||
* 02111-1307 USA
|
||||
*
|
||||
* Licensed under GPLv2 or later, see file LICENSE in this tarball for details.
|
||||
*/
|
||||
|
||||
#include "busybox.h"
|
||||
@ -52,8 +38,7 @@ int mu_main(int argc, char **argv)
|
||||
int fd;
|
||||
char mu;
|
||||
|
||||
if ((fd = open("/dev/random", O_RDONLY)) < 0)
|
||||
bb_perror_msg_and_die("/dev/random");
|
||||
fd = bb_xopen("/dev/random", O_RDONLY);
|
||||
|
||||
if ((n = safe_read(fd, &mu, 1)) < 1)
|
||||
bb_perror_msg_and_die("/dev/random");
|
||||
|
@ -145,6 +145,7 @@ extern int bb_fclose_nonstdin(FILE *f);
|
||||
extern void bb_fflush_stdout_and_exit(int retval) ATTRIBUTE_NORETURN;
|
||||
|
||||
extern void xstat(const char *filename, struct stat *buf);
|
||||
extern int bb_xsocket(int domain, int type, int protocol);
|
||||
|
||||
#define BB_GETOPT_ERROR 0x80000000UL
|
||||
extern const char *bb_opt_complementally;
|
||||
|
@ -30,6 +30,7 @@ LIBBB-y:= \
|
||||
trim.c u_signal_names.c vdprintf.c verror_msg.c \
|
||||
vherror_msg.c vperror_msg.c wfopen.c xconnect.c xgetcwd.c xstat.c \
|
||||
xgethostbyname.c xgethostbyname2.c xreadlink.c xregcomp.c xgetlarg.c \
|
||||
bb_xsocket.c \
|
||||
get_terminal_width_height.c fclose_nonstdin.c fflush_stdout_and_exit.c \
|
||||
getopt_ulflags.c default_error_retval.c wfopen_input.c speed_table.c \
|
||||
perror_nomsg_and_die.c perror_nomsg.c skip_whitespace.c bb_askpass.c \
|
||||
|
18
libbb/bb_xsocket.c
Normal file
18
libbb/bb_xsocket.c
Normal file
@ -0,0 +1,18 @@
|
||||
/* vi: set sw=4 ts=4: */
|
||||
/*
|
||||
* bb_xsocket.c - a socket() which dies on failure with error message
|
||||
*
|
||||
* Copyright (C) 2006 Denis Vlasenko
|
||||
*
|
||||
* Licensed under LGPL, see file docs/lesser.txt in this tarball for details.
|
||||
*/
|
||||
#include <sys/socket.h>
|
||||
#include "libbb.h"
|
||||
|
||||
int bb_xsocket(int domain, int type, int protocol)
|
||||
{
|
||||
int r = socket(domain, type, protocol);
|
||||
if (r < 0)
|
||||
bb_perror_msg_and_die("socket");
|
||||
return r;
|
||||
}
|
@ -61,7 +61,7 @@ void bb_lookup_host(struct sockaddr_in *s_in, const char *host)
|
||||
|
||||
int xconnect(struct sockaddr_in *s_addr)
|
||||
{
|
||||
int s = socket(AF_INET, SOCK_STREAM, 0);
|
||||
int s = bb_xsocket(AF_INET, SOCK_STREAM, 0);
|
||||
if (connect(s, (struct sockaddr *)s_addr, sizeof(struct sockaddr_in)) < 0)
|
||||
{
|
||||
if (ENABLE_FEATURE_CLEAN_UP) close(s);
|
||||
|
@ -1,4 +1,4 @@
|
||||
/* vi:set ts=4:*/
|
||||
/* vi: set sw=4 ts=4: */
|
||||
/*
|
||||
* arping.c - Ping hosts by ARP requests/replies
|
||||
*
|
||||
@ -358,7 +358,7 @@ int arping_main(int argc, char **argv)
|
||||
|
||||
if (!(cfg&dad) || src.s_addr) {
|
||||
struct sockaddr_in saddr;
|
||||
int probe_fd = socket(AF_INET, SOCK_DGRAM, 0);
|
||||
int probe_fd = socket(AF_INET, SOCK_DGRAM, 0); /* maybe use bb_xsocket? */
|
||||
|
||||
if (probe_fd < 0) {
|
||||
bb_error_msg_and_die("socket");
|
||||
|
@ -1,3 +1,4 @@
|
||||
/* vi: set sw=4 ts=4: */
|
||||
/*
|
||||
* Mini DNS server implementation for busybox
|
||||
*
|
||||
@ -204,8 +205,7 @@ listen_socket(char *iface_addr, int listen_port)
|
||||
char msg[100];
|
||||
int s;
|
||||
int yes = 1;
|
||||
if ((s = socket(PF_INET, SOCK_DGRAM, 0)) < 0)
|
||||
bb_perror_msg_and_die("socket() failed");
|
||||
s = bb_xsocket(PF_INET, SOCK_DGRAM, 0);
|
||||
#ifdef SO_REUSEADDR
|
||||
if (setsockopt(s, SOL_SOCKET, SO_REUSEADDR, (char *)&yes, sizeof(yes)) < 0)
|
||||
bb_perror_msg_and_die("setsockopt() failed");
|
||||
|
@ -1,10 +1,8 @@
|
||||
/* vi: set sw=4 ts=4: */
|
||||
/*
|
||||
* ether-wake.c - Send a magic packet to wake up sleeping machines.
|
||||
*
|
||||
* 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.
|
||||
* Licensed under GPLv2 or later, see file LICENSE in this tarball for details.
|
||||
*
|
||||
* Author: Donald Becker, http://www.scyld.com/"; http://www.scyld.com/wakeonlan.html
|
||||
* Busybox port: Christian Volkmann <haveaniceday@online.de>
|
||||
@ -95,10 +93,10 @@
|
||||
*/
|
||||
#ifdef PF_PACKET
|
||||
# define whereto_t sockaddr_ll
|
||||
# define make_socket() socket(PF_PACKET, SOCK_RAW, 0)
|
||||
# define make_socket() bb_xsocket(PF_PACKET, SOCK_RAW, 0)
|
||||
#else
|
||||
# define whereto_t sockaddr
|
||||
# define make_socket() socket(AF_INET, SOCK_PACKET, SOCK_PACKET)
|
||||
# define make_socket() bb_xsocket(AF_INET, SOCK_PACKET, SOCK_PACKET)
|
||||
#endif
|
||||
|
||||
#ifdef DEBUG
|
||||
@ -145,8 +143,6 @@ int etherwake_main(int argc, char *argv[])
|
||||
|
||||
/* create the raw socket */
|
||||
s = make_socket();
|
||||
if (s < 0)
|
||||
bb_perror_msg_and_die(bb_msg_can_not_create_raw_socket);
|
||||
|
||||
/* now that we have a raw socket we can drop root */
|
||||
setuid(getuid());
|
||||
|
@ -6,20 +6,7 @@
|
||||
* Original Author: Tomi Ollila <too@iki.fi>
|
||||
* http://www.guru-group.fi/~too/sw/
|
||||
*
|
||||
* 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*
|
||||
* Licensed under GPLv2 or later, see file LICENSE in this tarball for details.
|
||||
*/
|
||||
|
||||
#include <unistd.h>
|
||||
@ -117,8 +104,7 @@ static void inetbind(void)
|
||||
else
|
||||
port = se->s_port;
|
||||
|
||||
if ((s = socket(AF_INET, SOCK_STREAM, 0)) < 0)
|
||||
bb_perror_msg_and_die("Cannot create server socket");
|
||||
s = bb_xsocket(AF_INET, SOCK_STREAM, 0);
|
||||
|
||||
setsockopt(s, SOL_SOCKET, SO_REUSEADDR, &one, sizeof(one));
|
||||
|
||||
|
@ -6,19 +6,7 @@
|
||||
*
|
||||
* simplify patch stolen from libbb without using strdup
|
||||
*
|
||||
* 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
* Licensed under GPLv2 or later, see file LICENSE in this tarball for details.
|
||||
*
|
||||
*****************************************************************************
|
||||
*
|
||||
@ -959,25 +947,21 @@ static int openServer(void)
|
||||
memset(&lsocket, 0, sizeof(lsocket));
|
||||
lsocket.sin_family = AF_INET;
|
||||
lsocket.sin_addr.s_addr = INADDR_ANY;
|
||||
lsocket.sin_port = htons(config->port) ;
|
||||
fd = socket(AF_INET, SOCK_STREAM, 0);
|
||||
if (fd >= 0) {
|
||||
/* tell the OS it's OK to reuse a previous address even though */
|
||||
/* it may still be in a close down state. Allows bind to succeed. */
|
||||
int on = 1;
|
||||
lsocket.sin_port = htons(config->port);
|
||||
fd = bb_xsocket(AF_INET, SOCK_STREAM, 0);
|
||||
/* tell the OS it's OK to reuse a previous address even though */
|
||||
/* it may still be in a close down state. Allows bind to succeed. */
|
||||
int on = 1;
|
||||
#ifdef SO_REUSEPORT
|
||||
setsockopt(fd, SOL_SOCKET, SO_REUSEPORT, (void *)&on, sizeof(on)) ;
|
||||
setsockopt(fd, SOL_SOCKET, SO_REUSEPORT, (void *)&on, sizeof(on)) ;
|
||||
#else
|
||||
setsockopt(fd, SOL_SOCKET, SO_REUSEADDR, (void *)&on, sizeof(on)) ;
|
||||
setsockopt(fd, SOL_SOCKET, SO_REUSEADDR, (void *)&on, sizeof(on)) ;
|
||||
#endif
|
||||
if (bind(fd, (struct sockaddr *)&lsocket, sizeof(lsocket)) == 0) {
|
||||
listen(fd, 9);
|
||||
signal(SIGCHLD, SIG_IGN); /* prevent zombie (defunct) processes */
|
||||
} else {
|
||||
bb_perror_msg_and_die("bind");
|
||||
}
|
||||
if (bind(fd, (struct sockaddr *)&lsocket, sizeof(lsocket)) == 0) {
|
||||
listen(fd, 9);
|
||||
signal(SIGCHLD, SIG_IGN); /* prevent zombie (defunct) processes */
|
||||
} else {
|
||||
bb_perror_msg_and_die("create socket");
|
||||
bb_perror_msg_and_die("bind");
|
||||
}
|
||||
return fd;
|
||||
}
|
||||
|
@ -1,3 +1,4 @@
|
||||
/* vi: set sw=4 ts=4: */
|
||||
/* ifconfig
|
||||
*
|
||||
* Similar to the standard Unix ifconfig, but with only the necessary
|
||||
@ -9,14 +10,7 @@
|
||||
* Authors of the original ifconfig was:
|
||||
* Fred N. van Kempen, <waltje@uwalt.nl.mugnet.org>
|
||||
*
|
||||
* 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.
|
||||
*
|
||||
* $Id: ifconfig.c,v 1.30 2004/03/31 11:30:08 andersen Exp $
|
||||
*
|
||||
* Licensed under GPLv2 or later, see file LICENSE in this tarball for details.
|
||||
*/
|
||||
|
||||
/*
|
||||
@ -335,9 +329,7 @@ int ifconfig_main(int argc, char **argv)
|
||||
}
|
||||
|
||||
/* Create a channel to the NET kernel. */
|
||||
if ((sockfd = socket(AF_INET, SOCK_DGRAM, 0)) < 0) {
|
||||
bb_perror_msg_and_die("socket");
|
||||
}
|
||||
sockfd = bb_xsocket(AF_INET, SOCK_DGRAM, 0);
|
||||
|
||||
/* get interface name */
|
||||
safe_strncpy(ifr.ifr_name, *argv, IFNAMSIZ);
|
||||
|
@ -10,19 +10,7 @@
|
||||
19990512 Uses Select. Charles P. Wright
|
||||
19990513 Fixes stdin stupidity and uses buffers. Charles P. Wright
|
||||
|
||||
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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
Licensed under GPLv2 or later, see file LICENSE in this tarball for details.
|
||||
*/
|
||||
|
||||
#include <stdio.h>
|
||||
@ -87,8 +75,7 @@ int nc_main(int argc, char **argv)
|
||||
if ((do_listen && optind != argc) || (!do_listen && optind + 2 != argc))
|
||||
bb_show_usage();
|
||||
|
||||
if ((sfd = socket(AF_INET, SOCK_STREAM, 0)) < 0)
|
||||
bb_perror_msg_and_die("socket");
|
||||
sfd = bb_xsocket(AF_INET, SOCK_STREAM, 0);
|
||||
x = 1;
|
||||
if (setsockopt(sfd, SOL_SOCKET, SO_REUSEADDR, &x, sizeof (x)) == -1)
|
||||
bb_perror_msg_and_die("reuseaddr");
|
||||
|
@ -1,3 +1,4 @@
|
||||
/* vi: set sw=4 ts=4: */
|
||||
/* route
|
||||
*
|
||||
* Similar to the standard Unix route, but with only the necessary
|
||||
@ -9,11 +10,7 @@
|
||||
* Fred N. van Kempen, <waltje@uwalt.nl.mugnet.org>
|
||||
* (derived from FvK's 'route.c 1.70 01/04/94')
|
||||
*
|
||||
* 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.
|
||||
* Licensed under GPLv2 or later, see file LICENSE in this tarball for details.
|
||||
*
|
||||
* $Id: route.c,v 1.26 2004/03/19 23:27:08 mjn3 Exp $
|
||||
*
|
||||
@ -338,9 +335,7 @@ static void INET_setroute(int action, char **args)
|
||||
}
|
||||
|
||||
/* Create a socket to the INET kernel. */
|
||||
if ((skfd = socket(AF_INET, SOCK_DGRAM, 0)) < 0) {
|
||||
bb_perror_msg_and_die("socket");
|
||||
}
|
||||
skfd = bb_xsocket(AF_INET, SOCK_DGRAM, 0);
|
||||
|
||||
if (ioctl(skfd, ((action==RTACTION_ADD) ? SIOCADDRT : SIOCDELRT), &rt)<0) {
|
||||
bb_perror_msg_and_die("SIOC[ADD|DEL]RT");
|
||||
@ -434,9 +429,7 @@ static void INET6_setroute(int action, char **args)
|
||||
}
|
||||
|
||||
/* Create a socket to the INET6 kernel. */
|
||||
if ((skfd = socket(AF_INET6, SOCK_DGRAM, 0)) < 0) {
|
||||
bb_perror_msg_and_die("socket");
|
||||
}
|
||||
skfd = bb_xsocket(AF_INET6, SOCK_DGRAM, 0);
|
||||
|
||||
rt.rtmsg_ifindex = 0;
|
||||
|
||||
|
@ -1,10 +1,9 @@
|
||||
/* $Id: telnetd.c,v 1.13 2004/09/14 17:24:58 bug1 Exp $
|
||||
*
|
||||
/* vi:set ts=4:*/
|
||||
/*
|
||||
* Simple telnet server
|
||||
* Bjorn Wesen, Axis Communications AB (bjornw@axis.com)
|
||||
*
|
||||
* This file is distributed under the Gnu Public License (GPL),
|
||||
* please see the file LICENSE for further information.
|
||||
* Licensed under GPL, see file LICENSE in this tarball for details.
|
||||
*
|
||||
* ---------------------------------------------------------------------------
|
||||
* (C) Copyright 2000, Axis Communications AB, LUND, SWEDEN
|
||||
@ -446,10 +445,7 @@ telnetd_main(int argc, char **argv)
|
||||
|
||||
/* Grab a TCP socket. */
|
||||
|
||||
master_fd = socket(SOCKET_TYPE, SOCK_STREAM, 0);
|
||||
if (master_fd < 0) {
|
||||
bb_perror_msg_and_die("socket");
|
||||
}
|
||||
master_fd = bb_xsocket(SOCKET_TYPE, SOCK_STREAM, 0);
|
||||
(void)setsockopt(master_fd, SOL_SOCKET, SO_REUSEADDR, &on, sizeof(on));
|
||||
|
||||
/* Set it to listen to specified port. */
|
||||
|
@ -1,35 +1,23 @@
|
||||
/* ------------------------------------------------------------------------- */
|
||||
/* tftp.c */
|
||||
/* */
|
||||
/* A simple tftp client for busybox. */
|
||||
/* Tries to follow RFC1350. */
|
||||
/* Only "octet" mode supported. */
|
||||
/* Optional blocksize negotiation (RFC2347 + RFC2348) */
|
||||
/* */
|
||||
/* Copyright (C) 2001 Magnus Damm <damm@opensource.se> */
|
||||
/* */
|
||||
/* Parts of the code based on: */
|
||||
/* */
|
||||
/* atftp: Copyright (C) 2000 Jean-Pierre Lefebvre <helix@step.polymtl.ca> */
|
||||
/* and Remi Lefebvre <remi@debian.org> */
|
||||
/* */
|
||||
/* utftp: Copyright (C) 1999 Uwe Ohse <uwe@ohse.de> */
|
||||
/* */
|
||||
/* 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
|
||||
/* */
|
||||
/* ------------------------------------------------------------------------- */
|
||||
/* vi: set sw=4 ts=4: */
|
||||
/* -------------------------------------------------------------------------
|
||||
* tftp.c
|
||||
*
|
||||
* A simple tftp client for busybox.
|
||||
* Tries to follow RFC1350.
|
||||
* Only "octet" mode supported.
|
||||
* Optional blocksize negotiation (RFC2347 + RFC2348)
|
||||
*
|
||||
* Copyright (C) 2001 Magnus Damm <damm@opensource.se>
|
||||
*
|
||||
* Parts of the code based on:
|
||||
*
|
||||
* atftp: Copyright (C) 2000 Jean-Pierre Lefebvre <helix@step.polymtl.ca>
|
||||
* and Remi Lefebvre <remi@debian.org>
|
||||
*
|
||||
* utftp: Copyright (C) 1999 Uwe Ohse <uwe@ohse.de>
|
||||
*
|
||||
* Licensed under GPLv2 or later, see file LICENSE in this tarball for details.
|
||||
* ------------------------------------------------------------------------- */
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
@ -177,7 +165,7 @@ static inline int tftp(const int cmd, const struct hostent *host,
|
||||
|
||||
tftp_bufsize += 4;
|
||||
|
||||
if ((socketfd = socket(PF_INET, SOCK_DGRAM, 0)) < 0) {
|
||||
if ((socketfd = socket(PF_INET, SOCK_DGRAM, 0)) < 0) { /* bb_xsocket? */
|
||||
bb_perror_msg("socket");
|
||||
return EXIT_FAILURE;
|
||||
}
|
||||
|
@ -1,3 +1,4 @@
|
||||
/* vi: set sw=4 ts=4: */
|
||||
/*
|
||||
* Copyright (c) 1988, 1989, 1991, 1994, 1995, 1996, 1997, 1998, 1999, 2000
|
||||
* The Regents of the University of California. All rights reserved.
|
||||
@ -359,9 +360,7 @@ ifaddrlist(struct IFADDRLIST **ipaddrp)
|
||||
struct ifreq ibuf[(32 * 1024) / sizeof(struct ifreq)], ifr;
|
||||
struct IFADDRLIST *st_ifaddrlist;
|
||||
|
||||
fd = socket(AF_INET, SOCK_DGRAM, 0);
|
||||
if (fd < 0)
|
||||
bb_perror_msg_and_die("socket");
|
||||
fd = bb_xsocket(AF_INET, SOCK_DGRAM, 0);
|
||||
|
||||
ifc.ifc_len = sizeof(ibuf);
|
||||
ifc.ifc_buf = (caddr_t)ibuf;
|
||||
@ -1091,8 +1090,7 @@ traceroute_main(int argc, char *argv[])
|
||||
if (n > 2)
|
||||
close(n);
|
||||
|
||||
if ((s = socket(AF_INET, SOCK_RAW, pe->p_proto)) < 0)
|
||||
bb_perror_msg_and_die(bb_msg_can_not_create_raw_socket);
|
||||
s = bb_xsocket(AF_INET, SOCK_RAW, pe->p_proto);
|
||||
|
||||
#ifdef CONFIG_FEATURE_TRACEROUTE_SO_DEBUG
|
||||
if (op & USAGE_OP_DEBUG)
|
||||
@ -1103,9 +1101,7 @@ traceroute_main(int argc, char *argv[])
|
||||
(void)setsockopt(s, SOL_SOCKET, SO_DONTROUTE, (char *)&on,
|
||||
sizeof(on));
|
||||
|
||||
sndsock = socket(AF_INET, SOCK_RAW, IPPROTO_RAW);
|
||||
if (sndsock < 0)
|
||||
bb_perror_msg_and_die(bb_msg_can_not_create_raw_socket);
|
||||
sndsock = bb_xsocket(AF_INET, SOCK_RAW, IPPROTO_RAW);
|
||||
|
||||
#ifdef CONFIG_FEATURE_TRACEROUTE_SOURCE_ROUTE
|
||||
#if defined(IP_OPTIONS)
|
||||
|
@ -4,20 +4,7 @@
|
||||
*
|
||||
* Copyright (C) 2001 Manuel Novoa III <mjn3@codepoet.org>
|
||||
*
|
||||
* 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*
|
||||
* Licensed under GPLv2 or later, see file LICENSE in this tarball for details.
|
||||
*/
|
||||
|
||||
/* BB_AUDIT SUSv3 N/A */
|
||||
@ -136,9 +123,7 @@ int vconfig_main(int argc, char **argv)
|
||||
}
|
||||
|
||||
/* Don't bother closing the filedes. It will be closed on cleanup. */
|
||||
if (open(conf_file_name, O_RDONLY) < 0) { /* Is 802.1q is present? */
|
||||
bb_perror_msg_and_die("open %s", conf_file_name);
|
||||
}
|
||||
bb_xopen(conf_file_name, O_RDONLY); /* Will die if 802.1q is not present */
|
||||
|
||||
memset(&ifr, 0, sizeof(struct vlan_ioctl_args));
|
||||
|
||||
@ -173,10 +158,9 @@ int vconfig_main(int argc, char **argv)
|
||||
}
|
||||
}
|
||||
|
||||
if (((fd = socket(AF_INET, SOCK_STREAM, 0)) < 0)
|
||||
|| (ioctl(fd, SIOCSIFVLAN, &ifr) < 0)
|
||||
) {
|
||||
bb_perror_msg_and_die("socket or ioctl error for %s", *argv);
|
||||
fd = bb_xsocket(AF_INET, SOCK_STREAM, 0);
|
||||
if (ioctl(fd, SIOCSIFVLAN, &ifr) < 0) {
|
||||
bb_perror_msg_and_die("ioctl error for %s", *argv);
|
||||
}
|
||||
|
||||
return 0;
|
||||
|
@ -369,12 +369,7 @@ static void message(char *fmt, ...)
|
||||
static void init_RemoteLog(void)
|
||||
{
|
||||
memset(&remoteaddr, 0, sizeof(remoteaddr));
|
||||
remotefd = socket(AF_INET, SOCK_DGRAM, 0);
|
||||
|
||||
if (remotefd < 0) {
|
||||
bb_error_msg("cannot create socket");
|
||||
}
|
||||
|
||||
remotefd = bb_xsocket(AF_INET, SOCK_DGRAM, 0);
|
||||
remoteaddr.sin_family = AF_INET;
|
||||
remoteaddr.sin_addr = *(struct in_addr *) *(xgethostbyname(RemoteHost))->h_addr_list;
|
||||
remoteaddr.sin_port = htons(RemotePort);
|
||||
@ -543,11 +538,7 @@ static void doSyslogd(void)
|
||||
memset(&sunx, 0, sizeof(sunx));
|
||||
sunx.sun_family = AF_UNIX;
|
||||
strncpy(sunx.sun_path, lfile, sizeof(sunx.sun_path));
|
||||
if ((sock_fd = socket(AF_UNIX, SOCK_DGRAM, 0)) < 0) {
|
||||
bb_perror_msg_and_die("Couldn't get file descriptor for socket "
|
||||
_PATH_LOG);
|
||||
}
|
||||
|
||||
sock_fd = bb_xsocket(AF_UNIX, SOCK_DGRAM, 0);
|
||||
addrLength = sizeof(sunx.sun_family) + strlen(sunx.sun_path);
|
||||
if (bind(sock_fd, (struct sockaddr *) &sunx, addrLength) < 0) {
|
||||
bb_perror_msg_and_die("Could not connect to socket " _PATH_LOG);
|
||||
|
@ -4,19 +4,7 @@
|
||||
*
|
||||
* Copyright (C) 1999 by Randolph Chung <tausq@debian.org>
|
||||
*
|
||||
* 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
* Licensed under GPLv2 or later, see file LICENSE in this tarball for details.
|
||||
*
|
||||
* This is a from-scratch implementation of fbset; but the de facto fbset
|
||||
* implementation was a good reference. fbset (original) is released under
|
||||
@ -408,8 +396,7 @@ int fbset_main(int argc, char **argv)
|
||||
}
|
||||
}
|
||||
|
||||
if ((fh = open(fbdev, O_RDONLY)) < 0)
|
||||
bb_perror_msg_and_die("fbset(open)");
|
||||
fh = bb_xopen(fbdev, O_RDONLY);
|
||||
if (ioctl(fh, FBIOGET_VSCREENINFO, &var))
|
||||
bb_perror_msg_and_die("fbset(ioctl)");
|
||||
if (g_options & OPT_READMODE) {
|
||||
|
@ -307,8 +307,7 @@ static inline int get_size(const char *file)
|
||||
int fd;
|
||||
long size;
|
||||
|
||||
if ((fd = open(file, O_RDWR)) < 0)
|
||||
bb_perror_msg_and_die("%s", file);
|
||||
fd = bb_xopen(file, O_RDWR);
|
||||
if (ioctl(fd, BLKGETSIZE, &size) >= 0) {
|
||||
close(fd);
|
||||
return (size * 512);
|
||||
@ -821,9 +820,7 @@ goodbye:
|
||||
tmp += dirsize;
|
||||
*(short *) tmp = 2;
|
||||
strcpy(tmp + 2, ".badblocks");
|
||||
DEV = open(device_name, O_RDWR);
|
||||
if (DEV < 0)
|
||||
bb_error_msg_and_die("unable to open %s", device_name);
|
||||
DEV = bb_xopen(device_name, O_RDWR);
|
||||
if (fstat(DEV, &statbuf) < 0)
|
||||
bb_error_msg_and_die("unable to stat %s", device_name);
|
||||
if (!S_ISBLK(statbuf.st_mode))
|
||||
|
@ -258,8 +258,7 @@ static inline long get_size(const char *file)
|
||||
int fd;
|
||||
long size;
|
||||
|
||||
if ((fd = open(file, O_RDONLY)) < 0) /* TODO: bb_xopen3 */
|
||||
bb_perror_msg_and_die("%s", file);
|
||||
fd = bb_xopen(file, O_RDONLY);
|
||||
if (ioctl(fd, BLKGETSIZE, &size) >= 0) {
|
||||
size /= pagesize / 512;
|
||||
} else {
|
||||
@ -342,8 +341,8 @@ int mkswap_main(int argc, char **argv)
|
||||
PAGES * goodpages);
|
||||
}
|
||||
|
||||
DEV = open(device_name, O_RDWR);
|
||||
if (DEV < 0 || fstat(DEV, &statbuf) < 0)
|
||||
DEV = bb_xopen(device_name, O_RDWR);
|
||||
if (fstat(DEV, &statbuf) < 0)
|
||||
bb_perror_msg_and_die("%s", device_name);
|
||||
if (!S_ISBLK(statbuf.st_mode))
|
||||
check = 0;
|
||||
|
Loading…
Reference in New Issue
Block a user