- 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:
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user