atexit() isn't really appropriate for a library.
[oweals/opkg-lede.git] / libopkg / libopkg.c
index 418a32485624c7f88de27bb6a1dedf241cf6e47b..37770eb880f3b11757d1dd67ac31174b2f0c2992 100644 (file)
 #include "opkg_message.h"
 #include "opkg_error.h"
 
-opkg_status_callback opkg_cb_status = NULL;
-opkg_list_callback opkg_cb_list = NULL;
-
-int default_opkg_message_callback(opkg_conf_t *conf, message_level_t level, 
-                                 char *msg)
-{
-     if (conf && (conf->verbosity < level)) {
-         return 0;
-     } else {
-          if ( level == OPKG_ERROR ){
-             push_error_list(&error_list, msg); 
-          } else
-           printf("%s",msg);
-     }
-     return 0;
-}
-
-int default_opkg_list_callback(char *name, char *desc, char *version, 
-                              pkg_state_status_t status, void *userdata)
-{
-     if (desc)
-         printf("%s - %s - %s\n", name, version, desc);
-     else
-         printf("%s - %s\n", name, version);
-     return 0;
-}
-
-int default_opkg_files_callback(char *name, char *desc, char *version,
-                   pkg_state_status_t status, void *userdata)
-{
-     if (desc)
-         printf("%s\n", desc);
-     return 0;
-}
-
-int default_opkg_status_callback(char *name, int istatus, char *desc,
-                                void *userdata)
-{
-     printf("%s\n", desc);
-     return 0;
-}
-
-char* default_opkg_response_callback(char *question)
-{
-     char *response = NULL;
-     printf("%s",question);
-     fflush(stdout);
-     do {
-         response = (char *)file_read_line_alloc(stdin);
-     } while (response == NULL);
-     return response;
-}
-
 /* This is used for backward compatibility */
 int
 opkg_op (int argc, char *argv[])
@@ -118,28 +65,19 @@ opkg_op (int argc, char *argv[])
              !strcmp(cmd_name,"compare_versions") ||
              !strcmp(cmd_name,"compare-versions") ||
              !strcmp(cmd_name,"list_installed") ||
-             !strcmp(cmd_name,"list-installed") ||
              !strcmp(cmd_name,"status") )
            args.noreadfeedsfile = 1;
 
-       opkg_cb_message = default_opkg_message_callback;
-       opkg_cb_response = default_opkg_response_callback;
-       opkg_cb_status = default_opkg_status_callback;
-
 
        err = opkg_conf_init (&opkg_conf, &args);
        args_deinit (&args);
        if (err)
        {
-               opkg_print_error_list (&opkg_conf);
+               print_error_list();
+               free_error_list();
                return err;
        }
 
-       if ( strcmp(cmd_name, "files")==0)
-            opkg_cb_list = default_opkg_files_callback;
-       else
-            opkg_cb_list = default_opkg_list_callback;
-
        cmd = opkg_cmd_find (cmd_name);
        if (cmd == NULL)
        {
@@ -158,6 +96,9 @@ opkg_op (int argc, char *argv[])
 
        err = opkg_cmd_exec (cmd, &opkg_conf, argc - optind, (const char **) (argv + optind), NULL);
 
+#ifdef HAVE_CURL
+       opkg_curl_cleanup();
+#endif
        opkg_conf_deinit (&opkg_conf);
 
        return err;