Merge branch 'master' into menu_input

This commit is contained in:
twinaphex 2016-10-27 10:55:02 +02:00
commit 14ad3f9dd6
32 changed files with 118 additions and 105 deletions

View File

@ -63,7 +63,7 @@ typedef struct video4linux
uint32_t *buffer_output;
bool ready;
char dev_name[PATH_MAX_LENGTH];
char dev_name[255];
} video4linux_t;
static void process_image(video4linux_t *v4l, const uint8_t *buffer_yuv)

View File

@ -1283,7 +1283,9 @@ static void config_set_defaults(void)
if (!string_is_empty(g_defaults.dir.osk_overlay))
{
char temp_path[PATH_MAX_LENGTH] = {0};
char temp_path[PATH_MAX_LENGTH];
temp_path[0] = '\0';
fill_pathname_expand_special(temp_path,
g_defaults.dir.osk_overlay, sizeof(temp_path));
@ -1299,7 +1301,9 @@ static void config_set_defaults(void)
}
else
{
char temp_path[PATH_MAX_LENGTH] = {0};
char temp_path[PATH_MAX_LENGTH];
temp_path[0] = '\0';
strlcpy(temp_path,
settings->directory.overlay,
@ -1708,10 +1712,10 @@ static bool config_load_file(const char *path, bool set_defaults,
settings_t *settings)
{
unsigned i;
char tmp_str[PATH_MAX_LENGTH];
bool ret = false;
bool tmp_bool = false;
char *save = NULL;
char tmp_str[PATH_MAX_LENGTH];
unsigned msg_color = 0;
config_file_t *conf = NULL;
struct config_int_setting *int_settings = NULL;
@ -2265,7 +2269,9 @@ bool config_load_override(void)
/* If a game override exists, add it's location to append_config_path */
if (new_conf)
{
char temp_path[PATH_MAX_LENGTH] = {0};
char temp_path[PATH_MAX_LENGTH];
temp_path[0] = '\0';
config_file_free(new_conf);

View File

@ -210,7 +210,7 @@ typedef struct settings
struct
{
char driver[32];
char device[PATH_MAX_LENGTH];
char device[255];
bool allow;
unsigned width;
unsigned height;
@ -234,7 +234,7 @@ typedef struct settings
{
char driver[32];
char resampler[32];
char device[PATH_MAX_LENGTH];
char device[255];
bool enable;
bool mute_enable;
unsigned out_rate;
@ -320,8 +320,8 @@ typedef struct settings
struct
{
char buildbot_url[PATH_MAX_LENGTH];
char buildbot_assets_url[PATH_MAX_LENGTH];
char buildbot_url[255];
char buildbot_assets_url[255];
bool buildbot_auto_extract_archive;
} network;
@ -400,7 +400,7 @@ typedef struct settings
#ifdef HAVE_NETWORKING
struct
{
char server[PATH_MAX_LENGTH];
char server[255];
unsigned port;
unsigned sync_frames;
unsigned check_frames;

2
core.h
View File

@ -51,7 +51,7 @@ typedef struct rarch_system_info
unsigned performance_level;
const char *input_desc_btn[MAX_USERS][RARCH_FIRST_META_KEY];
char valid_extensions[PATH_MAX_LENGTH];
char valid_extensions[255];
struct retro_disk_control_callback disk_control_cb;
struct retro_location_callback location_cb;

View File

@ -22,7 +22,6 @@
#include <stddef.h>
#include <file/archive_file.h>
#include <retro_miscellaneous.h>
#include <retro_common_api.h>
RETRO_BEGIN_DECLS
@ -107,7 +106,7 @@ typedef struct database_state_handle
uint32_t crc;
uint32_t archive_crc;
uint8_t *buf;
char archive_name[PATH_MAX_LENGTH];
char archive_name[255];
char serial[4096];
} database_state_handle_t;

View File

@ -85,7 +85,7 @@ struct defaults
{
char config[PATH_MAX_LENGTH];
char core[PATH_MAX_LENGTH];
char buildbot_server_url[PATH_MAX_LENGTH];
char buildbot_server_url[255];
} path;
struct
@ -93,7 +93,7 @@ struct defaults
int out_latency;
float video_refresh_rate;
bool video_threaded_enable;
char menu[PATH_MAX_LENGTH];
char menu[32];
} settings;
#ifndef IS_SALAMANDER

View File

@ -242,7 +242,7 @@ void fill_pathname_application_path(char *s, size_t len)
{
pid_t pid;
static const char *exts[] = { "exe", "file", "path/a.out" };
char link_path[PATH_MAX_LENGTH];
char link_path[255];
link_path[0] = *s = '\0';
pid = getpid();

View File

@ -123,7 +123,7 @@ struct thread_packet
struct
{
char msg[PATH_MAX_LENGTH];
char msg[255];
struct font_params params;
} osd_message;
@ -216,7 +216,7 @@ struct thread_video
bool updated;
bool within_thread;
uint64_t count;
char msg[PATH_MAX_LENGTH];
char msg[255];
} frame;
video_driver_t video_thread;

View File

@ -176,7 +176,9 @@ static void handle_plugged_pad(void)
else if (event->mask & (IN_CREATE | IN_ATTRIB))
{
bool ret;
char path[PATH_MAX_LENGTH] = {0};
char path[PATH_MAX_LENGTH];
path[0] = '\0';
snprintf(path, sizeof(path), "/dev/input/%s", event->name);
ret = linuxraw_joypad_init_pad(path, &linuxraw_pads[idx]);
@ -227,11 +229,13 @@ static bool linuxraw_joypad_init(void *data)
for (i = 0; i < MAX_USERS; i++)
{
char path[PATH_MAX_LENGTH] = {0};
char path[PATH_MAX_LENGTH];
autoconfig_params_t params = {{0}};
struct linuxraw_joypad *pad = (struct linuxraw_joypad*)&linuxraw_pads[i];
settings_t *settings = config_get_ptr();
path[0] = '\0';
params.idx = i;
pad->fd = -1;
pad->ident = settings->input.device_names[i];

View File

@ -76,7 +76,7 @@ struct udev_joypad
uint16_t strength[2];
uint16_t configured_strength[2];
char ident[PATH_MAX_LENGTH];
char ident[255];
char *path;
int32_t vid;
int32_t pid;
@ -362,7 +362,7 @@ static void udev_check_device(struct udev_device *dev, const char *path, bool ho
default:
if (hotplugged)
{
char msg[PATH_MAX_LENGTH];
char msg[255];
msg[0] = '\0';

View File

@ -117,9 +117,9 @@ static int input_try_autoconfigure_joypad_from_conf(config_file_t *conf,
static void input_autoconfigure_joypad_add(config_file_t *conf,
autoconfig_params_t *params)
{
char msg[PATH_MAX_LENGTH];
char display_name[PATH_MAX_LENGTH];
char device_type[PATH_MAX_LENGTH];
char msg[128];
char display_name[128];
char device_type[128];
bool block_osd_spam = false;
static bool remote_is_bound = false;
settings_t *settings = config_get_ptr();
@ -296,7 +296,7 @@ static bool input_config_autoconfigure_joypad_init(autoconfig_params_t *params)
bool input_config_autoconfigure_joypad(autoconfig_params_t *params)
{
char msg[PATH_MAX_LENGTH];
char msg[255];
msg[0] = '\0';
@ -337,7 +337,7 @@ const struct retro_keybind *input_get_auto_bind(unsigned port, unsigned id)
void input_config_autoconfigure_disconnect(unsigned i, const char *ident)
{
char msg[PATH_MAX_LENGTH];
char msg[255];
msg[0] = '\0';

View File

@ -24,9 +24,9 @@
typedef struct autoconfig_params
{
char name[PATH_MAX_LENGTH];
char driver[PATH_MAX_LENGTH];
char display_name[PATH_MAX_LENGTH];
char name[255];
char driver[255];
char display_name[255];
unsigned idx;
int32_t vid;
int32_t pid;

View File

@ -1887,7 +1887,7 @@ static const char *menu_hash_to_str_jp_label_enum(enum msg_hash_enums msg)
if (msg <= MENU_ENUM_LABEL_INPUT_HOTKEY_BIND_END &&
msg >= MENU_ENUM_LABEL_INPUT_HOTKEY_BIND_BEGIN)
{
static char hotkey_lbl[PATH_MAX_LENGTH] = {0};
static char hotkey_lbl[128] = {0};
unsigned idx = msg - MENU_ENUM_LABEL_INPUT_HOTKEY_BIND_BEGIN;
snprintf(hotkey_lbl, sizeof(hotkey_lbl), "input_hotkey_binds_%d", idx);
return hotkey_lbl;

View File

@ -1889,7 +1889,7 @@ static const char *menu_hash_to_str_us_label_enum(enum msg_hash_enums msg)
if (msg <= MENU_ENUM_LABEL_INPUT_HOTKEY_BIND_END &&
msg >= MENU_ENUM_LABEL_INPUT_HOTKEY_BIND_BEGIN)
{
static char hotkey_lbl[PATH_MAX_LENGTH] = {0};
static char hotkey_lbl[128] = {0};
unsigned idx = msg - MENU_ENUM_LABEL_INPUT_HOTKEY_BIND_BEGIN;
snprintf(hotkey_lbl, sizeof(hotkey_lbl), "input_hotkey_binds_%d", idx);
return hotkey_lbl;

View File

@ -433,14 +433,18 @@ static int zip_parse_file_iterate_step_internal(
static int zip_parse_file_iterate_step(file_archive_transfer_t *state,
const char *valid_exts, struct archive_extract_userdata *userdata, file_archive_file_cb file_cb)
{
char filename[PATH_MAX_LENGTH];
int ret;
const uint8_t *cdata = NULL;
uint32_t checksum = 0;
uint32_t size = 0;
uint32_t csize = 0;
unsigned cmode = 0;
unsigned payload = 0;
char filename[PATH_MAX_LENGTH] = {0};
int ret = zip_parse_file_iterate_step_internal(state, filename,
filename[0] = '\0';
ret = zip_parse_file_iterate_step_internal(state, filename,
&cdata, &cmode, &size, &csize,
&checksum, &payload);

View File

@ -26,7 +26,6 @@
#include <lists/string_list.h>
#include <retro_assert.h>
#include <retro_miscellaneous.h>
#include <compat/strl.h>
#include <compat/posix_string.h>
@ -290,7 +289,7 @@ bool string_list_find_elem_prefix(const struct string_list *list,
const char *prefix, const char *elem)
{
size_t i;
char prefixed[PATH_MAX_LENGTH];
char prefixed[255];
if (!list)
return false;

View File

@ -55,8 +55,8 @@
struct string_list *dir_list_new_special(const char *input_dir,
enum dir_list_type type, const char *filter)
{
char ext_shaders[PATH_MAX_LENGTH];
char ext_name[PATH_MAX_LENGTH];
char ext_shaders[255];
char ext_name[255];
const char *dir = NULL;
const char *exts = NULL;
bool include_dirs = false;

View File

@ -447,7 +447,7 @@ static void menu_action_setting_disp_set_label_input_desc(
const char *path,
char *s2, size_t len2)
{
char descriptor[PATH_MAX_LENGTH];
char descriptor[255];
const struct retro_keybind *auto_bind = NULL;
const struct retro_keybind *keybind = NULL;
settings_t *settings = config_get_ptr();
@ -461,6 +461,8 @@ static void menu_action_setting_disp_set_label_input_desc(
if (!settings)
return;
descriptor[0] = '\0';
remap_id = settings->input.remap_ids
[inp_desc_user][inp_desc_button_index_offset];
@ -1405,7 +1407,7 @@ static void menu_action_setting_disp_set_label_playlist_associations(file_list_t
const char *path,
char *s2, size_t len2)
{
char playlist_name_with_ext[PATH_MAX_LENGTH];
char playlist_name_with_ext[255];
bool found_matching_core_association = false;
settings_t *settings = config_get_ptr();
struct string_list *str_list = string_split(settings->playlist_names, ";");

View File

@ -37,7 +37,7 @@ static void replace_chars(char *str, char c1, char c2)
static void sanitize_to_string(char *s, const char *label, size_t len)
{
char new_label[PATH_MAX_LENGTH];
char new_label[255];
new_label[0] = '\0';
@ -690,7 +690,7 @@ static int action_get_title_generic(char *s, size_t len, const char *path,
if (list_path)
{
char elem0_path[PATH_MAX_LENGTH];
char elem0_path[255];
elem0_path[0] = '\0';
@ -839,8 +839,8 @@ static int action_get_title_group_settings(const char *path, const char *label,
strlcpy(s, msg_hash_to_str(MENU_ENUM_LABEL_VALUE_HORIZONTAL_MENU), len);
else
{
char elem0[PATH_MAX_LENGTH];
char elem1[PATH_MAX_LENGTH];
char elem0[255];
char elem1[255];
struct string_list *list_label = string_split(label, "|");
elem0[0] = elem1[0] = '\0';

View File

@ -88,7 +88,7 @@ typedef struct mui_handle
unsigned icon_size;
unsigned margin;
unsigned glyph_width;
char box_message[PATH_MAX_LENGTH];
char box_message[255];
struct
{
@ -552,8 +552,8 @@ static void mui_render_label_value(mui_handle_t *mui,
menu_animation_ctx_ticker_t ticker;
char label_str[PATH_MAX_LENGTH];
char value_str[PATH_MAX_LENGTH];
char label_str[255];
char value_str[255];
bool switch_is_on = true;
int value_len = utf8len(value);
int ticker_limit = 0;
@ -684,8 +684,8 @@ static void mui_render_menu_list(mui_handle_t *mui,
{
int y;
size_t selection;
char rich_label[PATH_MAX_LENGTH];
char entry_value[PATH_MAX_LENGTH];
char rich_label[255];
char entry_value[255];
bool entry_selected = false;
rich_label[0] = entry_value[0] = '\0';
@ -843,10 +843,10 @@ static void mui_frame(void *data)
menu_display_ctx_clearcolor_t clearcolor;
menu_animation_ctx_ticker_t ticker;
menu_display_ctx_draw_t draw;
char msg[256];
char title[256];
char title_buf[256];
char title_msg[256];
char msg[255];
char title[255];
char title_buf[255];
char title_msg[255];
#ifdef VITA
uint32_t black_opaque_54 = 0x8a000000;
@ -1209,8 +1209,8 @@ static void mui_frame(void *data)
if (mui_get_core_title(title_msg, sizeof(title_msg)) == 0)
{
int ticker_limit, value_len;
char title_buf_msg_tmp[256];
char title_buf_msg[256];
char title_buf_msg_tmp[255];
char title_buf_msg[255];
size_t usable_width = width - (mui->margin * 2);
title_buf_msg_tmp[0] = title_buf_msg[0] = '\0';

View File

@ -389,10 +389,10 @@ static void rgui_render(void *data)
size_t i, end, fb_pitch, old_start;
unsigned fb_width, fb_height;
int bottom;
char title[256];
char title_buf[256];
char title[255];
char title_buf[255];
char title_msg[64];
char msg[PATH_MAX_LENGTH];
char msg[255];
bool msg_force = false;
uint64_t *frame_count = NULL;
settings_t *settings = config_get_ptr();
@ -536,7 +536,7 @@ static void rgui_render(void *data)
if (settings->menu.timedate_enable)
{
menu_display_ctx_datetime_t datetime;
char timedate[PATH_MAX_LENGTH];
char timedate[255];
timedate[0] = '\0';
@ -561,11 +561,11 @@ static void rgui_render(void *data)
{
menu_animation_ctx_ticker_t ticker;
size_t selection;
char entry_path[PATH_MAX_LENGTH];
char entry_value[PATH_MAX_LENGTH];
char message[PATH_MAX_LENGTH];
char entry_title_buf[PATH_MAX_LENGTH];
char type_str_buf[PATH_MAX_LENGTH];
char entry_path[255];
char entry_value[255];
char message[255];
char entry_title_buf[255];
char type_str_buf[255];
unsigned entry_spacing = menu_entry_get_spacing(i);
bool entry_selected = menu_entry_is_currently_selected(i);

View File

@ -157,7 +157,7 @@ typedef struct xmb_handle
size_t selection_ptr_old;
int depth;
int old_depth;
char box_message[PATH_MAX_LENGTH];
char box_message[255];
float x;
float alpha;
uintptr_t thumbnail;
@ -201,7 +201,7 @@ typedef struct xmb_handle
float shadow_offset;
char title_name[256];
char title_name[255];
struct
{
@ -1912,10 +1912,10 @@ static void xmb_draw_items(xmb_handle_t *xmb,
float icon_x, icon_y, label_offset;
menu_animation_ctx_ticker_t ticker;
char ticker_str[PATH_MAX_LENGTH];
char name[PATH_MAX_LENGTH];
char value[PATH_MAX_LENGTH];
char entry_value[PATH_MAX_LENGTH];
char entry_sublabel[PATH_MAX_LENGTH];
char name[255];
char value[255];
char entry_value[255];
char entry_sublabel[255];
menu_entry_t entry;
const float half_size = xmb->icon.size / 2.0f;
uintptr_t texture_switch = 0;
@ -2321,9 +2321,9 @@ static void xmb_frame(void *data)
unsigned i, width, height;
float item_color[16], coord_black[16], coord_white[16];
menu_display_ctx_rotate_draw_t rotate_draw;
char msg[PATH_MAX_LENGTH];
char title_msg[256];
char title_truncated[256];
char msg[255];
char title_msg[255];
char title_truncated[255];
bool render_background = false;
file_list_t *selection_buf = NULL;
file_list_t *menu_stack = NULL;
@ -2425,7 +2425,7 @@ static void xmb_frame(void *data)
if (settings->menu.timedate_enable)
{
menu_display_ctx_datetime_t datetime;
char timedate[256];
char timedate[255];
timedate[0] = '\0';

View File

@ -153,7 +153,7 @@ static void print_buf_lines(file_list_t *list, char *buf,
if (settings)
{
char display_name[PATH_MAX_LENGTH];
char display_name[255];
char core_path[PATH_MAX_LENGTH];
char *last = NULL;
@ -437,7 +437,7 @@ static int menu_displaylist_parse_network_info(menu_displaylist_info_t *info)
for (k = 0; k < list->size; k++)
{
char tmp[PATH_MAX_LENGTH];
char tmp[255];
tmp[0] = '\0';
@ -476,7 +476,7 @@ static int menu_displaylist_parse_system_info(menu_displaylist_info_t *info)
gfx_ctx_ident_t ident_info;
#endif
char tmp[PATH_MAX_LENGTH];
char feat_str[PATH_MAX_LENGTH];
char feat_str[255];
const char *tmp_string = NULL;
const frontend_ctx_driver_t *frontend = frontend_get_ptr();
settings_t *settings = config_get_ptr();
@ -515,7 +515,7 @@ static int menu_displaylist_parse_system_info(menu_displaylist_info_t *info)
#endif
{
char cpu_str[PATH_MAX_LENGTH];
char cpu_str[255];
cpu_str[0] = '\0';
@ -531,7 +531,7 @@ static int menu_displaylist_parse_system_info(menu_displaylist_info_t *info)
}
{
char cpu_str[PATH_MAX_LENGTH];
char cpu_str[255];
char cpu_arch_str[PATH_MAX_LENGTH];
char cpu_text_str[PATH_MAX_LENGTH];
enum frontend_architecture arch = frontend_driver_get_cpu_architecture();

View File

@ -168,9 +168,9 @@ typedef struct menu_displaylist_info
char path[PATH_MAX_LENGTH];
char path_b[PATH_MAX_LENGTH];
char path_c[PATH_MAX_LENGTH];
char label[PATH_MAX_LENGTH];
char label[255];
uint32_t label_hash;
char exts[PATH_MAX_LENGTH];
char exts[255];
unsigned type;
unsigned type_default;
size_t directory_ptr;

View File

@ -1807,7 +1807,7 @@ static bool setting_append_list_input_player_options(
* 2 is the length of '99'; we don't need more users than that.
*/
static char buffer[MAX_USERS][13+2+1];
static char group_lbl[MAX_USERS][PATH_MAX_LENGTH];
static char group_lbl[MAX_USERS][255];
unsigned i;
rarch_setting_group_info_t group_info = {0};
rarch_setting_group_info_t subgroup_info = {0};
@ -1993,8 +1993,8 @@ static bool setting_append_list_input_player_options(
for (i = 0; i < RARCH_BIND_LIST_END; i ++)
{
char label[PATH_MAX_LENGTH];
char name[PATH_MAX_LENGTH];
char label[255];
char name[255];
if (input_config_bind_map_get_meta(i))
continue;
@ -2125,7 +2125,7 @@ static bool setting_append_list(
if (frontend_driver_has_fork())
#endif
{
char ext_name[PATH_MAX_LENGTH];
char ext_name[255];
ext_name[0] = '\0';
@ -4087,8 +4087,8 @@ static bool setting_append_list(
for (user = 0; user < MAX_USERS; user++)
{
static char binds_list[MAX_USERS][PATH_MAX_LENGTH];
static char binds_label[MAX_USERS][PATH_MAX_LENGTH];
static char binds_list[MAX_USERS][255];
static char binds_label[MAX_USERS][255];
unsigned user_value = user + 1;
snprintf(binds_list[user], sizeof(binds_list[user]), "%d_input_binds_list", user_value);

View File

@ -45,11 +45,11 @@ enum menu_entry_type
typedef struct menu_entry
{
char path[PATH_MAX_LENGTH];
char label[PATH_MAX_LENGTH];
char sublabel[PATH_MAX_LENGTH];
char rich_label[PATH_MAX_LENGTH];
char value[PATH_MAX_LENGTH];
char path[255];
char label[255];
char sublabel[255];
char rich_label[255];
char value[255];
size_t entry_idx;
enum msg_hash_enums enum_idx;
unsigned idx;

View File

@ -697,7 +697,7 @@ void path_clear_all(void)
enum rarch_content_type path_is_media_type(const char *path)
{
char ext_lower[PATH_MAX_LENGTH];
char ext_lower[128];
ext_lower[0] = '\0';

View File

@ -247,7 +247,7 @@ bool playlist_push(playlist_t *playlist,
{
if (string_is_empty(core_name) && !string_is_empty(core_path))
{
static char base_path[PATH_MAX_LENGTH] = {0};
static char base_path[255] = {0};
fill_pathname_base_noext(base_path, core_path, sizeof(base_path));
core_name = base_path;
RARCH_LOG("core_name is now: %s\n", core_name);

View File

@ -126,7 +126,7 @@ enum
static jmp_buf error_sjlj_context;
static enum rarch_core_type current_core_type = CORE_TYPE_PLAIN;
static enum rarch_core_type explicit_current_core_type = CORE_TYPE_PLAIN;
static char error_string[PATH_MAX_LENGTH] = {0};
static char error_string[255] = {0};
static retro_bits_t has_set_libretro_device;
static bool has_set_core = false;
@ -228,7 +228,7 @@ static void retroarch_print_features(void)
static void retroarch_print_version(void)
{
char str[PATH_MAX_LENGTH];
char str[255];
str[0] = '\0';
@ -1026,7 +1026,7 @@ bool retroarch_main_init(int argc, char *argv[])
if (verbosity_is_enabled())
{
char str[PATH_MAX_LENGTH];
char str[255];
str[0] = '\0';

View File

@ -241,7 +241,7 @@ static bool runloop_cmd_get_state_menu_toggle_button_combo(
**/
static bool rarch_game_specific_options(char **output)
{
char game_path[PATH_MAX_LENGTH];
char game_path[255];
game_path[0] ='\0';

View File

@ -872,8 +872,8 @@ static bool task_load_content(content_ctx_info_t *content_info,
bool launched_from_menu,
enum content_mode_load mode)
{
char name[PATH_MAX_LENGTH];
char msg[PATH_MAX_LENGTH];
char name[256];
char msg[256];
name[0] = msg[0] = '\0';

View File

@ -13,7 +13,6 @@
* If not, see <http://www.gnu.org/licenses/>.
*/
#include <retro_miscellaneous.h>
#include <net/net_http.h>
#include <queues/message_queue.h>
#include <lists/string_list.h>
@ -40,7 +39,7 @@ enum http_status_enum
typedef struct http_transfer_info
{
char url[PATH_MAX_LENGTH];
char url[255];
int progress;
} http_transfer_info_t;
@ -50,8 +49,8 @@ typedef struct http_handle
{
struct http_connection_t *handle;
transfer_cb_t cb;
char elem1[PATH_MAX_LENGTH];
char url[PATH_MAX_LENGTH];
char elem1[255];
char url[255];
} connection;
struct http_t *handle;
transfer_cb_t cb;
@ -240,7 +239,7 @@ void *task_push_http_transfer(const char *url, bool mute, const char *type,
retro_task_callback_t cb, void *user_data)
{
task_finder_data_t find_data;
char tmp[PATH_MAX_LENGTH];
char tmp[255];
struct http_connection_t *conn = NULL;
retro_task_t *t = NULL;
http_handle_t *http = NULL;