83 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			83 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
/*****************************************************************************
 | 
						|
 *                                  _   _ ____  _
 | 
						|
 *  Project                     ___| | | |  _ \| |
 | 
						|
 *                             / __| | | | |_) | |
 | 
						|
 *                            | (__| |_| |  _ <| |___
 | 
						|
 *                             \___|\___/|_| \_\_____|
 | 
						|
 *
 | 
						|
 * $Id: first.c,v 1.19 2008-09-20 04:26:55 yangtse Exp $
 | 
						|
 */
 | 
						|
 | 
						|
#include "test.h"
 | 
						|
 | 
						|
#ifdef CURLDEBUG
 | 
						|
#  define MEMDEBUG_NODEFINES
 | 
						|
#  include "memdebug.h"
 | 
						|
#endif
 | 
						|
 | 
						|
int select_test (int num_fds, fd_set *rd, fd_set *wr, fd_set *exc,
 | 
						|
                 struct timeval *tv)
 | 
						|
{
 | 
						|
#ifdef USE_WINSOCK
 | 
						|
  /* Winsock doesn't like no socket set in 'rd', 'wr' or 'exc'. This is
 | 
						|
   * case when 'num_fds <= 0. So sleep.
 | 
						|
   */
 | 
						|
  if (num_fds <= 0) {
 | 
						|
    Sleep(1000*tv->tv_sec + tv->tv_usec/1000);
 | 
						|
    return 0;
 | 
						|
  }
 | 
						|
#endif
 | 
						|
  return select(num_fds, rd, wr, exc, tv);
 | 
						|
}
 | 
						|
 | 
						|
char *libtest_arg2=NULL;
 | 
						|
char *libtest_arg3=NULL;
 | 
						|
int test_argc;
 | 
						|
char **test_argv;
 | 
						|
 | 
						|
 | 
						|
int main(int argc, char **argv)
 | 
						|
{
 | 
						|
  char *URL;
 | 
						|
 | 
						|
#ifdef CURLDEBUG
 | 
						|
  /* this sends all memory debug messages to a logfile named memdump */
 | 
						|
  char *env = curl_getenv("CURL_MEMDEBUG");
 | 
						|
  if(env) {
 | 
						|
    /* use the value as file name */
 | 
						|
    char *s = strdup(env);
 | 
						|
    curl_free(env);
 | 
						|
    curl_memdebug(s);
 | 
						|
    free(s);
 | 
						|
    /* this weird strdup() and stuff here is to make the curl_free() get
 | 
						|
       called before the memdebug() as otherwise the memdebug tracing will
 | 
						|
       with tracing a free() without an alloc! */
 | 
						|
  }
 | 
						|
  /* this enables the fail-on-alloc-number-N functionality */
 | 
						|
  env = curl_getenv("CURL_MEMLIMIT");
 | 
						|
  if(env) {
 | 
						|
    curl_memlimit(atoi(env));
 | 
						|
    curl_free(env);
 | 
						|
  }
 | 
						|
#endif
 | 
						|
  if(argc< 2 ) {
 | 
						|
    fprintf(stderr, "Pass URL as argument please\n");
 | 
						|
    return 1;
 | 
						|
  }
 | 
						|
 | 
						|
  test_argc = argc;
 | 
						|
  test_argv = argv;
 | 
						|
 | 
						|
  if(argc>2)
 | 
						|
    libtest_arg2=argv[2];
 | 
						|
 | 
						|
  if(argc>3)
 | 
						|
    libtest_arg3=argv[3];
 | 
						|
 | 
						|
  URL = argv[1]; /* provide this to the rest */
 | 
						|
 | 
						|
  fprintf(stderr, "URL: %s\n", URL);
 | 
						|
 | 
						|
  return test(URL);
 | 
						|
}
 |