1
0
mirror of https://github.com/moparisthebest/curl synced 2024-12-21 23:58:49 -05:00

modified and corrected test 506

This commit is contained in:
Daniel Stenberg 2003-12-16 09:49:36 +00:00
parent d262d0a62a
commit 989ec98ebd
2 changed files with 77 additions and 57 deletions

View File

@ -63,73 +63,79 @@ CURL_LOCK_DATA_COOKIE
CURL_LOCK_DATA_DNS CURL_LOCK_DATA_DNS
*** run 1 *** run 1
CURLOPT_SHARE CURLOPT_SHARE
lock: share <Pigs in space> lock: share <Pigs in space>: 0
unlock: share <Pigs in space> unlock: share <Pigs in space>: 1
PERFORM PERFORM
lock: dns <Pigs in space> lock: dns <Pigs in space>: 2
unlock: dns <Pigs in space> unlock: dns <Pigs in space>: 3
lock: dns <Pigs in space> lock: dns <Pigs in space>: 4
unlock: dns <Pigs in space> unlock: dns <Pigs in space>: 5
lock: cookie <Pigs in space> lock: cookie <Pigs in space>: 6
unlock: cookie <Pigs in space> unlock: cookie <Pigs in space>: 7
lock: cookie <Pigs in space> lock: cookie <Pigs in space>: 8
unlock: cookie <Pigs in space> unlock: cookie <Pigs in space>: 9
lock: cookie <Pigs in space> lock: cookie <Pigs in space>: 10
unlock: cookie <Pigs in space> unlock: cookie <Pigs in space>: 11
lock: cookie <Pigs in space> lock: cookie <Pigs in space>: 12
unlock: cookie <Pigs in space> unlock: cookie <Pigs in space>: 13
run 1: set cookie 1, 2 and 3 run 1: set cookie 1, 2 and 3
lock: dns <Pigs in space> lock: dns <Pigs in space>: 14
unlock: dns <Pigs in space> unlock: dns <Pigs in space>: 15
lock: dns <Pigs in space>: 16
unlock: dns <Pigs in space>: 17
CLEANUP CLEANUP
lock: cookie <Pigs in space> lock: cookie <Pigs in space>: 18
unlock: cookie <Pigs in space> unlock: cookie <Pigs in space>: 19
*** run 2 *** run 2
CURLOPT_SHARE CURLOPT_SHARE
lock: share <Pigs in space> lock: share <Pigs in space>: 20
unlock: share <Pigs in space> unlock: share <Pigs in space>: 21
PERFORM PERFORM
lock: dns <Pigs in space> lock: dns <Pigs in space>: 22
unlock: dns <Pigs in space> unlock: dns <Pigs in space>: 23
lock: cookie <Pigs in space> lock: cookie <Pigs in space>: 24
unlock: cookie <Pigs in space> unlock: cookie <Pigs in space>: 25
lock: cookie <Pigs in space> lock: cookie <Pigs in space>: 26
unlock: cookie <Pigs in space> unlock: cookie <Pigs in space>: 27
lock: cookie <Pigs in space> lock: cookie <Pigs in space>: 28
unlock: cookie <Pigs in space> unlock: cookie <Pigs in space>: 29
run 2: set cookie 4 and 5 run 2: set cookie 4 and 5
lock: dns <Pigs in space> lock: dns <Pigs in space>: 30
unlock: dns <Pigs in space> unlock: dns <Pigs in space>: 31
lock: dns <Pigs in space>: 32
unlock: dns <Pigs in space>: 33
CLEANUP CLEANUP
lock: cookie <Pigs in space> lock: cookie <Pigs in space>: 34
unlock: cookie <Pigs in space> unlock: cookie <Pigs in space>: 35
*** run 3 *** run 3
CURLOPT_SHARE CURLOPT_SHARE
lock: share <Pigs in space> lock: share <Pigs in space>: 36
unlock: share <Pigs in space> unlock: share <Pigs in space>: 37
CURLOPT_COOKIEJAR CURLOPT_COOKIEJAR
PERFORM PERFORM
lock: dns <Pigs in space> lock: dns <Pigs in space>: 38
unlock: dns <Pigs in space> unlock: dns <Pigs in space>: 39
lock: cookie <Pigs in space> lock: cookie <Pigs in space>: 40
unlock: cookie <Pigs in space> unlock: cookie <Pigs in space>: 41
lock: cookie <Pigs in space> lock: cookie <Pigs in space>: 42
unlock: cookie <Pigs in space> unlock: cookie <Pigs in space>: 43
lock: cookie <Pigs in space> lock: cookie <Pigs in space>: 44
unlock: cookie <Pigs in space> unlock: cookie <Pigs in space>: 45
run 3: overwrite cookie 1 and 4 run 3: overwrite cookie 1 and 4
lock: dns <Pigs in space> lock: dns <Pigs in space>: 46
unlock: dns <Pigs in space> unlock: dns <Pigs in space>: 47
lock: dns <Pigs in space>: 48
unlock: dns <Pigs in space>: 49
try SHARE_CLEANUP... try SHARE_CLEANUP...
lock: share <Pigs in space> lock: share <Pigs in space>: 50
unlock: share <Pigs in space> unlock: share <Pigs in space>: 51
SHARE_CLEANUP failed, correct SHARE_CLEANUP failed, correct
CLEANUP CLEANUP
lock: cookie <Pigs in space> lock: cookie <Pigs in space>: 52
unlock: cookie <Pigs in space> unlock: cookie <Pigs in space>: 53
SHARE_CLEANUP SHARE_CLEANUP
lock: share <Pigs in space> lock: share <Pigs in space>: 54
unlock: share <Pigs in space> unlock: share <Pigs in space>: 55
GLOBAL_CLEANUP GLOBAL_CLEANUP
</stdout> </stdout>
<stderr> <stderr>

View File

@ -14,20 +14,27 @@ struct Tdata {
char *url; char *url;
}; };
struct userdata {
char *text;
int counter;
};
/* lock callback */ /* lock callback */
void lock(CURL *handle, curl_lock_data data, curl_lock_access access, void lock(CURL *handle, curl_lock_data data, curl_lock_access access,
void *useptr ) void *useptr )
{ {
const char *what; const char *what;
struct userdata *user = (struct userdata *)useptr;
(void)handle; (void)handle;
(void)access; (void)access;
switch ( data ) { switch ( data ) {
case CURL_LOCK_DATA_SHARE: case CURL_LOCK_DATA_SHARE:
what = "share "; what = "share";
break; break;
case CURL_LOCK_DATA_DNS: case CURL_LOCK_DATA_DNS:
what = "dns "; what = "dns";
break; break;
case CURL_LOCK_DATA_COOKIE: case CURL_LOCK_DATA_COOKIE:
what = "cookie"; what = "cookie";
@ -36,20 +43,22 @@ void lock(CURL *handle, curl_lock_data data, curl_lock_access access,
fprintf(stderr, "lock: no such data: %d\n",data); fprintf(stderr, "lock: no such data: %d\n",data);
return; return;
} }
printf("lock: %s <%s>\n", what, (char *)useptr); printf("lock: %-6s <%s>: %d\n", what, user->text, user->counter);
user->counter++;
} }
/* unlock callback */ /* unlock callback */
void unlock(CURL *handle, curl_lock_data data, void *useptr ) void unlock(CURL *handle, curl_lock_data data, void *useptr )
{ {
const char *what; const char *what;
struct userdata *user = (struct userdata *)useptr;
(void)handle; (void)handle;
switch ( data ) { switch ( data ) {
case CURL_LOCK_DATA_SHARE: case CURL_LOCK_DATA_SHARE:
what = "share "; what = "share";
break; break;
case CURL_LOCK_DATA_DNS: case CURL_LOCK_DATA_DNS:
what = "dns "; what = "dns";
break; break;
case CURL_LOCK_DATA_COOKIE: case CURL_LOCK_DATA_COOKIE:
what = "cookie"; what = "cookie";
@ -58,7 +67,8 @@ void unlock(CURL *handle, curl_lock_data data, void *useptr )
fprintf(stderr, "unlock: no such data: %d\n",data); fprintf(stderr, "unlock: no such data: %d\n",data);
return; return;
} }
printf("unlock: %s <%s>\n", what, (char *)useptr); printf("unlock: %-6s <%s>: %d\n", what, user->text, user->counter);
user->counter++;
} }
@ -127,6 +137,10 @@ CURLcode test(char *URL)
CURLSH *share; CURLSH *share;
struct curl_slist *headers; struct curl_slist *headers;
int i; int i;
struct userdata user;
user.text = (char *)"Pigs in space";
user.counter = 0;
printf( "GLOBAL_INIT\n" ); printf( "GLOBAL_INIT\n" );
curl_global_init( CURL_GLOBAL_ALL ); curl_global_init( CURL_GLOBAL_ALL );
@ -136,7 +150,7 @@ CURLcode test(char *URL)
share = curl_share_init(); share = curl_share_init();
curl_share_setopt( share, CURLSHOPT_LOCKFUNC, lock); curl_share_setopt( share, CURLSHOPT_LOCKFUNC, lock);
curl_share_setopt( share, CURLSHOPT_UNLOCKFUNC, unlock); curl_share_setopt( share, CURLSHOPT_UNLOCKFUNC, unlock);
curl_share_setopt( share, CURLSHOPT_USERDATA, "Pigs in space"); curl_share_setopt( share, CURLSHOPT_USERDATA, &user);
printf( "CURL_LOCK_DATA_COOKIE\n" ); printf( "CURL_LOCK_DATA_COOKIE\n" );
curl_share_setopt( share, CURLSHOPT_SHARE, CURL_LOCK_DATA_COOKIE); curl_share_setopt( share, CURLSHOPT_SHARE, CURL_LOCK_DATA_COOKIE);
printf( "CURL_LOCK_DATA_DNS\n" ); printf( "CURL_LOCK_DATA_DNS\n" );