Changeset 2377


Ignore:
Timestamp:
Sep 17, 2014, 8:06:01 PM (4 years ago)
Author:
matthijs
Message:

transmission: Update to version 2.84

Interesting changes include:

  • Fix peer communication vulnerability (no known exploits) reported by Ben Hawkes
  • Fix network hanging issues that could occur when both UTP and DHT were enabled
  • Disallow torrents that contain "/../" in the path
  • Remember a torrent's "queued" state between Transmission sessions
  • Support file renaming in the web client
  • Fix file uploading issue in Internet Explorer 11
  • Fix overflow error when setting speed limits above ~8589 kB/s
  • Fix various crashes

See https://trac.transmissionbt.com/wiki/Changes#version-2.84 for a
complete list of changes.

Closes: #1343

Location:
trunk/fon
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/fon/plugins/plugin-torrent/Makefile

    r2198 r2377  
    99
    1010PKG_NAME:=plugin-torrent
    11 PKG_VERSION:=2.71
     11PKG_VERSION:=2.84
    1212PKG_RELEASE:=1
    1313# Build a .fmg plugin
  • trunk/fon/transmission/Makefile

    r2198 r2377  
    99
    1010PKG_NAME:=transmission
    11 PKG_VERSION:=2.71
     11PKG_VERSION:=2.84
    1212PKG_RELEASE:=1
    1313
    14 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
     14PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
    1515PKG_SOURCE_URL:=http://mirrors.m0k.org/transmission/files
    16 PKG_MD5SUM:=902393c5a054b4ed4953f7a16d13801a
     16PKG_MD5SUM:=411aec1c418c14f6765710d89743ae42
    1717
    1818PKG_FIXUP = libtool
  • trunk/fon/transmission/patches/200-crypt.patch

    r2060 r2377  
    11--- a/libtransmission/rpc-server.c
    22+++ b/libtransmission/rpc-server.c
    3 @@ -16,6 +16,7 @@
    4  #include <limits.h> /* INT_MAX */
     3@@ -12,6 +12,7 @@
     4 #include <string.h> /* memcpy */
    55 
    66 #include <unistd.h>    /* close */
     
    99 #ifdef HAVE_ZLIB
    1010  #include <zlib.h>
    11 @@ -56,6 +57,7 @@
     11@@ -53,6 +54,7 @@ struct tr_rpc_server
    1212 {
    1313     bool               isEnabled;
     
    1616     bool               isWhitelistEnabled;
    1717     tr_port            port;
    18      char *            url;
    19 @@ -583,6 +585,46 @@
    20      return success;
     18     char             * url;
     19@@ -604,6 +606,46 @@ test_session_id (struct tr_rpc_server *
     20   return success;
    2121 }
    2222 
     
    6262+
    6363 static void
    64  handle_request( struct evhttp_request * req, void * arg )
     64 handle_request (struct evhttp_request * req, void * arg)
    6565 {
    66 @@ -607,6 +649,7 @@
    67                  *pass++ = '\0';
     66@@ -628,6 +670,7 @@ handle_request (struct evhttp_request *
     67               *pass++ = '\0';
    6868             }
    6969         }
    7070+               //syslog(0,"%s:%s[%d] %s\n", __FILE__, __func__, __LINE__, req->remote_host);
    7171 
    72          if( !isAddressAllowed( server, req->remote_host ) )
     72       if (!isAddressAllowed (server, req->remote_host))
    7373         {
    74 @@ -616,10 +659,7 @@
    75                  "<p>If you're editing settings.json, see the 'rpc-whitelist' and 'rpc-whitelist-enabled' entries.</p>"
    76                  "<p>If you're still using ACLs, use a whitelist instead. See the transmission-daemon manpage for details.</p>" );
     74@@ -637,10 +680,7 @@ handle_request (struct evhttp_request *
     75             "<p>If you're editing settings.json, see the 'rpc-whitelist' and 'rpc-whitelist-enabled' entries.</p>"
     76             "<p>If you're still using ACLs, use a whitelist instead. See the transmission-daemon manpage for details.</p>");
    7777         }
    78 -        else if( server->isPasswordEnabled
    79 -                 && ( !pass || !user || strcmp( server->username, user )
    80 -                                     || !tr_ssha1_matches( server->password,
    81 -                                                           pass ) ) )
     78-      else if (server->isPasswordEnabled
     79-                 && (!pass || !user || strcmp (server->username, user)
     80-                                     || !tr_ssha1_matches (server->password,
     81-                                                           pass)))
    8282+        else if( server->isPasswordEnabled && authRPCUser(server, user, pass) && (strcmp(req->remote_host, "127.0.0.1")))
    8383         {
    84              evhttp_add_header( req->output_headers,
    85                                 "WWW-Authenticate",
    86 @@ -961,6 +1001,12 @@
    87      else
    88          tr_rpcSetPasswordEnabled( s, boolVal );
     84           evhttp_add_header (req->output_headers,
     85                              "WWW-Authenticate",
     86@@ -992,6 +1032,12 @@ tr_rpcInit (tr_session  * session, tr_va
     87   else
     88     tr_rpcSetPasswordEnabled (s, boolVal);
    8989 
    90   key = TR_PREFS_KEY_RPC_AUTH_SYS;
    91   if( !tr_bencDictFindBool( settings, key, &boolVal ) )
    92 +        tr_nerr( MY_NAME, _( "Couldn't find settings key \"%s\"" ), key );
    93   else
    94 +        s->isPasswordSystem = boolVal;
     90key = TR_KEY_rpc_authentication_sys;
     91if (!tr_variantDictFindBool (settings, key, &boolVal))
     92+    missing_settings_key (key);
     93else
     94+    s->isPasswordSystem = boolVal;
    9595+
    96      key = TR_PREFS_KEY_RPC_WHITELIST;
    97      if( !tr_bencDictFindStr( settings, key, &str ) && str )
    98          tr_nerr( MY_NAME, _( "Couldn't find settings key \"%s\"" ), key );
    99 --- a/libtransmission/transmission.h
    100 +++ b/libtransmission/transmission.h
    101 @@ -196,6 +196,7 @@
    102  #define TR_PREFS_KEY_RATIO_ENABLED                      "ratio-limit-enabled"
    103  #define TR_PREFS_KEY_RENAME_PARTIAL_FILES               "rename-partial-files"
    104  #define TR_PREFS_KEY_RPC_AUTH_REQUIRED                  "rpc-authentication-required"
    105 +#define TR_PREFS_KEY_RPC_AUTH_SYS                       "rpc-authentication-system"
    106  #define TR_PREFS_KEY_RPC_BIND_ADDRESS                   "rpc-bind-address"
    107  #define TR_PREFS_KEY_RPC_ENABLED                        "rpc-enabled"
    108  #define TR_PREFS_KEY_RPC_PASSWORD                       "rpc-password"
     96   key = TR_KEY_rpc_whitelist;
     97   if (!tr_variantDictFindStr (settings, key, &str, NULL) && str)
     98     missing_settings_key (key);
    10999--- a/daemon/daemon.c
    110100+++ b/daemon/daemon.c
    111 @@ -98,6 +98,7 @@
     101@@ -106,6 +106,7 @@ static const struct tr_option options[]
    112102     { 'T', "no-auth", "Don't require authentication", "T", 0, NULL },
    113103     { 'u', "username", "Set username for authentication", "u", 1, "<username>" },
     
    117107     { 810, "log-error", "Show error messages", NULL, 0, NULL },
    118108     { 811, "log-info", "Show error and info messages", NULL, 0, NULL },
    119 @@ -398,6 +399,9 @@
     109@@ -420,6 +421,9 @@ main (int argc, char ** argv)
    120110                       break;
    121              case 'T': tr_bencDictAddBool( &settings, TR_PREFS_KEY_RPC_AUTH_REQUIRED, false );
     111             case 'B': tr_variantDictAddBool (&settings, TR_KEY_blocklist_enabled, false);
    122112                       break;
    123 +            case 'X': tr_bencDictAddBool( &settings, TR_PREFS_KEY_RPC_AUTH_REQUIRED, true );
    124 +                                         tr_bencDictAddBool( &settings, TR_PREFS_KEY_RPC_AUTH_SYS, true );
     113+            case 'X': tr_variantDictAddBool (&settings, TR_KEY_rpc_authentication_required, true);
     114+                      tr_variantDictAddBool (&settings, TR_KEY_rpc_authentication_sys, true);
    125115+                      break;
    126              case 'u': tr_bencDictAddStr( &settings, TR_PREFS_KEY_RPC_USERNAME, optarg );
     116             case 'c': tr_variantDictAddStr  (&settings, TR_KEY_watch_dir, optarg);
     117                       tr_variantDictAddBool (&settings, TR_KEY_watch_dir_enabled, true);
    127118                       break;
    128              case 'v': tr_bencDictAddStr( &settings, TR_PREFS_KEY_RPC_PASSWORD, optarg );
    129119--- a/utils/Makefile.in
    130120+++ b/utils/Makefile.in
    131 @@ -341,6 +341,7 @@
     121@@ -416,6 +416,7 @@ dist_man_MANS = \
    132122 
    133123 transmission_create_LDADD = \
     
    139129--- a/cli/Makefile.in
    140130+++ b/cli/Makefile.in
    141 @@ -324,6 +324,7 @@
     131@@ -399,6 +399,7 @@ dist_man_MANS = transmission-cli.1
    142132 transmission_cli_SOURCES = cli.c
    143133 transmission_cli_LDADD = \
     
    149139--- a/daemon/Makefile.in
    150140+++ b/daemon/Makefile.in
    151 @@ -337,6 +337,7 @@
     141@@ -416,6 +416,7 @@ dist_man_MANS = \
    152142 
    153143 LDADD = \
     
    159149--- a/libtransmission/Makefile.in
    160150+++ b/libtransmission/Makefile.in
    161 @@ -513,6 +513,7 @@
     151@@ -859,6 +859,7 @@ apps_ldflags = \
    162152 
    163153 apps_ldadd = \
    164      ./libtransmission.a  \
    165 +    -lcrypt \
    166      @LIBUPNP_LIBS@ \
    167      @LIBNATPMP_LIBS@ \
    168      @INTLLIBS@ \
     154   ./libtransmission.a  \
     155+  -lcrypt \
     156   @LIBUPNP_LIBS@ \
     157   @LIBNATPMP_LIBS@ \
     158   @INTLLIBS@ \
     159--- a/libtransmission/quark.h
     160+++ b/libtransmission/quark.h
     161@@ -285,6 +285,7 @@ enum
     162   TR_KEY_reqq,
     163   TR_KEY_result,
     164   TR_KEY_rpc_authentication_required,
     165+  TR_KEY_rpc_authentication_sys,
     166   TR_KEY_rpc_bind_address,
     167   TR_KEY_rpc_enabled,
     168   TR_KEY_rpc_password,
     169--- a/libtransmission/quark.c
     170+++ b/libtransmission/quark.c
     171@@ -287,6 +287,7 @@ static const struct tr_key_struct my_sta
     172   { "reqq", 4 },
     173   { "result", 6 },
     174   { "rpc-authentication-required", 27 },
     175+  { "rpc-authentication-sys", 22 },
     176   { "rpc-bind-address", 16 },
     177   { "rpc-enabled", 11 },
     178   { "rpc-password", 12 },
Note: See TracChangeset for help on using the changeset viewer.