Changeset 12393
- Timestamp:
- Apr 27, 2011, 9:38:45 PM (12 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/libtransmission/peer-msgs.c
r12367 r12393 789 789 { 790 790 tr_benc val, *m; 791 char * buf;792 int len;793 791 bool allow_pex; 794 792 bool allow_metadata_xfer; 793 struct evbuffer * payload; 795 794 struct evbuffer * out = msgs->outMessages; 796 795 const unsigned char * ipv6 = tr_globalIPv6(); … … 833 832 tr_bencDictAddInt( m, "ut_pex", UT_PEX_ID ); 834 833 835 buf = tr_bencToStr( &val, TR_FMT_BENC, &len);836 837 evbuffer_add_uint32( out, 2 * sizeof( uint8_t ) + len);834 payload = tr_bencToBuf( &val, TR_FMT_BENC ); 835 836 evbuffer_add_uint32( out, 2 * sizeof( uint8_t ) + evbuffer_get_length( payload ) ); 838 837 evbuffer_add_uint8 ( out, BT_LTEP ); 839 838 evbuffer_add_uint8 ( out, LTEP_HANDSHAKE ); 840 evbuffer_add ( out, buf, len);839 evbuffer_add_buffer( out, payload ); 841 840 pokeBatchPeriod( msgs, IMMEDIATE_PRIORITY_INTERVAL_SECS ); 842 841 dbgOutMessageLen( msgs ); 843 842 844 843 /* cleanup */ 844 evbuffer_free( payload ); 845 845 tr_bencFree( &val ); 846 tr_free( buf );847 846 } 848 847 … … 998 997 { 999 998 tr_benc tmp; 1000 int payloadLen; 1001 char * payload; 999 struct evbuffer * payload; 1002 1000 struct evbuffer * out = msgs->outMessages; 1003 1001 … … 1006 1004 tr_bencDictAddInt( &tmp, "msg_type", METADATA_MSG_TYPE_REJECT ); 1007 1005 tr_bencDictAddInt( &tmp, "piece", piece ); 1008 payload = tr_bencToStr( &tmp, TR_FMT_BENC, &payloadLen ); 1009 tr_bencFree( &tmp ); 1006 payload = tr_bencToBuf( &tmp, TR_FMT_BENC ); 1010 1007 1011 1008 /* write it out as a LTEP message to our outMessages buffer */ 1012 evbuffer_add_uint32( out, 2 * sizeof( uint8_t ) + payloadLen);1009 evbuffer_add_uint32( out, 2 * sizeof( uint8_t ) + evbuffer_get_length( payload ) ); 1013 1010 evbuffer_add_uint8 ( out, BT_LTEP ); 1014 1011 evbuffer_add_uint8 ( out, msgs->ut_metadata_id ); 1015 evbuffer_add ( out, payload, payloadLen);1012 evbuffer_add_buffer( out, payload ); 1016 1013 pokeBatchPeriod( msgs, HIGH_PRIORITY_INTERVAL_SECS ); 1017 1014 dbgOutMessageLen( msgs ); 1018 1015 1019 tr_free( payload ); 1016 /* cleanup */ 1017 evbuffer_free( payload ); 1018 tr_bencFree( &tmp ); 1020 1019 } 1021 1020 } … … 1718 1717 { 1719 1718 tr_benc tmp; 1720 int payloadLen; 1721 char * payload; 1719 struct evbuffer * payload; 1722 1720 struct evbuffer * out = msgs->outMessages; 1723 1721 … … 1726 1724 tr_bencDictAddInt( &tmp, "msg_type", METADATA_MSG_TYPE_REQUEST ); 1727 1725 tr_bencDictAddInt( &tmp, "piece", piece ); 1728 payload = tr_bencToStr( &tmp, TR_FMT_BENC, &payloadLen ); 1729 tr_bencFree( &tmp ); 1726 payload = tr_bencToBuf( &tmp, TR_FMT_BENC ); 1730 1727 1731 1728 dbgmsg( msgs, "requesting metadata piece #%d", piece ); 1732 1729 1733 1730 /* write it out as a LTEP message to our outMessages buffer */ 1734 evbuffer_add_uint32( out, 2 * sizeof( uint8_t ) + payloadLen);1731 evbuffer_add_uint32( out, 2 * sizeof( uint8_t ) + evbuffer_get_length( payload ) ); 1735 1732 evbuffer_add_uint8 ( out, BT_LTEP ); 1736 1733 evbuffer_add_uint8 ( out, msgs->ut_metadata_id ); 1737 evbuffer_add ( out, payload, payloadLen);1734 evbuffer_add_buffer( out, payload ); 1738 1735 pokeBatchPeriod( msgs, HIGH_PRIORITY_INTERVAL_SECS ); 1739 1736 dbgOutMessageLen( msgs ); 1740 1737 1741 tr_free( payload ); 1738 /* cleanup */ 1739 evbuffer_free( payload ); 1740 tr_bencFree( &tmp ); 1742 1741 } 1743 1742 } … … 1811 1810 { 1812 1811 tr_benc tmp; 1813 int payloadLen; 1814 char * payload; 1812 struct evbuffer * payload; 1815 1813 struct evbuffer * out = msgs->outMessages; 1816 1814 … … 1820 1818 tr_bencDictAddInt( &tmp, "piece", piece ); 1821 1819 tr_bencDictAddInt( &tmp, "total_size", msgs->torrent->infoDictLength ); 1822 payload = tr_bencToStr( &tmp, TR_FMT_BENC, &payloadLen ); 1823 tr_bencFree( &tmp ); 1820 payload = tr_bencToBuf( &tmp, TR_FMT_BENC ); 1824 1821 1825 1822 /* write it out as a LTEP message to our outMessages buffer */ 1826 evbuffer_add_uint32( out, 2 * sizeof( uint8_t ) + payloadLen+ dataLen );1823 evbuffer_add_uint32( out, 2 * sizeof( uint8_t ) + evbuffer_get_length( payload ) + dataLen ); 1827 1824 evbuffer_add_uint8 ( out, BT_LTEP ); 1828 1825 evbuffer_add_uint8 ( out, msgs->ut_metadata_id ); 1829 evbuffer_add ( out, payload, payloadLen);1826 evbuffer_add_buffer( out, payload ); 1830 1827 evbuffer_add ( out, data, dataLen ); 1831 1828 pokeBatchPeriod( msgs, HIGH_PRIORITY_INTERVAL_SECS ); 1832 1829 dbgOutMessageLen( msgs ); 1833 1830 1834 tr_free( payload ); 1831 evbuffer_free( payload ); 1832 tr_bencFree( &tmp ); 1835 1833 tr_free( data ); 1836 1834 … … 1841 1839 { 1842 1840 tr_benc tmp; 1843 int payloadLen; 1844 char * payload; 1841 struct evbuffer * payload; 1845 1842 struct evbuffer * out = msgs->outMessages; 1846 1843 … … 1849 1846 tr_bencDictAddInt( &tmp, "msg_type", METADATA_MSG_TYPE_REJECT ); 1850 1847 tr_bencDictAddInt( &tmp, "piece", piece ); 1851 payload = tr_bencToStr( &tmp, TR_FMT_BENC, &payloadLen ); 1852 tr_bencFree( &tmp ); 1848 payload = tr_bencToBuf( &tmp, TR_FMT_BENC ); 1853 1849 1854 1850 /* write it out as a LTEP message to our outMessages buffer */ 1855 evbuffer_add_uint32( out, 2 * sizeof( uint8_t ) + payloadLen);1851 evbuffer_add_uint32( out, 2 * sizeof( uint8_t ) + evbuffer_get_length( payload ) ); 1856 1852 evbuffer_add_uint8 ( out, BT_LTEP ); 1857 1853 evbuffer_add_uint8 ( out, msgs->ut_metadata_id ); 1858 evbuffer_add ( out, payload, payloadLen);1854 evbuffer_add_buffer( out, payload ); 1859 1855 pokeBatchPeriod( msgs, HIGH_PRIORITY_INTERVAL_SECS ); 1860 1856 dbgOutMessageLen( msgs ); 1861 1857 1862 tr_free( payload ); 1858 evbuffer_free( payload ); 1859 tr_bencFree( &tmp ); 1863 1860 } 1864 1861 } … … 2193 2190 int i; 2194 2191 tr_benc val; 2195 char * benc;2196 int bencLen;2197 2192 uint8_t * tmp, *walk; 2193 struct evbuffer * payload; 2198 2194 struct evbuffer * out = msgs->outMessages; 2199 2195 … … 2285 2281 2286 2282 /* write the pex message */ 2287 benc = tr_bencToStr( &val, TR_FMT_BENC, &bencLen);2288 evbuffer_add_uint32( out, 2 * sizeof( uint8_t ) + bencLen);2283 payload = tr_bencToBuf( &val, TR_FMT_BENC ); 2284 evbuffer_add_uint32( out, 2 * sizeof( uint8_t ) + evbuffer_get_length( payload ) ); 2289 2285 evbuffer_add_uint8 ( out, BT_LTEP ); 2290 2286 evbuffer_add_uint8 ( out, msgs->ut_pex_id ); 2291 evbuffer_add ( out, benc, bencLen);2287 evbuffer_add_buffer( out, payload ); 2292 2288 pokeBatchPeriod( msgs, HIGH_PRIORITY_INTERVAL_SECS ); 2293 2289 dbgmsg( msgs, "sending a pex message; outMessage size is now %zu", evbuffer_get_length( out ) ); 2294 2290 dbgOutMessageLen( msgs ); 2295 2291 2296 tr_free( benc);2292 evbuffer_free( payload ); 2297 2293 tr_bencFree( &val ); 2298 2294 }
Note: See TracChangeset
for help on using the changeset viewer.