1 |
-=====================================================================- |
2 |
-Project IDFetch - Weekly report #6 ("Network/Connection Management") - |
3 |
-=====================================================================- |
4 |
|
5 |
Amway, Oriflame, Mary Kay ... looks like the whole world is covered with |
6 |
these networks. I don't mind network marketing [1], but in most cases |
7 |
network brokers so eager to cover all of your needs, that probably you |
8 |
don't even have a chance to buy from the others or even from a local |
9 |
place [2]. Trying to impose limits on your connections with network |
10 |
brokers doesn't really work - they already know how to get you via your |
11 |
cell phone, LAN and in some cases even the address you are bound to[3]. |
12 |
|
13 |
Although, sometimes i'd like to provide something myself [4], but |
14 |
mostly it's getting extremely annoyinggggggggg. Hopefully development of |
15 |
Network/Connection Management System [5] will mitigate at least some of |
16 |
these problems. |
17 |
We'll see... |
18 |
|
19 |
From IDFetch project timeline [5]: |
20 |
Fetchers-Connection-Manager will allow fetcher to manage multiple |
21 |
connections, in order to increase throughput, and prevent downloads via |
22 |
some network connections ( e.i. to prevent connection via cell-phone, |
23 |
when you pay for the traffic). |
24 |
|
25 |
Progress on IDFetch project |
26 |
=========================== |
27 |
Development of Network/Connection Management System resulted in adding |
28 |
the following options to the segget's configuration files: |
29 |
|
30 |
----------------- Added to segget.conf file ----------------- |
31 |
|
32 |
[networks] |
33 |
# NETWORK0_PRIORITY |
34 |
# Define priority as a value in range from lowest 0 to highest 10. |
35 |
# Segget tries to use networks with higher priority levels first, and in |
36 |
# case of failure will switch to networks with lower priority levels. |
37 |
# Segget will NOT use network if its priority level set to 0. Therefore |
38 |
# at least one network must have priority level higher than 0. |
39 |
# Networks with local mirrors usually would have higher priority than |
40 |
# that of networks with remote mirrors. |
41 |
# Segget can have up to 10 networks (from network0 to network9). |
42 |
# Settings for each network should be defined in network#.conf file, |
43 |
# where instead of # should be a network number. |
44 |
# For network0 it's network0.conf |
45 |
# Default: |
46 |
# network0_priority=10 |
47 |
# network1_priority=0 |
48 |
# network2_priority=0 |
49 |
# network3_priority=0 |
50 |
# network4_priority=0 |
51 |
# network5_priority=0 |
52 |
# network6_priority=0 |
53 |
# network7_priority=0 |
54 |
# network8_priority=0 |
55 |
# network9_priority=0 |
56 |
network0_priority=10 |
57 |
|
58 |
[provide_mirror_to_others] |
59 |
# PROVIDE_MIRROR_DIR |
60 |
# Define a dir for making symlinks to downloaded distfiles. This dir can |
61 |
# be used to provide local mirror for other hosts (with help of Apache, |
62 |
# vsftp, etc). |
63 |
# If set to none, segget will not make symlinks. |
64 |
# Default: |
65 |
# provide_mirror_dir=none |
66 |
provide_mirror_dir=./provide_mirror_dir |
67 |
|
68 |
# SYNOPSIS: PROVIDE_MIRROR_FILES_RESTRICT_LIST_ON= 0 | 1 |
69 |
# If PROVIDE_MIRROR_DIR=none this option will be ignored. |
70 |
# - If set to 1, segget will compare distfile name with the list of |
71 |
# forbiden patterns from the restricted.conf file. If distfile name |
72 |
# contains any of the patterns, no symlink will be provided to this |
73 |
# distfile. |
74 |
# Default: |
75 |
# provide_mirror_files_restrict_list_on=0 |
76 |
provide_mirror_files_restrict_list_on=1 |
77 |
|
78 |
----------------- Added to network#.conf files ----------------- |
79 |
|
80 |
[network_mirrors] |
81 |
# SYNOPSIS: NETWORK_USES_OWN_MIRROR_LIST_ONLY_ON=0 | 1 |
82 |
# - If set to 1, segget will replace mirror list provided by portage |
83 |
# system with the list from network0_mirrors.conf file |
84 |
# - If set to 0, segget will use ONLY mirror list provided by portage |
85 |
# system, and will NOT use the list from network0_mirrors.conf file |
86 |
# In some cases it's necessary to make segget prefer local mirrors over |
87 |
# the remote ones. For this purpose define settings for 2 networks: |
88 |
# settings for network0 (to provide access to local mirrors), |
89 |
# settings for network1 (to provide access to remote ones). |
90 |
# 1) Set the following options in segget.conf file: |
91 |
# [networks] |
92 |
# network0_priority=10 |
93 |
# network1_priority=9 |
94 |
# As you can see network0 (with local mirrors) has higher priority than |
95 |
# network1 (with mirrors provided by portage). |
96 |
# 2) Set NETWORK_USES_OWN_MIRROR_LIST_ONLY_ON=1 in network0.conf file. |
97 |
# 3) Create network0_mirrors.conf file with the list of your local |
98 |
# mirrors. |
99 |
# For example, network0_mirrors.conf may look like this: |
100 |
# http://192.168.210.12/ |
101 |
# ftp://192.168.210.205/ |
102 |
# http://192.168.210.56/ |
103 |
# 4) Set NETWORK_USES_OWN_MIRROR_LIST_ONLY_ON=0 in network1.conf file, |
104 |
# so segget will use remote mirrors working via this network. |
105 |
# NOTE: Actually network0 and network1 can be the same LAN with only |
106 |
# one ip address set on the host. The only difference is that in case of |
107 |
# network1 segget will have to use a gateway to access remote mirrors. |
108 |
# Default: |
109 |
# use_own_mirror_list_only_on=0 |
110 |
use_own_mirror_list_only_on=0 |
111 |
|
112 |
# SYNOPSIS: ONLY_LOCAL_WHEN_POSSIBLE=0 | 1 |
113 |
# If NETWORK_USES_OWN_MIRROR_LIST_ONLY_ON=0 this option will be ignored. |
114 |
# - If set to 1, segget will not use remote mirrors with equal or lower |
115 |
# priority until all mirrors in network#_mirrors.conf file have failed. |
116 |
# - If set to 0, segget will use remote mirrors with equal priority or |
117 |
# mirrors with lower priority when this network has NO free connections |
118 |
# (see option NETWORK_MAX_CONNECTIONS in [network_connections] section |
119 |
# of this file). |
120 |
# NOTE: Following example for NETWORK_USES_OWN_MIRROR_LIST_ONLY_ON |
121 |
option, |
122 |
# if in network0.conf has option ONLY_LOCAL_WHEN_POSSIBLE=1, segget |
123 |
# will NOT start to use network1 for a particular distfile until all |
124 |
# mirrors specified in network0_mirrors.conf file will have failed |
125 |
# to provide this distfile. |
126 |
# On the other hand if ONLY_LOCAL_WHEN_POSSIBLE=0 segget will start |
127 |
# to use network1 as soon as NETWORK_MAX_CONNECTIONS limit, set |
128 |
# in network0.conf file has been reached. |
129 |
# Default: |
130 |
# only_local_when_possible=1 |
131 |
only_local_when_possible=1 |
132 |
|
133 |
------------- Moved from segget.conf to network#.conf files ------------ |
134 |
|
135 |
[network_bind] |
136 |
# BIND INTERFACE / IP |
137 |
# Pass a string as parameter. This sets the interface name to use as |
138 |
# outgoing network interface. The name can be an interface name, an IP |
139 |
# address, or a host name. No binding is set by default. |
140 |
# Default: |
141 |
# bind_interface=none |
142 |
bind_interface=none |
143 |
|
144 |
# BIND LOCALPORT |
145 |
# Pass a long. This sets the local port number of the socket used for |
146 |
# connection. |
147 |
# This can be used in combination with BIND_INTERFACE and you are |
148 |
# recommended to use BIND_LOCALPORTRANGE as well when this is set. |
149 |
# Valid port numbers are 1 - 65535. |
150 |
|
151 |
# BIND_LOCALPORTRANGE |
152 |
# Pass a long. This is the number of attempts segget should make to find |
153 |
# a working local port number. It starts with the given BIND_LOCALPORT |
154 |
# and adds one to the number for each retry. Setting this to 1 or below |
155 |
# will make segget do only one try for the exact port number. Port |
156 |
# numbers by nature are scarce resources that will be busy at times so |
157 |
# setting this value to something too low might cause unnecessary |
158 |
# connection setup failures. |
159 |
|
160 |
[network_connections] |
161 |
# NETWORK_MAX_CONNECTIONS |
162 |
# Define maximum number of connections |
163 |
# Minimum value: 1 |
164 |
# Maximum value: 20 |
165 |
# Default: |
166 |
# max_connections=10 |
167 |
max_connections=2 |
168 |
|
169 |
# CONNECTION_TIMEOUT |
170 |
# Set the number of seconds to wait while trying to connect. Use 0 to |
171 |
# wait indefinitely. Pass a long. It should contain the maximum time in |
172 |
# seconds that you allow the connection to the server to take. This |
173 |
# only limits the connection phase, once it has connected, this option |
174 |
# is of no more use. Set to zero to disable connection timeout (it will |
175 |
# then only timeout on the system's internal timeouts). See also the |
176 |
# TIMEOUT option. |
177 |
# Minimum value: 1 |
178 |
# Maximum value: 1000 |
179 |
# Default: |
180 |
# connection_timeout=15 |
181 |
connection_timeout=15 |
182 |
|
183 |
# FTP_RESPONSE_TIMEOUT |
184 |
# Set a timeout period (in seconds) on the amount of time that the |
185 |
# server is allowed to take in order to generate a response message for |
186 |
# a command before the session is considered hung. While awaiting for a |
187 |
# response, this value overrides TIMEOUT. It is recommended that if |
188 |
# used in conjunction with TIMEOUT, you set FTP_RESPONSE_TIMEOUT to a |
189 |
# value smaller than TIMEOUT. |
190 |
# Minimum value: 1 |
191 |
# Maximum value: -1 (for no limit) |
192 |
# Default: |
193 |
# ftp_response_timeout=180 |
194 |
ftp_response_timeout=180 |
195 |
|
196 |
# TIMEOUT |
197 |
# maximum amount of time to download segment in seconds |
198 |
# Set the maximum number of seconds for a connection to execute. |
199 |
# Pass a long as parameter containing the maximum time in seconds that |
200 |
# you allow the transfer operation to take. Normally, name lookups can |
201 |
# take a considerable time and limiting operations to less than a few |
202 |
# minutes risk aborting perfectly normal operations. |
203 |
# Minimum value: 100 |
204 |
# Maximum value: -1 (for no limit) |
205 |
# Default: |
206 |
# timeout=500 |
207 |
timeout=500 |
208 |
|
209 |
# LOW_CONNECTION_SPEED_LIMIT |
210 |
# Define the low speed limit for connection. Pass a long as parameter. |
211 |
# It contains the transfer speed in bytes per second that the transfer |
212 |
# should be below during LOW_CONNECTION_SPEED_TIME seconds to consider |
213 |
# it too slow and abort. |
214 |
# Minimum value: 1 |
215 |
# Maximum value: -1 (-1 for no limit) |
216 |
# Default: |
217 |
# low_connection_speed_limit=1000 |
218 |
low_connection_speed_limit=1000 |
219 |
|
220 |
# LOW_CONNECTION_SPEED_TIME |
221 |
# Pass a long as parameter. It contains the time in seconds that the |
222 |
# transfer should be below the LOW_CONNECTION_SPEED_LIMIT to consider |
223 |
# it too slow and abort. |
224 |
# Minimum value: 1 |
225 |
# Maximum value: 600 |
226 |
# Default: |
227 |
# low_connection_speed_time=10 |
228 |
low_connection_speed_time=10 |
229 |
|
230 |
# MAX_CONNECTION_SPEED |
231 |
# If a download exceeds this speed (counted in bytes per second) on |
232 |
# cumulative average during the transfer, the transfer will pause to |
233 |
# keep the average rate less than or equal to the parameter value. |
234 |
# Defaults to unlimited speed. |
235 |
# Minimum value: 1 |
236 |
# Maximum value: -1 (-1 for no limit) |
237 |
# Default: |
238 |
# max_connection_speed=0 |
239 |
max_connection_speed=3000 |
240 |
|
241 |
[network_user_data] |
242 |
# USER_AGENT |
243 |
# Set the User-Agent: header in the http request sent to the remote |
244 |
# server. |
245 |
# This can be used to fool servers or scripts. |
246 |
# Default: |
247 |
# user_agent=segget |
248 |
user_agent=segget |
249 |
|
250 |
[network_proxy] |
251 |
# PROXY_IP_OR_NAME |
252 |
# Specify a proxy to use (address and port). |
253 |
# Set HTTP proxy to use. The parameter should be a string holding the |
254 |
# proxy host name or dotted IP address. To specify port number in this |
255 |
# string, append :[port] to the end of the host name. The proxy string |
256 |
# may be prefixed with [protocol]:// since any such prefix will be |
257 |
# ignored. The proxy's port number may optionally be specified with the |
258 |
# separate option. If not specified, by default port 1080 will be used |
259 |
# for proxies. |
260 |
# When you tell segget to use an HTTP proxy, segget will transparently |
261 |
# convert operations to HTTP even if you specify an FTP URL etc. |
262 |
# Segget respects the environment variables http_proxy, ftp_proxy, |
263 |
# all_proxy etc, if any of those are set. The PROXY option does however |
264 |
# override any possibly set environment variables. |
265 |
# Default: |
266 |
# proxy_ip_or_name=none |
267 |
proxy_ip_or_name=none |
268 |
|
269 |
# PROXY_PORT |
270 |
# Set the proxy port to connect to unless it is specified in the PROXY |
271 |
# option. |
272 |
# Minimum value: 1 |
273 |
# Maximum value: 65535 |
274 |
# Default: |
275 |
# proxy_port=3128 |
276 |
proxy_port=3128 |
277 |
|
278 |
# PROXY_USER |
279 |
# Set user name to use for the transfer while connecting to Proxy. |
280 |
# The PROXY_USER option should be used in same way as the PROXY_PASSWORD |
281 |
# is used. |
282 |
# In order to specify the password to be used in conjunction with the |
283 |
# user name use the PROXY_PASSWORD option. |
284 |
# Default: |
285 |
# proxy_user=none |
286 |
proxy_user=none |
287 |
|
288 |
# PROXY_PASSWORD |
289 |
# Set password to use for the transfer while connecting to Proxy. |
290 |
# The PROXY_PASSWORD option should be used in conjunction with |
291 |
# the PROXY_USER option. |
292 |
# Default: |
293 |
# proxy_password=none |
294 |
proxy_password=none |
295 |
|
296 |
# SYNOPSIS: proxy_off=0 | 1 |
297 |
# Setting the proxy_off=1 will explicitly disable the use of a proxy, |
298 |
# even if there is an environment variable set for it. |
299 |
# Default: |
300 |
# proxy_off=1 |
301 |
proxy_off=1 |
302 |
|
303 |
[1]http://en.wikipedia.org/wiki/Multi-level_marketing |
304 |
[2]http://idfetch.isgreat.org/_content2/segget_doc.html#mirrors |
305 |
[3]http://idfetch.isgreat.org/_content2/segget_doc.html#network_bind |
306 |
[4]http://idfetch.isgreat.org/_content2/segget_doc.html#provide_mirror_to_others |
307 |
[5]http://idfetch.isgreat.org/index.php/timeline |