Index: head/net-p2p/libtorrent/Makefile =================================================================== --- head/net-p2p/libtorrent/Makefile (revision 484483) +++ head/net-p2p/libtorrent/Makefile (revision 484484) @@ -1,59 +1,47 @@ # $FreeBSD$ PORTNAME= libtorrent PORTVERSION= 0.13.7 -PORTREVISION= 1 +PORTREVISION= 2 CATEGORIES= net-p2p MASTER_SITES= https://rtorrent.net/downloads/ MAINTAINER= ports@FreeBSD.org COMMENT= BitTorrent Library written in C++ LICENSE= GPLv2+ LICENSE_FILE= ${WRKSRC}/COPYING BROKEN_SSL= openssl-devel -USES= autoreconf:build compiler:c++11-lang libtool pathfix pkgconfig ssl +USES= autoreconf compiler:c++11-lang libtool pathfix pkgconfig ssl GNU_CONFIGURE= yes CONFIGURE_ARGS= --disable-debug CONFIGURE_ENV= OPENSSL_LIBS="-L${OPENSSLLIB} -lcrypto" OPENSSL_CFLAGS="-I\ ${OPENSSLINC}" USE_LDCONFIG= yes OPTIONS_DEFINE= KQUEUE OPTIONS_DEFAULT=KQUEUE KQUEUE_DESC= Use kqueue(2) support # This makes sure that /usr/local/lib appears before /usr/lib when # linking libtorrent to avoid linking with base's libcrypto. MAKE_ARGS= LDFLAGS="${LDFLAGS}" KQUEUE_CONFIGURE_WITH= kqueue .include # Disable instrumentation, which requires 64-bit atomic ops, on i386 (when # using gcc) and powerpc to avoid linking errors: # /usr/local/lib/libtorrent.so: undefined reference to `__sync_add_and_fetch_8' # /usr/local/lib/libtorrent.so: undefined reference to `__sync_fetch_and_and_8' .if ${ARCH} == i386 && ${CHOSEN_COMPILER_TYPE} == gcc || ${ARCH} == powerpc CONFIGURE_ARGS+=--disable-instrumentation -.endif - -post-patch: -.if ${OPSYS} == FreeBSD - @${FIND} ${WRKSRC} \( -name '*.h' -o -name '*.cc' \) -type f \ - -exec ${REINPLACE_CMD} -e 's/tr1::/std::/g' {} \; \ - -exec ${REINPLACE_CMD} -e 's/std::std::/std::/g' {} \; \ - -exec ${REINPLACE_CMD} -e '/namespace tr1/d' {} \; \ - -exec ${REINPLACE_CMD} -e '/include/s,tr1/,,' {} \; - @${REINPLACE_CMD} -e 's/\.assign/.fill/' \ - ${WRKSRC}/src/torrent/utils/extents.h \ - ${WRKSRC}/src/torrent/utils/log.cc .endif post-install: @${STRIP_CMD} ${STAGEDIR}${PREFIX}/lib/libtorrent.so.20.0.0 .include Index: head/net-p2p/libtorrent/files/patch-openssl-1.1.x =================================================================== --- head/net-p2p/libtorrent/files/patch-openssl-1.1.x (nonexistent) +++ head/net-p2p/libtorrent/files/patch-openssl-1.1.x (revision 484484) @@ -0,0 +1,107 @@ +https://github.com/rakshasa/libtorrent/commit/7b29b6bd2547e72e22b9b7981df27092842d2a10 + +From 7b29b6bd2547e72e22b9b7981df27092842d2a10 Mon Sep 17 00:00:00 2001 +From: rakshasa +Date: Tue, 20 Dec 2016 19:51:02 +0900 +Subject: [PATCH] Added support for openssl 1.1. + +--- + configure.ac | 4 ++++ + src/utils/diffie_hellman.cc | 36 ++++++++++++++++++++++++++++++++++-- + 2 files changed, 38 insertions(+), 2 deletions(-) + +diff --git a/configure.ac b/configure.ac +index 5b1ea237..b885714d 100644 +--- configure.ac ++++ configure.ac +@@ -71,12 +71,15 @@ AC_ARG_ENABLE(openssl, + [ --disable-openssl Don't use OpenSSL's SHA1 implementation.], + [ + if test "$enableval" = "yes"; then ++dnl move to scripts. + PKG_CHECK_MODULES(OPENSSL, libcrypto, + CXXFLAGS="$CXXFLAGS $OPENSSL_CFLAGS"; + LIBS="$LIBS $OPENSSL_LIBS") + + AC_DEFINE(USE_OPENSSL, 1, Using OpenSSL.) + AC_DEFINE(USE_OPENSSL_SHA, 1, Using OpenSSL's SHA1 implementation.) ++ AC_CHECK_LIB([crypto], [DH_set0_pqg], [AC_DEFINE(USE_OPENSSL_1_1, 1, Using OpenSSL 1.1.)]) ++ + else + AC_DEFINE(USE_NSS_SHA, 1, Using Mozilla's SHA1 implementation.) + fi +@@ -87,6 +90,7 @@ AC_ARG_ENABLE(openssl, + + AC_DEFINE(USE_OPENSSL, 1, Using OpenSSL.) + AC_DEFINE(USE_OPENSSL_SHA, 1, Using OpenSSL's SHA1 implementation.) ++ AC_CHECK_LIB([crypto], [DH_set0_pqg], [AC_DEFINE(USE_OPENSSL_1_1, 1, Using OpenSSL 1.1.)]) + ] + ) + +diff --git a/src/utils/diffie_hellman.cc b/src/utils/diffie_hellman.cc +index aa653d45..7ec13165 100644 +--- src/utils/diffie_hellman.cc ++++ src/utils/diffie_hellman.cc +@@ -54,11 +54,23 @@ DiffieHellman::DiffieHellman(const unsigned char *prime, int primeLength, + m_secret(NULL), m_size(0) { + + #ifdef USE_OPENSSL ++ + m_dh = DH_new(); ++ ++#ifdef USE_OPENSSL_1_1 ++ BIGNUM * const dh_p = BN_bin2bn(prime, primeLength, NULL); ++ BIGNUM * const dh_g = BN_bin2bn(generator, generatorLength, NULL); ++ ++ if (dh_p == NULL || dh_g == NULL || ++ !DH_set0_pqg(m_dh, dh_p, NULL, dh_g)) ++ throw internal_error("Could not generate Diffie-Hellman parameters"); ++#else + m_dh->p = BN_bin2bn(prime, primeLength, NULL); + m_dh->g = BN_bin2bn(generator, generatorLength, NULL); ++#endif + + DH_generate_key(m_dh); ++ + #else + throw internal_error("Compiled without encryption support."); + #endif +@@ -74,7 +86,19 @@ DiffieHellman::~DiffieHellman() { + bool + DiffieHellman::is_valid() const { + #ifdef USE_OPENSSL ++ if (m_dh == NULL) ++ return false; ++ ++#ifdef USE_OPENSSL_1_1 ++ const BIGNUM *pub_key; ++ ++ DH_get0_key(m_dh, &pub_key, NULL); ++ ++ return pub_key != NULL; ++#else + return m_dh != NULL && m_dh->pub_key != NULL; ++#endif ++ + #else + return false; + #endif +@@ -103,8 +127,16 @@ DiffieHellman::store_pub_key(unsigned char* dest, unsigned int length) { + #ifdef USE_OPENSSL + std::memset(dest, 0, length); + +- if ((int)length >= BN_num_bytes(m_dh->pub_key)) +- BN_bn2bin(m_dh->pub_key, dest + length - BN_num_bytes(m_dh->pub_key)); ++ const BIGNUM *pub_key; ++ ++#ifdef USE_OPENSSL_1_1 ++ DH_get0_key(m_dh, &pub_key, NULL); ++#else ++ pub_key = m_dh->pub_key; ++#endif ++ ++ if ((int)length >= BN_num_bytes(pub_key)) ++ BN_bn2bin(pub_key, dest + length - BN_num_bytes(pub_key)); + #endif + } + Property changes on: head/net-p2p/libtorrent/files/patch-openssl-1.1.x ___________________________________________________________________ Added: fbsd:nokeywords ## -0,0 +1 ## +yes \ No newline at end of property Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property Index: head/net-p2p/libtorrent/files/patch-socket-issue =================================================================== --- head/net-p2p/libtorrent/files/patch-socket-issue (nonexistent) +++ head/net-p2p/libtorrent/files/patch-socket-issue (revision 484484) @@ -0,0 +1,47 @@ +https://github.com/rakshasa/libtorrent/pull/181 + +From 0f957c2576d0d0c4c227e4453d92f67884e608af Mon Sep 17 00:00:00 2001 +From: Vladyslav Movchan +Date: Sat, 3 Nov 2018 19:52:56 +0200 +Subject: [PATCH] Prevent loss of 'm_ipv6_socket' attribute which led to + execution of setsockopt(..., IPPROTO_IP, IP_TOS, ...) on IPv6 socket + +--- + src/net/socket_fd.cc | 4 ++-- + src/net/socket_fd.h | 1 + + 2 files changed, 3 insertions(+), 2 deletions(-) + +diff --git a/src/net/socket_fd.cc b/src/net/socket_fd.cc +index 54cb6ded..f04059f6 100644 +--- src/net/socket_fd.cc ++++ src/net/socket_fd.cc +@@ -251,7 +251,7 @@ SocketFd::accept(rak::socket_address* sa) { + socklen_t len = sizeof(rak::socket_address); + + if (sa == NULL) { +- return SocketFd(::accept(m_fd, NULL, &len)); ++ return SocketFd(::accept(m_fd, NULL, &len), m_ipv6_socket); + } + + int fd = ::accept(m_fd, sa->c_sockaddr(), &len); +@@ -260,7 +260,7 @@ SocketFd::accept(rak::socket_address* sa) { + *sa = sa->sa_inet6()->normalize_address(); + } + +- return SocketFd(fd); ++ return SocketFd(fd, m_ipv6_socket); + } + + // unsigned int +diff --git a/src/net/socket_fd.h b/src/net/socket_fd.h +index ca765e88..2329b4e9 100644 +--- src/net/socket_fd.h ++++ src/net/socket_fd.h +@@ -51,6 +51,7 @@ class SocketFd { + + SocketFd() : m_fd(-1) {} + explicit SocketFd(int fd) : m_fd(fd) {} ++ SocketFd(int fd, bool ipv6_socket) : m_fd(fd), m_ipv6_socket(ipv6_socket) {} + + bool is_valid() const { return m_fd >= 0; } + Property changes on: head/net-p2p/libtorrent/files/patch-socket-issue ___________________________________________________________________ Added: fbsd:nokeywords ## -0,0 +1 ## +yes \ No newline at end of property Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property Index: head/net-p2p/libtorrent/pkg-plist =================================================================== --- head/net-p2p/libtorrent/pkg-plist (revision 484483) +++ head/net-p2p/libtorrent/pkg-plist (revision 484484) @@ -1,67 +1,68 @@ include/torrent/bitfield.h include/torrent/chunk_manager.h include/torrent/common.h include/torrent/connection_manager.h include/torrent/data/block.h include/torrent/data/block_list.h include/torrent/data/block_transfer.h include/torrent/data/chunk_utils.h include/torrent/data/download_data.h include/torrent/data/file.h include/torrent/data/file_list.h include/torrent/data/file_list_iterator.h include/torrent/data/file_manager.h include/torrent/data/file_utils.h include/torrent/data/piece.h include/torrent/data/transfer_list.h include/torrent/dht_manager.h include/torrent/download.h include/torrent/download/choke_group.h include/torrent/download/choke_queue.h include/torrent/download/download_manager.h include/torrent/download/group_entry.h include/torrent/download/resource_manager.h include/torrent/download_info.h include/torrent/error.h include/torrent/event.h include/torrent/exceptions.h include/torrent/hash_string.h include/torrent/http.h include/torrent/net/socket_address_key.h include/torrent/object.h include/torrent/object_raw_bencode.h include/torrent/object_static_map.h include/torrent/object_stream.h include/torrent/path.h include/torrent/peer/choke_status.h include/torrent/peer/client_info.h include/torrent/peer/client_list.h include/torrent/peer/connection_list.h include/torrent/peer/peer.h include/torrent/peer/peer_info.h include/torrent/peer/peer_list.h include/torrent/poll.h include/torrent/poll_epoll.h include/torrent/poll_kqueue.h include/torrent/poll_select.h include/torrent/rate.h include/torrent/throttle.h include/torrent/torrent.h include/torrent/tracker.h include/torrent/tracker_controller.h include/torrent/tracker_list.h include/torrent/utils/directory_events.h include/torrent/utils/extents.h include/torrent/utils/log.h include/torrent/utils/log_buffer.h include/torrent/utils/net.h include/torrent/utils/option_strings.h include/torrent/utils/ranges.h include/torrent/utils/resume.h include/torrent/utils/signal_bitfield.h include/torrent/utils/thread_base.h include/torrent/utils/thread_interrupt.h include/torrent/utils/uri_parser.h lib/libtorrent.so +lib/libtorrent.so.20 lib/libtorrent.so.20.0.0 libdata/pkgconfig/libtorrent.pc Index: head/net-p2p/rtorrent/Makefile =================================================================== --- head/net-p2p/rtorrent/Makefile (revision 484483) +++ head/net-p2p/rtorrent/Makefile (revision 484484) @@ -1,58 +1,58 @@ # $FreeBSD$ PORTNAME= rtorrent PORTVERSION= 0.9.7 -PORTREVISION= 1 +PORTREVISION= 2 CATEGORIES= net-p2p MASTER_SITES= https://rtorrent.net/downloads/ MAINTAINER= ports@FreeBSD.org COMMENT= BitTorrent Client written in C++ LICENSE= GPLv2 GPLv3 LICENSE_COMB= dual LICENSE_FILE_GPLv2= ${WRKSRC}/COPYING LIB_DEPENDS= libcurl.so:ftp/curl \ libtorrent.so:net-p2p/libtorrent USES= compiler:c++11-lang ncurses pkgconfig GNU_CONFIGURE= yes CONFIGURE_ARGS= --disable-debug LDFLAGS+= -pthread PLIST_FILES= bin/rtorrent PORTDOCS= README PORTEXAMPLES= rtorrent.rc SUB_FILES= pkg-message OPTIONS_DEFINE= DOCS EXAMPLES IPV6 XMLRPC OPTIONS_DEFAULT=XMLRPC XMLRPC_DESC= Compile with xmlrpc-c support IPV6_CONFIGURE_ENABLE= ipv6 XMLRPC_CONFIGURE_OFF= --with-xmlrpc-c=no XMLRPC_CONFIGURE_ON= --with-xmlrpc-c XMLRPC_LIB_DEPENDS= libxmlrpc.so:net/xmlrpc-c .include post-patch: @${REINPLACE_CMD} -e 's|-O3|${CFLAGS}|' ${WRKSRC}/configure .if ${OPSYS} == FreeBSD @${FIND} ${WRKSRC} \( -name '*.h' -o -name '*.cc' \) -type f \ -exec ${REINPLACE_CMD} -e 's/tr1::/std::/g' {} \; \ -exec ${REINPLACE_CMD} -e 's/std::std::/std::/g' {} \; \ -exec ${REINPLACE_CMD} -e '/namespace tr1/d' {} \; \ -exec ${REINPLACE_CMD} -e '/include/s,tr1/,,' {} \; .endif post-install-DOCS-on: @${MKDIR} ${STAGEDIR}${DOCSDIR}/ ${INSTALL_DATA} ${WRKSRC}/${PORTDOCS} ${STAGEDIR}${DOCSDIR}/ post-install-EXAMPLES-on: @${MKDIR} ${STAGEDIR}${EXAMPLESDIR}/ ${INSTALL_DATA} ${WRKSRC}/doc/rtorrent.rc ${STAGEDIR}${EXAMPLESDIR}/ .include Index: head/net-p2p/rtorrent/files/extra-clang =================================================================== --- head/net-p2p/rtorrent/files/extra-clang (revision 484483) +++ head/net-p2p/rtorrent/files/extra-clang (nonexistent) @@ -1,427 +0,0 @@ ---- src/command_download.cc 2013-12-07 17:54:06.182256000 +0100 -+++ src/command_download.cc 2013-12-07 18:32:56.086096805 +0100 -@@ -813,8 +813,8 @@ initialize_command_download() { - CMD2_DL_V ("d.disconnect.seeders", tr1::bind(&torrent::ConnectionList::erase_seeders, CMD2_BIND_CL)); - - CMD2_DL ("d.accepting_seeders", CMD2_ON_INFO(is_accepting_seeders)); -- CMD2_DL_V ("d.accepting_seeders.enable", tr1::bind(&torrent::DownloadInfo::public_set_flags, CMD2_BIND_INFO, torrent::DownloadInfo::flag_accepting_seeders)); -- CMD2_DL_V ("d.accepting_seeders.disable", tr1::bind(&torrent::DownloadInfo::public_unset_flags, CMD2_BIND_INFO, torrent::DownloadInfo::flag_accepting_seeders)); -+ CMD2_DL_V ("d.accepting_seeders.enable", tr1::bind(&torrent::DownloadInfo::public_set_flags, CMD2_BIND_INFO, (1<<4))); -+ CMD2_DL_V ("d.accepting_seeders.disable", tr1::bind(&torrent::DownloadInfo::public_unset_flags, CMD2_BIND_INFO, (1<<4))); - - CMD2_DL ("d.throttle_name", tr1::bind(&download_get_variable, tr1::placeholders::_1, "rtorrent", "throttle_name")); - CMD2_DL_STRING_V("d.throttle_name.set", tr1::bind(&core::Download::set_throttle_name, tr1::placeholders::_1, std::placeholders::_2)); ---- src/command_dynamic.cc 2013-12-07 17:54:06.293257000 +0100 -+++ src/command_dynamic.cc 2013-12-07 18:00:29.238231276 +0100 -@@ -127,18 +127,18 @@ system_method_insert_object(const torren - - torrent::Object value; - -- switch (flags & rpc::object_storage::mask_type) { -- case rpc::object_storage::flag_bool_type: -- case rpc::object_storage::flag_value_type: -+ switch (flags & rpc::mask_type) { -+ case rpc::flag_bool_type: -+ case rpc::flag_value_type: - value = itrArgs != args.end() ? rpc::convert_to_value(*itrArgs) : int64_t(); - break; -- case rpc::object_storage::flag_string_type: -+ case rpc::flag_string_type: - value = itrArgs != args.end() ? rpc::convert_to_string(*itrArgs) : ""; - break; -- case rpc::object_storage::flag_function_type: -+ case rpc::flag_function_type: - system_method_generate_command2(&value, itrArgs, args.end()); - break; -- case rpc::object_storage::flag_multi_type: -+ case rpc::flag_multi_type: - break; - default: - throw torrent::input_error("Invalid type."); -@@ -146,15 +146,15 @@ system_method_insert_object(const torren - - int cmd_flags = 0; - -- if (!(flags & rpc::object_storage::flag_static)) -+ if (!(flags & rpc::flag_static)) - cmd_flags |= rpc::CommandMap::flag_modifiable; -- if (!(flags & rpc::object_storage::flag_private)) -+ if (!(flags & rpc::flag_private)) - cmd_flags |= rpc::CommandMap::flag_public_xmlrpc; - - control->object_storage()->insert_str(rawKey, value, flags); - -- if ((flags & rpc::object_storage::mask_type) == rpc::object_storage::flag_function_type || -- (flags & rpc::object_storage::mask_type) == rpc::object_storage::flag_multi_type) { -+ if ((flags & rpc::mask_type) == rpc::flag_function_type || -+ (flags & rpc::mask_type) == rpc::flag_multi_type) { - - rpc::commands.insert_slot >::type> - (create_new_key(rawKey), -@@ -172,7 +172,7 @@ system_method_insert_object(const torren - } - - // Not the right argument. -- // if (flags & rpc::object_storage::flag_rlookup) { -+ // if (flags & rpc::flag_rlookup) { - // rpc::commands.insert_slot >::type> - // (create_new_key<9>(rawKey, ".rlookup"), - // tr1::bind(&rpc::object_storage::rlookup_obj_list, control->object_storage(), rawKey), -@@ -184,31 +184,31 @@ system_method_insert_object(const torren - - // // Ehm... no proper handling if these throw. - -- if (!(flags & rpc::object_storage::flag_constant)) { -- switch (flags & rpc::object_storage::mask_type) { -- case rpc::object_storage::flag_bool_type: -+ if (!(flags & rpc::flag_constant)) { -+ switch (flags & rpc::mask_type) { -+ case rpc::flag_bool_type: - rpc::commands.insert_slot >::type> - (create_new_key<5>(rawKey, ".set"), - tr1::bind(&rpc::object_storage::set_str_bool, control->object_storage(), rawKey, tr1::placeholders::_2), - &rpc::command_base_call_value, - cmd_flags, NULL, NULL); - break; -- case rpc::object_storage::flag_value_type: -+ case rpc::flag_value_type: - rpc::commands.insert_slot >::type> - (create_new_key<5>(rawKey, ".set"), - tr1::bind(&rpc::object_storage::set_str_value, control->object_storage(), rawKey, tr1::placeholders::_2), - &rpc::command_base_call_value, - cmd_flags, NULL, NULL); - break; -- case rpc::object_storage::flag_string_type: -+ case rpc::flag_string_type: - rpc::commands.insert_slot >::type> - (create_new_key<5>(rawKey, ".set"), - tr1::bind(&rpc::object_storage::set_str_string, control->object_storage(), rawKey, tr1::placeholders::_2), - &rpc::command_base_call_string, - cmd_flags, NULL, NULL); - break; -- case rpc::object_storage::flag_function_type: -- case rpc::object_storage::flag_multi_type: -+ case rpc::flag_function_type: -+ case rpc::flag_multi_type: - default: break; - } - } -@@ -256,16 +256,16 @@ system_method_insert(const torrent::Obje - new_args.push_back(rawKey); - new_args.push_back(system_method_generate_command(++itrArgs, args.end())); - -- int new_flags = rpc::object_storage::flag_multi_type; -+ int new_flags = rpc::flag_multi_type; - - if (options.find("static") != std::string::npos) -- new_flags |= rpc::object_storage::flag_static; -+ new_flags |= rpc::flag_static; - if (options.find("private") != std::string::npos) -- new_flags |= rpc::object_storage::flag_private; -+ new_flags |= rpc::flag_private; - if (options.find("const") != std::string::npos) -- new_flags |= rpc::object_storage::flag_constant; -+ new_flags |= rpc::flag_constant; - if (options.find("rlookup") != std::string::npos) -- new_flags |= rpc::object_storage::flag_rlookup; -+ new_flags |= rpc::flag_rlookup; - - return system_method_insert_object(new_args, new_flags); - -@@ -274,14 +274,14 @@ system_method_insert(const torrent::Obje - new_args.push_back(rawKey); - new_args.push_back(system_method_generate_command(++itrArgs, args.end())); - -- int new_flags = rpc::object_storage::flag_function_type; -+ int new_flags = rpc::flag_function_type; - - if (options.find("static") != std::string::npos) -- new_flags |= rpc::object_storage::flag_static; -+ new_flags |= rpc::flag_static; - if (options.find("private") != std::string::npos) -- new_flags |= rpc::object_storage::flag_private; -+ new_flags |= rpc::flag_private; - if (options.find("const") != std::string::npos) -- new_flags |= rpc::object_storage::flag_constant; -+ new_flags |= rpc::flag_constant; - - return system_method_insert_object(new_args, new_flags); - -@@ -299,24 +299,24 @@ system_method_insert(const torrent::Obje - int new_flags; - - if (options.find("value") != std::string::npos) -- new_flags = rpc::object_storage::flag_value_type; -+ new_flags = rpc::flag_value_type; - else if (options.find("bool") != std::string::npos) -- new_flags = rpc::object_storage::flag_bool_type; -+ new_flags = rpc::flag_bool_type; - else if (options.find("string") != std::string::npos) -- new_flags = rpc::object_storage::flag_string_type; -+ new_flags = rpc::flag_string_type; - else if (options.find("list") != std::string::npos) -- new_flags = rpc::object_storage::flag_list_type; -+ new_flags = rpc::flag_list_type; - else if (options.find("simple") != std::string::npos) -- new_flags = rpc::object_storage::flag_function_type; -+ new_flags = rpc::flag_function_type; - else - throw torrent::input_error("No support for 'list' variable type."); - - if (options.find("static") != std::string::npos) -- new_flags |= rpc::object_storage::flag_static; -+ new_flags |= rpc::flag_static; - if (options.find("private") != std::string::npos) -- new_flags |= rpc::object_storage::flag_private; -+ new_flags |= rpc::flag_private; - if (options.find("const") != std::string::npos) -- new_flags |= rpc::object_storage::flag_constant; -+ new_flags |= rpc::flag_constant; - - return system_method_insert_object(new_args, new_flags); - -@@ -369,7 +369,7 @@ system_method_set_function(const torrent - rpc::object_storage::local_iterator itr = - control->object_storage()->find_local(torrent::raw_string::from_string(args.front().as_string())); - -- if (itr == control->object_storage()->end(0) || itr->second.flags & rpc::object_storage::flag_constant) -+ if (itr == control->object_storage()->end(0) || itr->second.flags & rpc::flag_constant) - throw torrent::input_error("Command is not modifiable."); - - return control->object_storage()->set_str_function(args.front().as_string(), -@@ -442,12 +442,12 @@ initialize_command_dynamic() { - CMD2_VAR_VALUE ("method.use_intermediate", 1); - - CMD2_ANY_LIST ("method.insert", tr1::bind(&system_method_insert, tr1::placeholders::_2)); -- CMD2_ANY_LIST ("method.insert.value", tr1::bind(&system_method_insert_object, tr1::placeholders::_2, rpc::object_storage::flag_value_type)); -+ CMD2_ANY_LIST ("method.insert.value", tr1::bind(&system_method_insert_object, tr1::placeholders::_2, rpc::flag_value_type)); - -- CMD2_METHOD_INSERT("method.insert.simple", rpc::object_storage::flag_function_type); -- CMD2_METHOD_INSERT("method.insert.c_simple", rpc::object_storage::flag_constant | rpc::object_storage::flag_function_type); -- CMD2_METHOD_INSERT("method.insert.s_c_simple", rpc::object_storage::flag_static | -- rpc::object_storage::flag_constant |rpc::object_storage::flag_function_type); -+ CMD2_METHOD_INSERT("method.insert.simple", rpc::flag_function_type); -+ CMD2_METHOD_INSERT("method.insert.c_simple", rpc::flag_constant | rpc::flag_function_type); -+ CMD2_METHOD_INSERT("method.insert.s_c_simple", rpc::flag_static | -+ rpc::flag_constant |rpc::flag_function_type); - - CMD2_ANY_STRING ("method.erase", tr1::bind(&system_method_erase, tr1::placeholders::_2)); - CMD2_ANY_LIST ("method.redirect", tr1::bind(&system_method_redirect, tr1::placeholders::_2)); -@@ -456,9 +456,9 @@ initialize_command_dynamic() { - CMD2_ANY_LIST ("method.set", tr1::bind(&system_method_set_function, tr1::placeholders::_2)); - - CMD2_ANY_STRING ("method.const", tr1::bind(&rpc::object_storage::has_flag_str, control->object_storage(), -- tr1::placeholders::_2, rpc::object_storage::flag_constant)); -+ tr1::placeholders::_2, rpc::flag_constant)); - CMD2_ANY_STRING_V("method.const.enable", tr1::bind(&rpc::object_storage::enable_flag_str, control->object_storage(), -- tr1::placeholders::_2, rpc::object_storage::flag_constant)); -+ tr1::placeholders::_2, rpc::flag_constant)); - - CMD2_ANY_LIST ("method.has_key", tr1::bind(&system_method_has_key, tr1::placeholders::_2)); - CMD2_ANY_LIST ("method.set_key", tr1::bind(&system_method_set_key, tr1::placeholders::_2)); ---- src/command_events.cc 2013-12-07 17:54:06.298257000 +0100 -+++ src/command_events.cc 2013-12-07 18:08:23.828198403 +0100 -@@ -321,15 +321,15 @@ initialize_command_events() { - CMD2_ANY_STRING_V("import", tr1::bind(&apply_import, tr1::placeholders::_2)); - CMD2_ANY_STRING_V("try_import", tr1::bind(&apply_try_import, tr1::placeholders::_2)); - -- CMD2_ANY_LIST ("load.normal", tr1::bind(&apply_load, tr1::placeholders::_2, core::Manager::create_quiet | core::Manager::create_tied)); -- CMD2_ANY_LIST ("load.verbose", tr1::bind(&apply_load, tr1::placeholders::_2, core::Manager::create_tied)); -+ CMD2_ANY_LIST ("load.normal", tr1::bind(&apply_load, tr1::placeholders::_2, core::create_quiet | core::create_tied)); -+ CMD2_ANY_LIST ("load.verbose", tr1::bind(&apply_load, tr1::placeholders::_2, core::create_tied)); - CMD2_ANY_LIST ("load.start", tr1::bind(&apply_load, tr1::placeholders::_2, -- core::Manager::create_quiet | core::Manager::create_tied | core::Manager::create_start)); -- CMD2_ANY_LIST ("load.start_verbose", tr1::bind(&apply_load, tr1::placeholders::_2, core::Manager::create_tied | core::Manager::create_start)); -- CMD2_ANY_LIST ("load.raw", tr1::bind(&apply_load, tr1::placeholders::_2, core::Manager::create_quiet | core::Manager::create_raw_data)); -- CMD2_ANY_LIST ("load.raw_verbose", tr1::bind(&apply_load, tr1::placeholders::_2, core::Manager::create_raw_data)); -+ core::create_quiet | core::create_tied | core::create_start)); -+ CMD2_ANY_LIST ("load.start_verbose", tr1::bind(&apply_load, tr1::placeholders::_2, core::create_tied | core::create_start)); -+ CMD2_ANY_LIST ("load.raw", tr1::bind(&apply_load, tr1::placeholders::_2, core::create_quiet | core::create_raw_data)); -+ CMD2_ANY_LIST ("load.raw_verbose", tr1::bind(&apply_load, tr1::placeholders::_2, core::create_raw_data)); - CMD2_ANY_LIST ("load.raw_start", tr1::bind(&apply_load, tr1::placeholders::_2, -- core::Manager::create_quiet | core::Manager::create_start | core::Manager::create_raw_data)); -+ core::create_quiet | core::create_start | core::create_raw_data)); - - CMD2_ANY_VALUE ("close_low_diskspace", tr1::bind(&apply_close_low_diskspace, tr1::placeholders::_2)); - ---- src/command_helpers.h 2013-12-07 17:54:06.288256000 +0100 -+++ src/command_helpers.h 2013-12-07 18:01:51.700225354 +0100 -@@ -98,21 +98,21 @@ void initialize_commands(); - #define CMD2_TRACKER_VALUE_V(key, slot) CMD2_A_FUNCTION(key, command_base_call_value, object_convert_void(slot), "i:i", "") - - #define CMD2_VAR_BOOL(key, value) \ -- control->object_storage()->insert_c_str(key, int64_t(value), rpc::object_storage::flag_bool_type); \ -+ control->object_storage()->insert_c_str(key, int64_t(value), rpc::flag_bool_type); \ - CMD2_ANY(key, tr1::bind(&rpc::object_storage::get, control->object_storage(), \ - torrent::raw_string::from_c_str(key))); \ - CMD2_ANY_VALUE(key ".set", tr1::bind(&rpc::object_storage::set_bool, control->object_storage(), \ - torrent::raw_string::from_c_str(key), tr1::placeholders::_2)); - - #define CMD2_VAR_VALUE(key, value) \ -- control->object_storage()->insert_c_str(key, int64_t(value), rpc::object_storage::flag_value_type); \ -+ control->object_storage()->insert_c_str(key, int64_t(value), rpc::flag_value_type); \ - CMD2_ANY(key, tr1::bind(&rpc::object_storage::get, control->object_storage(), \ - torrent::raw_string::from_c_str(key))); \ - CMD2_ANY_VALUE(key ".set", tr1::bind(&rpc::object_storage::set_value, control->object_storage(), \ - torrent::raw_string::from_c_str(key), tr1::placeholders::_2)); - - #define CMD2_VAR_STRING(key, value) \ -- control->object_storage()->insert_c_str(key, value, rpc::object_storage::flag_string_type); \ -+ control->object_storage()->insert_c_str(key, value, rpc::flag_string_type); \ - CMD2_ANY(key, tr1::bind(&rpc::object_storage::get, control->object_storage(), \ - torrent::raw_string::from_c_str(key))); \ - CMD2_ANY_STRING(key ".set", tr1::bind(&rpc::object_storage::set_string, control->object_storage(), \ -@@ -120,12 +120,12 @@ void initialize_commands(); - - - #define CMD2_VAR_C_STRING(key, value) \ -- control->object_storage()->insert_c_str(key, value, rpc::object_storage::flag_string_type); \ -+ control->object_storage()->insert_c_str(key, value, rpc::flag_string_type); \ - CMD2_ANY(key, tr1::bind(&rpc::object_storage::get, control->object_storage(), \ - torrent::raw_string::from_c_str(key))); - - #define CMD2_VAR_LIST(key) \ -- control->object_storage()->insert_c_str(key, torrent::Object::create_list(), rpc::object_storage::flag_list_type); \ -+ control->object_storage()->insert_c_str(key, torrent::Object::create_list(), rpc::flag_list_type); \ - CMD2_ANY(key, tr1::bind(&rpc::object_storage::get, control->object_storage(), \ - torrent::raw_string::from_c_str(key))); \ - CMD2_ANY_LIST(key ".set", tr1::bind(&rpc::object_storage::set_list, control->object_storage(), \ ---- src/command_local.cc 2013-12-07 17:54:06.105258000 +0100 -+++ src/command_local.cc 2013-12-07 17:57:18.242251030 +0100 -@@ -401,17 +401,17 @@ initialize_command_local() { - #define CMD2_EXECUTE(key, flags) \ - CMD2_ANY(key, tr1::bind(&rpc::ExecFile::execute_object, &rpc::execFile, tr1::placeholders::_2, flags)); - -- CMD2_EXECUTE ("execute2", rpc::ExecFile::flag_expand_tilde | rpc::ExecFile::flag_throw); -- CMD2_EXECUTE ("execute.throw", rpc::ExecFile::flag_expand_tilde | rpc::ExecFile::flag_throw); -- CMD2_EXECUTE ("execute.throw.bg", rpc::ExecFile::flag_expand_tilde | rpc::ExecFile::flag_throw | rpc::ExecFile::flag_background); -- CMD2_EXECUTE ("execute.nothrow", rpc::ExecFile::flag_expand_tilde); -- CMD2_EXECUTE ("execute.nothrow.bg", rpc::ExecFile::flag_expand_tilde | rpc::ExecFile::flag_background); -- CMD2_EXECUTE ("execute.raw", rpc::ExecFile::flag_throw); -- CMD2_EXECUTE ("execute.raw.bg", rpc::ExecFile::flag_throw | rpc::ExecFile::flag_background); -+ CMD2_EXECUTE ("execute2", rpc::flag_expand_tilde | rpc::flag_throw); -+ CMD2_EXECUTE ("execute.throw", rpc::flag_expand_tilde | rpc::flag_throw); -+ CMD2_EXECUTE ("execute.throw.bg", rpc::flag_expand_tilde | rpc::flag_throw | rpc::flag_background); -+ CMD2_EXECUTE ("execute.nothrow", rpc::flag_expand_tilde); -+ CMD2_EXECUTE ("execute.nothrow.bg", rpc::flag_expand_tilde | rpc::flag_background); -+ CMD2_EXECUTE ("execute.raw", rpc::flag_throw); -+ CMD2_EXECUTE ("execute.raw.bg", rpc::flag_throw | rpc::flag_background); - CMD2_EXECUTE ("execute.raw_nothrow", 0); -- CMD2_EXECUTE ("execute.raw_nothrow.bg", rpc::ExecFile::flag_background); -- CMD2_EXECUTE ("execute.capture", rpc::ExecFile::flag_throw | rpc::ExecFile::flag_expand_tilde | rpc::ExecFile::flag_capture); -- CMD2_EXECUTE ("execute.capture_nothrow", rpc::ExecFile::flag_expand_tilde | rpc::ExecFile::flag_capture); -+ CMD2_EXECUTE ("execute.raw_nothrow.bg", rpc::flag_background); -+ CMD2_EXECUTE ("execute.capture", rpc::flag_throw | rpc::flag_expand_tilde | rpc::flag_capture); -+ CMD2_EXECUTE ("execute.capture_nothrow", rpc::flag_expand_tilde | rpc::flag_capture); - - CMD2_ANY_LIST ("log.open_file", tr1::bind(&apply_log_open_file, tr1::placeholders::_2)); - CMD2_ANY_LIST ("log.add_output", tr1::bind(&apply_log_add_output, tr1::placeholders::_2)); ---- src/core/manager.h 2013-12-07 17:54:06.361257000 +0100 -+++ src/core/manager.h 2013-12-07 18:07:30.429202321 +0100 -@@ -64,6 +64,11 @@ typedef std::map command_list_type; - - // Temporary, find a better place for this. ---- src/rpc/exec_file.h 2013-12-07 17:54:06.332256000 +0100 -+++ src/rpc/exec_file.h 2013-12-07 17:57:52.777241888 +0100 -@@ -41,15 +41,16 @@ - - namespace rpc { - -+const unsigned int max_args = 128; -+const unsigned int buffer_size = 4096; -+ -+const int flag_expand_tilde = 0x1; -+const int flag_throw = 0x2; -+const int flag_capture = 0x4; -+const int flag_background = 0x8; -+ - class ExecFile { - public: -- static const unsigned int max_args = 128; -- static const unsigned int buffer_size = 4096; -- -- static const int flag_expand_tilde = 0x1; -- static const int flag_throw = 0x2; -- static const int flag_capture = 0x4; -- static const int flag_background = 0x8; - - ExecFile() : m_logFd(-1) {} - ---- src/rpc/object_storage.h 2013-12-07 17:54:06.347257000 +0100 -+++ src/rpc/object_storage.h 2013-12-07 17:59:00.255372089 +0100 -@@ -58,6 +58,21 @@ struct object_storage_node { - - typedef std::unordered_map, object_storage_node, hash_fixed_key_type> object_storage_base_type; - -+static const unsigned int flag_generic_type = 0x1; -+static const unsigned int flag_bool_type = 0x2; -+static const unsigned int flag_value_type = 0x3; -+static const unsigned int flag_string_type = 0x4; -+static const unsigned int flag_list_type = 0x5; -+static const unsigned int flag_function_type = 0x6; -+static const unsigned int flag_multi_type = 0x7; -+ -+static const unsigned int mask_type = 0xf; -+ -+static const unsigned int flag_constant = 0x10; -+static const unsigned int flag_static = 0x20; -+static const unsigned int flag_private = 0x40; -+static const unsigned int flag_rlookup = 0x80; -+ - class object_storage : private object_storage_base_type { - public: - // Should really change rlookup_type into a set with pair values. -@@ -90,21 +105,6 @@ public: - using base_type::find; - using base_type::erase; - -- static const unsigned int flag_generic_type = 0x1; -- static const unsigned int flag_bool_type = 0x2; -- static const unsigned int flag_value_type = 0x3; -- static const unsigned int flag_string_type = 0x4; -- static const unsigned int flag_list_type = 0x5; -- static const unsigned int flag_function_type = 0x6; -- static const unsigned int flag_multi_type = 0x7; -- -- static const unsigned int mask_type = 0xf; -- -- static const unsigned int flag_constant = 0x10; -- static const unsigned int flag_static = 0x20; -- static const unsigned int flag_private = 0x40; -- static const unsigned int flag_rlookup = 0x80; -- - static const size_t key_size = key_type::max_size; - - local_iterator find_local(const torrent::raw_string& key); ---- src/ui/download_list.cc 2013-12-07 17:54:06.155258000 +0100 -+++ src/ui/download_list.cc 2013-12-07 18:09:06.091195600 +0100 -@@ -304,7 +304,7 @@ DownloadList::receive_exit_input(Input t - if (input->str().empty()) - break; - -- control->core()->try_create_download_expand(input->str(), type == INPUT_LOAD_DEFAULT ? core::Manager::create_start : 0); -+ control->core()->try_create_download_expand(input->str(), type == INPUT_LOAD_DEFAULT ? core::create_start : 0); - break; - - case INPUT_CHANGE_DIRECTORY: Property changes on: head/net-p2p/rtorrent/files/extra-clang ___________________________________________________________________ Deleted: fbsd:nokeywords ## -1 +0,0 ## -yes \ No newline at end of property Deleted: svn:eol-style ## -1 +0,0 ## -native \ No newline at end of property Deleted: svn:mime-type ## -1 +0,0 ## -text/plain \ No newline at end of property