summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--include/libssh/libssh.h11
-rw-r--r--libssh/options.c22
2 files changed, 19 insertions, 14 deletions
diff --git a/include/libssh/libssh.h b/include/libssh/libssh.h
index e135f32..69bb27e 100644
--- a/include/libssh/libssh.h
+++ b/include/libssh/libssh.h
@@ -328,16 +328,7 @@ int ssh_options_set_log_function(SSH_OPTIONS *opt,
int ssh_options_set_log_verbosity(SSH_OPTIONS *opt, int verbosity);
void ssh_options_set_dsa_server_key(SSH_OPTIONS *opt, const char *dsakey);
void ssh_options_set_rsa_server_key(SSH_OPTIONS *opt, const char *rsakey);
-
-/**
- * @brief Set the authentication callback.
- *
- * @param opt The options structure to use.
- * @param cb The callback function to use.
- * @param userdata A pointer to some user data you can pass to the
- * callback.
- */
-void ssh_options_set_auth_callback(SSH_OPTIONS *opt, ssh_auth_callback cb,
+int ssh_options_set_auth_callback(SSH_OPTIONS *opt, ssh_auth_callback cb,
void *userdata);
diff --git a/libssh/options.c b/libssh/options.c
index 3bbf559..4bc7225 100644
--- a/libssh/options.c
+++ b/libssh/options.c
@@ -800,7 +800,7 @@ int ssh_options_getopt(SSH_OPTIONS *options, int *argcptr, char **argv){
int ssh1=0;
#endif
int ssh2=1;
-
+
int saveoptind=optind; /* need to save 'em */
int saveopterr=opterr;
@@ -914,14 +914,28 @@ int ssh_options_getopt(SSH_OPTIONS *options, int *argcptr, char **argv){
return 0 ;
}
-void ssh_options_set_auth_callback(SSH_OPTIONS *opt, ssh_auth_callback cb,
+/**
+ * @brief Set the authentication callback.
+ *
+ * @param opt The options structure to use.
+ *
+ * @param cb The callback function to use.
+ *
+ * @param userdata A pointer to some user data you can pass to the
+ * callback.
+ *
+ * @return 0 on success, < 0 on error.
+ */
+int ssh_options_set_auth_callback(SSH_OPTIONS *opt, ssh_auth_callback cb,
void *userdata) {
- if (opt == NULL) {
- return;
+ if (opt == NULL || cb == NULL) {
+ return -1;
}
opt->auth_function = cb;
opt->auth_userdata = userdata;
+
+ return 0;
}
/** @} */