Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
81 changes: 81 additions & 0 deletions Makefile.common
Original file line number Diff line number Diff line change
Expand Up @@ -2699,6 +2699,87 @@ ifeq ($(HAVE_TEST_DRIVERS), 1)
OBJ += input/drivers/test_input.o
endif

ifneq (,$(filter 1,$(HAVE_SMBCLIENT) $(HAVE_BUILTINSMBCLIENT)))
DEFINES += -DHAVE_SMBCLIENT

ifeq ($(HAVE_SMBCLIENT),1)
# system libsmb2
ifeq ($(shell pkg-config --exists libsmb2 && echo yes),yes)
CFLAGS += $(shell pkg-config --cflags libsmb2)
LIBS += $(shell pkg-config --libs libsmb2)
else
LIBS += -lsmb2
endif
else ifeq ($(HAVE_BUILTINSMBCLIENT),1)
# builtin libsmb2
INCLUDE_DIRS += -I$(DEPS_DIR)/libsmb2/include
INCLUDE_DIRS += -I$(DEPS_DIR)/libsmb2/include/smb2
CFLAGS += "-D_U_=__attribute__((unused))"
CFLAGS += -DHAVE_STRING_H -DSTDC_HEADERS -DHAVE_TIME_H -DHAVE_STDLIB_H -DHAVE_UNISTD_H
CFLAGS += -DHAVE_FCNTL_H -DHAVE_POLL_H
CFLAGS += -DHAVE_SYS_SOCKET_H -DHAVE_NETINET_IN_H -DHAVE_NETINET_TCP_H
CFLAGS += -DHAVE_ARPA_INET_H -DHAVE_NETDB_H -DHAVE_SYS_UIO_H
CFLAGS += -DHAVE_LINGER
OBJ += \
deps/libsmb2/lib/aes.o \
deps/libsmb2/lib/aes_apple.o \
deps/libsmb2/lib/aes128ccm.o \
deps/libsmb2/lib/asn1-ber.o \
deps/libsmb2/lib/aes_reference.o \
deps/libsmb2/lib/alloc.o \
deps/libsmb2/lib/compat.o \
deps/libsmb2/lib/dcerpc.o \
deps/libsmb2/lib/dcerpc-lsa.o \
deps/libsmb2/lib/dcerpc-srvsvc.o \
deps/libsmb2/lib/errors.o \
deps/libsmb2/lib/hmac.o \
deps/libsmb2/lib/hmac-md5.o \
deps/libsmb2/lib/init.o \
deps/libsmb2/lib/krb5-wrapper.o \
deps/libsmb2/lib/libsmb2.o \
deps/libsmb2/lib/md4c.o \
deps/libsmb2/lib/md5.o \
deps/libsmb2/lib/ntlmssp.o \
deps/libsmb2/lib/pdu.o \
deps/libsmb2/lib/sha1.o \
deps/libsmb2/lib/sha224-256.o \
deps/libsmb2/lib/sha384-512.o \
deps/libsmb2/lib/smb2-cmd-close.o \
deps/libsmb2/lib/smb2-cmd-create.o \
deps/libsmb2/lib/smb2-cmd-echo.o \
deps/libsmb2/lib/smb2-cmd-error.o \
deps/libsmb2/lib/smb2-cmd-flush.o \
deps/libsmb2/lib/smb2-cmd-ioctl.o \
deps/libsmb2/lib/smb2-cmd-lock.o \
deps/libsmb2/lib/smb2-cmd-logoff.o \
deps/libsmb2/lib/smb2-cmd-negotiate.o \
deps/libsmb2/lib/smb2-cmd-oplock-break.o \
deps/libsmb2/lib/smb2-cmd-notify-change.o \
deps/libsmb2/lib/smb2-cmd-query-directory.o \
deps/libsmb2/lib/smb2-cmd-query-info.o \
deps/libsmb2/lib/smb2-cmd-read.o \
deps/libsmb2/lib/smb2-cmd-session-setup.o \
deps/libsmb2/lib/smb2-cmd-set-info.o \
deps/libsmb2/lib/smb2-cmd-tree-connect.o \
deps/libsmb2/lib/smb2-cmd-tree-disconnect.o \
deps/libsmb2/lib/smb2-cmd-write.o \
deps/libsmb2/lib/smb2-data-file-info.o \
deps/libsmb2/lib/smb2-data-filesystem-info.o \
deps/libsmb2/lib/smb2-data-security-descriptor.o \
deps/libsmb2/lib/smb2-data-reparse-point.o \
deps/libsmb2/lib/smb2-share-enum.o \
deps/libsmb2/lib/smb2-signing.o \
deps/libsmb2/lib/smb3-seal.o \
deps/libsmb2/lib/socket.o \
deps/libsmb2/lib/spnego-wrapper.o \
deps/libsmb2/lib/sync.o \
deps/libsmb2/lib/timestamps.o \
deps/libsmb2/lib/usha.o \
deps/libsmb2/lib/unicode.o
endif

OBJ += $(LIBRETRO_COMM_DIR)/vfs/vfs_implementation_smb.o
endif

#####################################
### Android Play Feature Delivery ###
Expand Down
1 change: 1 addition & 0 deletions Makefile.webos
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,7 @@ HAVE_STATIC_AUDIO_FILTERS = 1
HAVE_FILTERS_BUILTIN = 1
HAVE_BUILTINMBEDTLS = 1
HAVE_BUILTINZLIB = 1
HAVE_BUILTINSMBCLIENT := 1
HAVE_C99 = 1
HAVE_CC = 1
HAVE_CC_RESAMPLER = 1
Expand Down
5 changes: 5 additions & 0 deletions config.def.h
Original file line number Diff line number Diff line change
Expand Up @@ -710,6 +710,7 @@
#define DEFAULT_SETTINGS_SHOW_USER true
#define DEFAULT_SETTINGS_SHOW_DIRECTORY true
#define DEFAULT_SETTINGS_SHOW_STEAM true
#define DEFAULT_SETTINGS_SHOW_SMB_CLIENT true

#define DEFAULT_QUICK_MENU_SHOW_RESUME_CONTENT true
#define DEFAULT_QUICK_MENU_SHOW_RESTART_CONTENT true
Expand Down Expand Up @@ -1907,3 +1908,7 @@
#define DEFAULT_FILTER_BY_CURRENT_CORE false

#endif

#ifdef HAVE_SMBCLIENT
#define DEFAULT_SMB_CLIENT_AUTH_MODE 1
#endif
17 changes: 17 additions & 0 deletions configuration.c
Original file line number Diff line number Diff line change
Expand Up @@ -1611,6 +1611,15 @@ static struct config_array_setting *populate_settings_array(
SETTING_ARRAY("ai_service_url", settings->arrays.ai_service_url, true, DEFAULT_AI_SERVICE_URL, true);
#endif

#ifdef HAVE_SMBCLIENT
SETTING_ARRAY("smb_client_server_address", settings->arrays.smb_client_server_address, false, NULL, true);
SETTING_ARRAY("smb_client_share", settings->arrays.smb_client_share, false, NULL, true);
SETTING_ARRAY("smb_client_subdir", settings->arrays.smb_client_subdir, false, NULL, true);
SETTING_ARRAY("smb_client_username", settings->arrays.smb_client_username, false, NULL, true);
SETTING_ARRAY("smb_client_password", settings->arrays.smb_client_password, false, NULL, true);
SETTING_ARRAY("smb_client_workgroup", settings->arrays.smb_client_workgroup, false, NULL, true);
#endif

#ifdef HAVE_LAKKA
SETTING_ARRAY("cpu_main_gov", settings->arrays.cpu_main_gov, false, NULL, true);
SETTING_ARRAY("cpu_menu_gov", settings->arrays.cpu_menu_gov, false, NULL, true);
Expand Down Expand Up @@ -2252,6 +2261,10 @@ static struct config_bool_setting *populate_settings_bool(
SETTING_BOOL("network_remote_enable", &settings->bools.network_remote_enable, false, false /* TODO */, false);
#endif
#endif
#ifdef HAVE_SMBCLIENT
SETTING_BOOL("settings_show_smb_client", &settings->bools.settings_show_smb_client, true, DEFAULT_SETTINGS_SHOW_SMB_CLIENT, false);
SETTING_BOOL("smb_client_enable", &settings->bools.smb_client_enable, true, false, false);
#endif
#ifdef HAVE_BSV_MOVIE
SETTING_BOOL("replay_checkpoint_deserialize", &settings->bools.replay_checkpoint_deserialize, true, DEFAULT_REPLAY_CHECKPOINT_DESERIALIZE, false);
#endif
Expand Down Expand Up @@ -2747,6 +2760,10 @@ static struct config_int_setting *populate_settings_int(
#endif
SETTING_INT("input_turbo_bind", &settings->ints.input_turbo_bind, true, DEFAULT_TURBO_BIND, false);

#ifdef HAVE_SMBCLIENT
SETTING_INT("smb_client_auth_mode", &settings->ints.smb_client_auth_mode, true, DEFAULT_SMB_CLIENT_AUTH_MODE, false);
#endif

*size = count;

return tmp;
Expand Down
19 changes: 18 additions & 1 deletion configuration.h
Original file line number Diff line number Diff line change
Expand Up @@ -155,6 +155,9 @@ typedef struct settings
int input_overlay_lightgun_port;
#endif
int input_turbo_bind;
#ifdef HAVE_SMBCLIENT
int smb_client_auth_mode;
#endif
} ints;

struct
Expand Down Expand Up @@ -541,7 +544,15 @@ typedef struct settings
char ai_service_url[PATH_MAX_LENGTH];

char translation_service_url[2048]; /* TODO/FIXME - check size */
} arrays;
#ifdef HAVE_SMBCLIENT
char smb_client_server_address[256];
char smb_client_share[256];
char smb_client_subdir[PATH_MAX_LENGTH];
char smb_client_username[128];
char smb_client_password[128];
char smb_client_workgroup[64];
#endif
} arrays;

struct
{
Expand Down Expand Up @@ -890,6 +901,9 @@ typedef struct settings
bool settings_show_directory;
#ifdef HAVE_MIST
bool settings_show_steam;
#endif
#ifdef HAVE_SMBCLIENT
bool settings_show_smb_client;
#endif
bool quick_menu_show_resume_content;
bool quick_menu_show_restart_content;
Expand Down Expand Up @@ -1144,6 +1158,9 @@ typedef struct settings
bool game_ai_show_debug;
#endif

#ifdef HAVE_SMBCLIENT
bool smb_client_enable;
#endif
} bools;

uint8_t flags;
Expand Down
Loading
Loading