Friday, January 28, 2022

Re: UPDATE: libsmb2 4.0.0

Brad Smith wrote (26.01.22 05:16):
> Here is an update to libsmb2 4.0.0.
>
> * Mon Jan 17 2022 : Version 4.0.0
> - Add support for SMB3 encryption
> - Add support for Anonymous NTLMSSP logins
> - Add support for readlink.
> - Add API to notify application of changes to which filehandles are used by libsmb2.
> - Add suppport for Big Endian DCERPC and allow it to be controlled from the URL.
> - Add support for 3.1.1 signing
> - Add support for PS2(EE) and PS3
> - Fixes to UCS2 when compose characters are used.
> - Various MacOS fixes
> - Fix a few NULL dereferences

Hi Brad,

compiles and packages fine.

What is a good way to test this? I could not find a way to make vlc or
elisa connect to smb. Maybe I need avahi on my smb server to make it
show up in zeroconf in vlc?

Best Regards,
Stefan

> Index: Makefile
> ===================================================================
> RCS file: /home/cvs/ports/devel/libsmb2/Makefile,v
> retrieving revision 1.1.1.1
> diff -u -p -u -p -r1.1.1.1 Makefile
> --- Makefile 31 Dec 2019 11:35:55 -0000 1.1.1.1
> +++ Makefile 26 Jan 2022 04:06:41 -0000
> @@ -4,11 +4,11 @@ COMMENT= userspace client library for ac
>
> GH_ACCOUNT= sahlberg
> GH_PROJECT= libsmb2
> -GH_TAGNAME= v3.0.0
> +GH_TAGNAME= v4.0.0
>
> CATEGORIES= devel
>
> -SHARED_LIBS= smb2 0.0
> +SHARED_LIBS= smb2 1.0
>
> MAINTAINER= Brad Smith <brad@comstyle.com>
>
> Index: distinfo
> ===================================================================
> RCS file: /home/cvs/ports/devel/libsmb2/distinfo,v
> retrieving revision 1.1.1.1
> diff -u -p -u -p -r1.1.1.1 distinfo
> --- distinfo 31 Dec 2019 11:35:55 -0000 1.1.1.1
> +++ distinfo 26 Jan 2022 04:03:19 -0000
> @@ -1,2 +1,2 @@
> -SHA256 (libsmb2-3.0.0.tar.gz) = NtENFiitNNVmRr+ecAWoq+jOa2e6OpSdU3rj5fCPcB8=
> -SIZE (libsmb2-3.0.0.tar.gz) = 129442
> +SHA256 (libsmb2-4.0.0.tar.gz) = tNGxO8B63Gg3mnL3I7kDKpUK/WL+1/KqPlfzQhQG2hE=
> +SIZE (libsmb2-4.0.0.tar.gz) = 171678
> Index: patches/patch-include_smb2_libsmb2_h
> ===================================================================
> RCS file: patches/patch-include_smb2_libsmb2_h
> diff -N patches/patch-include_smb2_libsmb2_h
> --- patches/patch-include_smb2_libsmb2_h 31 Dec 2019 11:35:55 -0000 1.1.1.1
> +++ /dev/null 1 Jan 1970 00:00:00 -0000
> @@ -1,16 +0,0 @@
> -$OpenBSD: patch-include_smb2_libsmb2_h,v 1.1.1.1 2019/12/31 11:35:55 ajacoutot Exp $
> -
> -smb2_connect_share_async: don't return ENOMEM if connect fails.
> -
> -Index: include/smb2/libsmb2.h
> ---- include/smb2/libsmb2.h.orig
> -+++ include/smb2/libsmb2.h
> -@@ -176,7 +176,7 @@ const char *smb2_get_client_guid(struct smb2_context *
> - * status can be either of :
> - * 0 : Connection was successful. Command_data is NULL.
> - *
> -- * <0 : Failed to establish the connection. Command_data is NULL.
> -+ * -errno : Failed to establish the connection. Command_data is NULL.
> - */
> - int smb2_connect_async(struct smb2_context *smb2, const char *server,
> - smb2_command_cb cb, void *cb_data);
> Index: patches/patch-lib_errors_c
> ===================================================================
> RCS file: /home/cvs/ports/devel/libsmb2/patches/patch-lib_errors_c,v
> retrieving revision 1.1.1.1
> diff -u -p -u -p -r1.1.1.1 patch-lib_errors_c
> --- patches/patch-lib_errors_c 31 Dec 2019 11:35:55 -0000 1.1.1.1
> +++ patches/patch-lib_errors_c 26 Jan 2022 04:05:04 -0000
> @@ -3,7 +3,7 @@ $OpenBSD: patch-lib_errors_c,v 1.1.1.1 2
> Index: lib/errors.c
> --- lib/errors.c.orig
> +++ lib/errors.c
> -@@ -204,7 +204,7 @@ int nterror_to_errno(uint32_t status) {
> +@@ -1108,7 +1108,7 @@ int nterror_to_errno(uint32_t status) {
> case SMB2_STATUS_FILE_DELETED:
> return EPERM;
> case SMB2_STATUS_NO_MORE_FILES:
> Index: patches/patch-lib_libsmb2_c
> ===================================================================
> RCS file: patches/patch-lib_libsmb2_c
> diff -N patches/patch-lib_libsmb2_c
> --- patches/patch-lib_libsmb2_c 31 Dec 2019 11:35:55 -0000 1.1.1.1
> +++ /dev/null 1 Jan 1970 00:00:00 -0000
> @@ -1,28 +0,0 @@
> -$OpenBSD: patch-lib_libsmb2_c,v 1.1.1.1 2019/12/31 11:35:55 ajacoutot Exp $
> -
> -smb2_connect_share_async: don't return ENOMEM if connect fails.
> -
> -Index: lib/libsmb2.c
> ---- lib/libsmb2.c.orig
> -+++ lib/libsmb2.c
> -@@ -822,6 +822,7 @@ smb2_connect_share_async(struct smb2_context *smb2,
> - smb2_command_cb cb, void *cb_data)
> - {
> - struct connect_data *c_data;
> -+ int err;
> -
> - if (smb2->server) {
> - free(discard_const(smb2->server));
> -@@ -879,9 +880,10 @@ smb2_connect_share_async(struct smb2_context *smb2,
> - c_data->cb = cb;
> - c_data->cb_data = cb_data;
> -
> -- if (smb2_connect_async(smb2, server, connect_cb, c_data) != 0) {
> -+ err = smb2_connect_async(smb2, server, connect_cb, c_data);
> -+ if (err != 0) {
> - free_c_data(smb2, c_data);
> -- return -ENOMEM;
> -+ return err;
> - }
> -
> - return 0;
> Index: patches/patch-lib_socket_c
> ===================================================================
> RCS file: patches/patch-lib_socket_c
> diff -N patches/patch-lib_socket_c
> --- patches/patch-lib_socket_c 31 Dec 2019 11:35:55 -0000 1.1.1.1
> +++ /dev/null 1 Jan 1970 00:00:00 -0000
> @@ -1,102 +0,0 @@
> -$OpenBSD: patch-lib_socket_c,v 1.1.1.1 2019/12/31 11:35:55 ajacoutot Exp $
> -
> -smb2_connect_share_async: don't return ENOMEM if connect fails.
> -
> -Index: lib/socket.c
> ---- lib/socket.c.orig
> -+++ lib/socket.c
> -@@ -579,19 +579,19 @@ smb2_connect_async(struct smb2_context *smb2, const ch
> - struct addrinfo *ai = NULL;
> - struct sockaddr_storage ss;
> - socklen_t socksize;
> -- int family;
> -+ int family, err;
> -
> - if (smb2->fd != -1) {
> - smb2_set_error(smb2, "Trying to connect but already "
> - "connected.");
> -- return -1;
> -+ return -EINVAL;
> - }
> -
> - addr = strdup(server);
> - if (addr == NULL) {
> - smb2_set_error(smb2, "Out-of-memory: "
> - "Failed to strdup server address.");
> -- return -1;
> -+ return -ENOMEM;
> - }
> - host = addr;
> - port = host;
> -@@ -606,7 +606,7 @@ smb2_connect_async(struct smb2_context *smb2, const ch
> - free(addr);
> - smb2_set_error(smb2, "Invalid address:%s "
> - "Missing ']' in IPv6 address", server);
> -- return -1;
> -+ return -EINVAL;
> - }
> - *str = 0;
> - port = str + 1;
> -@@ -620,11 +620,33 @@ smb2_connect_async(struct smb2_context *smb2, const ch
> - }
> -
> - /* is it a hostname ? */
> -- if (getaddrinfo(host, port, NULL, &ai) != 0) {
> -+ err = getaddrinfo(host, port, NULL, &ai);
> -+ if (err != 0) {
> - free(addr);
> - smb2_set_error(smb2, "Invalid address:%s "
> - "Can not resolv into IPv4/v6.", server);
> -- return -1;
> -+ switch (err) {
> -+ case EAI_AGAIN:
> -+ return -EAGAIN;
> -+ case EAI_NONAME:
> -+#if EAI_NODATA != EAI_NONAME /* Equal in MSCV */
> -+ case EAI_NODATA:
> -+

No comments:

Post a Comment