use macros ERRNO, SET_ERRNO(), SOCKERRNO and SET_SOCKERRNO() for errno handling

This commit is contained in:
Yang Tse 2007-02-16 16:01:19 +00:00
parent aa4435c23b
commit 4894ce16fc
9 changed files with 31 additions and 72 deletions

View File

@ -1319,11 +1319,11 @@ static int str2offset(curl_off_t *val, char *str)
/* this is a duplicate of the function that is also used in libcurl */
*val = curlx_strtoofft(str, NULL, 0);
if ((*val == LLONG_MAX || *val == LLONG_MIN) && errno == ERANGE)
if ((*val == LLONG_MAX || *val == LLONG_MIN) && ERRNO == ERANGE)
return 1;
#else
*val = strtol(str, NULL, 0);
if ((*val == LONG_MIN || *val == LONG_MAX) && errno == ERANGE)
if ((*val == LONG_MIN || *val == LONG_MAX) && ERRNO == ERANGE)
return 1;
#endif
return 0;
@ -4621,6 +4621,7 @@ static int create_dir_hierarchy(char *outfile)
char *outdup;
char *dirbuildup;
int result=0;
int error;
outdup = strdup(outfile);
dirbuildup = malloc(sizeof(char) * strlen(outfile));
@ -4646,7 +4647,8 @@ static int create_dir_hierarchy(char *outfile)
if (access(dirbuildup, F_OK) == -1) {
result = mkdir(dirbuildup,(mode_t)0000750);
if (-1 == result) {
switch (errno) {
error = ERRNO;
switch (error) {
#ifdef EACCES
case EACCES:
fprintf(stderr,"You don't have permission to create %s.\n",

View File

@ -46,20 +46,6 @@ static int *fd = NULL;
static struct rlimit num_open;
static char msgbuff[256];
/*
* our_errno() returns the NOT *socket-related* errno (or equivalent)
* on this platform to hide platform specific for the calling function.
*/
static int our_errno(void)
{
#ifdef WIN32
return (int)GetLastError();
#else
return errno;
#endif
}
static void store_errmsg(const char *msg, int err)
{
if (!err)
@ -102,7 +88,7 @@ static int rlimit(int keep_open)
/* get initial open file limits */
if (getrlimit(RLIMIT_NOFILE, &rl) != 0) {
store_errmsg("getrlimit() failed", our_errno());
store_errmsg("getrlimit() failed", ERRNO);
fprintf(stderr, "%s\n", msgbuff);
return -1;
}
@ -145,7 +131,7 @@ static int rlimit(int keep_open)
fprintf(stderr, "raising soft limit up to hard limit\n");
rl.rlim_cur = rl.rlim_max;
if (setrlimit(RLIMIT_NOFILE, &rl) != 0) {
store_errmsg("setrlimit() failed", our_errno());
store_errmsg("setrlimit() failed", ERRNO);
fprintf(stderr, "%s\n", msgbuff);
return -2;
}
@ -153,7 +139,7 @@ static int rlimit(int keep_open)
/* get current open file limits */
if (getrlimit(RLIMIT_NOFILE, &rl) != 0) {
store_errmsg("getrlimit() failed", our_errno());
store_errmsg("getrlimit() failed", ERRNO);
fprintf(stderr, "%s\n", msgbuff);
return -3;
}
@ -233,7 +219,7 @@ static int rlimit(int keep_open)
}
} while (nitems && !memchunk);
if (!memchunk) {
store_errmsg("memchunk, malloc() failed", our_errno());
store_errmsg("memchunk, malloc() failed", ERRNO);
fprintf(stderr, "%s\n", msgbuff);
return -5;
}
@ -268,7 +254,7 @@ static int rlimit(int keep_open)
fd = malloc(sizeof(*fd) * (size_t)(num_open.rlim_max));
if (!fd) {
store_errmsg("fd, malloc() failed", our_errno());
store_errmsg("fd, malloc() failed", ERRNO);
fprintf(stderr, "%s\n", msgbuff);
free(memchunk);
return -7;
@ -291,7 +277,7 @@ static int rlimit(int keep_open)
fd[0] = open(DEV_NULL, O_RDONLY);
if (fd[0] < 0) {
sprintf(strbuff, "opening of %s failed", DEV_NULL);
store_errmsg(strbuff, our_errno());
store_errmsg(strbuff, ERRNO);
fprintf(stderr, "%s\n", msgbuff);
free(fd);
fd = NULL;

View File

@ -48,20 +48,6 @@ static int *fd = NULL;
static struct rlimit num_open;
static char msgbuff[256];
/*
* our_errno() returns the NOT *socket-related* errno (or equivalent)
* on this platform to hide platform specific for the calling function.
*/
static int our_errno(void)
{
#ifdef WIN32
return (int)GetLastError();
#else
return errno;
#endif
}
static void store_errmsg(const char *msg, int err)
{
if (!err)
@ -104,7 +90,7 @@ static int rlimit(int keep_open)
/* get initial open file limits */
if (getrlimit(RLIMIT_NOFILE, &rl) != 0) {
store_errmsg("getrlimit() failed", our_errno());
store_errmsg("getrlimit() failed", ERRNO);
fprintf(stderr, "%s\n", msgbuff);
return -1;
}
@ -141,7 +127,7 @@ static int rlimit(int keep_open)
fprintf(stderr, "raising soft limit up to hard limit\n");
rl.rlim_cur = rl.rlim_max;
if (setrlimit(RLIMIT_NOFILE, &rl) != 0) {
store_errmsg("setrlimit() failed", our_errno());
store_errmsg("setrlimit() failed", ERRNO);
fprintf(stderr, "%s\n", msgbuff);
return -2;
}
@ -149,7 +135,7 @@ static int rlimit(int keep_open)
/* get current open file limits */
if (getrlimit(RLIMIT_NOFILE, &rl) != 0) {
store_errmsg("getrlimit() failed", our_errno());
store_errmsg("getrlimit() failed", ERRNO);
fprintf(stderr, "%s\n", msgbuff);
return -3;
}
@ -208,7 +194,7 @@ static int rlimit(int keep_open)
}
} while (nitems && !memchunk);
if (!memchunk) {
store_errmsg("memchunk, malloc() failed", our_errno());
store_errmsg("memchunk, malloc() failed", ERRNO);
fprintf(stderr, "%s\n", msgbuff);
return -4;
}
@ -263,7 +249,7 @@ static int rlimit(int keep_open)
}
} while (num_open.rlim_max && !fd);
if (!fd) {
store_errmsg("fd, malloc() failed", our_errno());
store_errmsg("fd, malloc() failed", ERRNO);
fprintf(stderr, "%s\n", msgbuff);
free(memchunk);
return -6;
@ -286,7 +272,7 @@ static int rlimit(int keep_open)
fd[0] = open(DEV_NULL, O_RDONLY);
if (fd[0] < 0) {
sprintf(strbuff, "opening of %s failed", DEV_NULL);
store_errmsg(strbuff, our_errno());
store_errmsg(strbuff, ERRNO);
fprintf(stderr, "%s\n", msgbuff);
free(fd);
fd = NULL;

View File

@ -8,18 +8,17 @@
* $Id$
*/
#ifdef HAVE_CONFIG_H
/* Now include the setup.h file from libcurl's private libdir (the source
version, but that might include "config.h" from the build dir so we need
both of them in the include path), so that we get good in-depth knowledge
about the system we're building this on */
#include "setup.h"
#endif
#include <curl.h>
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <errno.h>
#ifdef HAVE_SYS_SOCKET_H
#include <sys/socket.h>

View File

@ -238,7 +238,7 @@ static int juggle(curl_socket_t *sockfdp,
do {
rc = select(maxfd + 1, &fds_read, &fds_write, &fds_err, &timeout);
} while((rc == -1) && (our_sockerrno() == EINTR));
} while((rc == -1) && (SOCKERRNO == EINTR));
switch(rc) {
case -1:
@ -447,7 +447,7 @@ static curl_socket_t sockdaemon(curl_socket_t sock,
/* start accepting connections */
rc = listen(sock, 4);
if(0 != rc) {
logmsg("listen() failed with error: %d", errno);
logmsg("listen() failed with error: %d", SOCKERRNO);
sclose(sock);
return CURL_SOCKET_BAD;
}
@ -570,7 +570,7 @@ int main(int argc, char *argv[])
sock = mksock(use_ipv6);
if (CURL_SOCKET_BAD == sock) {
logmsg("Error opening socket: %d", errno);
logmsg("Error opening socket: %d", SOCKERRNO);
return 1;
}

View File

@ -466,7 +466,7 @@ void storerequest(char *reqbuf)
do {
dump = fopen(REQUEST_DUMP, "ab");
} while ((dump == NULL) && ((error = errno) == EINTR));
} while ((dump == NULL) && ((error = ERRNO) == EINTR));
if (dump == NULL) {
logmsg("Error opening file %s error: %d", REQUEST_DUMP, error);
logmsg("Failed to write request input to " REQUEST_DUMP);
@ -479,7 +479,7 @@ void storerequest(char *reqbuf)
1, (size_t)writeleft, dump);
if (written > 0)
writeleft -= written;
} while ((writeleft > 0) && ((error = errno) == EINTR));
} while ((writeleft > 0) && ((error = ERRNO) == EINTR));
fclose(dump); /* close it ASAP */
@ -515,7 +515,7 @@ static int get_request(curl_socket_t sock, struct httprequest *req)
ssize_t got = sread(sock, reqbuf + req->offset, REQBUFSIZ - req->offset);
if (got <= 0) {
if (got < 0) {
logmsg("recv() returned error: %d", errno);
logmsg("recv() returned error: %d", SOCKERRNO);
return DOCNUMBER_INTERNAL;
}
logmsg("Connection closed by client");
@ -830,14 +830,14 @@ int main(int argc, char *argv[])
#endif
if (CURL_SOCKET_BAD == sock) {
logmsg("Error opening socket: %d", errno);
logmsg("Error opening socket: %d", SOCKERRNO);
return 1;
}
flag = 1;
if (0 != setsockopt(sock, SOL_SOCKET, SO_REUSEADDR,
(void *) &flag, sizeof(flag))) {
logmsg("setsockopt(SO_REUSEADDR) failed: %d", errno);
logmsg("setsockopt(SO_REUSEADDR) failed: %d", SOCKERRNO);
sclose(sock);
return 1;
}
@ -861,7 +861,7 @@ int main(int argc, char *argv[])
}
#endif /* ENABLE_IPV6 */
if(0 != rc) {
logmsg("Error binding socket: %d", errno);
logmsg("Error binding socket: %d", SOCKERRNO);
sclose(sock);
return 1;
}
@ -888,7 +888,7 @@ int main(int argc, char *argv[])
/* start accepting connections */
rc = listen(sock, 5);
if(0 != rc) {
logmsg("listen() failed with error: %d", errno);
logmsg("listen() failed with error: %d", SOCKERRNO);
sclose(sock);
return 1;
}
@ -897,7 +897,7 @@ int main(int argc, char *argv[])
msgsock = accept(sock, NULL, NULL);
if (CURL_SOCKET_BAD == msgsock) {
printf("MAJOR ERROR: accept() failed with error: %d\n", errno);
printf("MAJOR ERROR: accept() failed with error: %d\n", SOCKERRNO);
break;
}

View File

@ -749,7 +749,7 @@ static void sendtftp(struct testcase *test, struct formats *pf)
do {
size = readit(test, &dp, pf->f_convert);
if (size < 0) {
nak(errno + 100);
nak(ERRNO + 100);
return;
}
dp->th_opcode = htons((u_short)DATA);
@ -864,7 +864,7 @@ send_ack:
size = writeit(test, &dp, (int)(n - 4), pf->f_convert);
if (size != (n-4)) { /* ahem */
if (size < 0)
nak(errno + 100);
nak(ERRNO + 100);
else
nak(ENOSPACE);
goto abort;

View File

@ -59,19 +59,6 @@
const struct in6_addr in6addr_any = {{ IN6ADDR_ANY_INIT }};
#endif
/*
* our_sockerrno() returns the *socket-related* errno (or equivalent) on this
* platform to hide platform specific for the function that calls this.
*/
int our_sockerrno(void)
{
#ifdef USE_WINSOCK
return (int)WSAGetLastError();
#else
return errno;
#endif
}
/* someone else must set this properly */
extern const char *serverlogfile;

View File

@ -23,7 +23,6 @@
* $Id$
***************************************************************************/
int our_sockerrno(void);
void logmsg(const char *msg, ...);
#ifndef FALSE