mirror of
https://github.com/moparisthebest/curl
synced 2024-12-21 23:58:49 -05:00
weirdo hack to fix debian bug report 278691:
'curl -v writes debugging to its network socket if stderr is closed'
This commit is contained in:
parent
3347ced899
commit
facfa19cdd
9
CHANGES
9
CHANGES
@ -6,6 +6,15 @@
|
||||
|
||||
Changelog
|
||||
|
||||
Daniel (8 November 2004)
|
||||
- Ian Gulliver reported in debian bug report #278691: if curl is invoked in an
|
||||
environment where stderr is closed the -v output will still be sent to file
|
||||
descriptor 2 which then might be the network socket handle! Now we have a
|
||||
weird hack instead that attempts to make sure that file descriptor 2 is
|
||||
opened (with a call to pipe()) before libcurl is called to do the transfer.
|
||||
configure now checks for pipe() and systems without pipe don't get the weird
|
||||
hack done.
|
||||
|
||||
Daniel (5 November 2004)
|
||||
- Tim Sneddon made libcurl send no more than 64K in a single first chunk when
|
||||
doing a huge POST on VMS, as this is a system limitation. Default on general
|
||||
|
@ -1227,6 +1227,7 @@ AC_CHECK_FUNCS( strtoll \
|
||||
basename \
|
||||
setlocale \
|
||||
ftruncate \
|
||||
pipe \
|
||||
poll,
|
||||
dnl if found
|
||||
[],
|
||||
|
@ -109,3 +109,9 @@
|
||||
|
||||
/* Define to 1 if you have the `gettimeofday' function. */
|
||||
#undef HAVE_GETTIMEOFDAY
|
||||
|
||||
/* Define to 1 if you have the `ftruncate' function. */
|
||||
#undef HAVE_FTRUNCATE
|
||||
|
||||
/* Define to 1 if you have the `pipe' function. */
|
||||
#undef HAVE_PIPE
|
||||
|
23
src/main.c
23
src/main.c
@ -3771,12 +3771,35 @@ operate(struct Configurable *config, int argc, char *argv[])
|
||||
return res;
|
||||
}
|
||||
|
||||
static void checkfds(void);
|
||||
|
||||
static void checkfds(void)
|
||||
{
|
||||
#ifdef HAVE_PIPE
|
||||
int fd[2] = { STDIN_FILENO, STDIN_FILENO };
|
||||
while( fd[0] == STDIN_FILENO ||
|
||||
fd[0] == STDOUT_FILENO ||
|
||||
fd[0] == STDERR_FILENO ||
|
||||
fd[1] == STDIN_FILENO ||
|
||||
fd[1] == STDOUT_FILENO ||
|
||||
fd[1] == STDERR_FILENO )
|
||||
pipe(fd);
|
||||
|
||||
close(fd[0]);
|
||||
close(fd[1]);
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
|
||||
int main(int argc, char *argv[])
|
||||
{
|
||||
int res;
|
||||
struct Configurable config;
|
||||
memset(&config, 0, sizeof(struct Configurable));
|
||||
|
||||
checkfds();
|
||||
|
||||
res = operate(&config, argc, argv);
|
||||
free_config_fields(&config);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user