diff options
author | Aris Adamantiadis <aris@0xbadc0de.be> | 2010-09-30 11:10:08 +0200 |
---|---|---|
committer | Aris Adamantiadis <aris@0xbadc0de.be> | 2010-09-30 11:10:08 +0200 |
commit | 5b1c985a0e7df03aefffa13bc6c765859819a180 (patch) | |
tree | 28deab689a0218f7a2f89e13910881fd4a4bbd88 | |
parent | bedc65313f884f9b157822f4705c8e00accfd73f (diff) | |
download | libssh-5b1c985a0e7df03aefffa13bc6c765859819a180.tar.gz libssh-5b1c985a0e7df03aefffa13bc6c765859819a180.tar.xz libssh-5b1c985a0e7df03aefffa13bc6c765859819a180.zip |
Changed the threads cbks from struct to publ func
-rw-r--r-- | include/libssh/callbacks.h | 17 | ||||
-rw-r--r-- | src/threads.c | 6 | ||||
-rw-r--r-- | src/threads/pthread.c | 6 | ||||
-rw-r--r-- | tests/unittests/torture_rand.c | 2 |
4 files changed, 26 insertions, 5 deletions
diff --git a/include/libssh/callbacks.h b/include/libssh/callbacks.h index a2ea6a6..d252669 100644 --- a/include/libssh/callbacks.h +++ b/include/libssh/callbacks.h @@ -279,8 +279,21 @@ struct ssh_threads_callbacks_struct { LIBSSH_API int ssh_threads_set_callbacks(struct ssh_threads_callbacks_struct *cb); -extern struct ssh_threads_callbacks_struct ssh_threads_pthread; -extern struct ssh_threads_callbacks_struct ssh_threads_noop; +/** + * @brief returns a pointer on the pthread threads callbacks, to be used with + * ssh_threads_set_callbacks. + * @warning you have to link with the library ssh_threads. + * @see ssh_threads_set_callbacks + */ +LIBSSH_API struct ssh_threads_callbacks_struct *ssh_threads_get_pthread(void); + +/** + * @brief returns a pointer on the noop threads callbacks, to be used with + * ssh_threads_set_callbacks. These callbacks do nothing and are being used by + * default. + * @see ssh_threads_set_callbacks + */ +LIBSSH_API struct ssh_threads_callbacks_struct *ssh_threads_get_noop(void); /** @} */ #ifdef __cplusplus diff --git a/src/threads.c b/src/threads.c index 60d5dee..db7c216 100644 --- a/src/threads.c +++ b/src/threads.c @@ -39,7 +39,7 @@ static unsigned long threads_id_noop (void){ return 1; } -struct ssh_threads_callbacks_struct ssh_threads_noop = +static struct ssh_threads_callbacks_struct ssh_threads_noop = { "threads_noop", threads_noop, @@ -49,6 +49,10 @@ struct ssh_threads_callbacks_struct ssh_threads_noop = threads_id_noop }; +struct ssh_threads_callbacks_struct *ssh_threads_get_noop(){ + return &ssh_threads_noop; +} + static struct ssh_threads_callbacks_struct *user_callbacks =&ssh_threads_noop; #ifdef HAVE_LIBGCRYPT diff --git a/src/threads/pthread.c b/src/threads/pthread.c index 84966d0..fdfd27d 100644 --- a/src/threads/pthread.c +++ b/src/threads/pthread.c @@ -78,7 +78,7 @@ static unsigned long ssh_pthread_thread_id (void){ return (unsigned long) pthread_self(); } -struct ssh_threads_callbacks_struct ssh_threads_pthread = +static struct ssh_threads_callbacks_struct ssh_threads_pthread = { .type="threads_pthread", .mutex_init=ssh_pthread_mutex_init, @@ -88,4 +88,8 @@ struct ssh_threads_callbacks_struct ssh_threads_pthread = .thread_id=ssh_pthread_thread_id }; +struct ssh_threads_callbacks_struct *ssh_threads_get_pthread(){ + return &ssh_threads_pthread; +} + #endif /* HAVE_PTHREAD */ diff --git a/tests/unittests/torture_rand.c b/tests/unittests/torture_rand.c index 7419397..9962564 100644 --- a/tests/unittests/torture_rand.c +++ b/tests/unittests/torture_rand.c @@ -15,7 +15,7 @@ static void setup(){ printf("setup\n"); - ssh_threads_set_callbacks(&ssh_threads_pthread); + ssh_threads_set_callbacks(ssh_threads_get_pthread()); ssh_init(); } |