Ubuntu measure upstream

[GitHub #121]
This commit is contained in:
Aoran Zeng
2024-11-22 09:58:00 +08:00
parent fd762f9d3c
commit e65a16c009
3 changed files with 40 additions and 26 deletions

View File

@@ -597,8 +597,8 @@ measure_speed_for_every_source (Source_t sources[], int size, double speed_recor
{
Source_t src = sources[i];
const SourceProvider_t *provider = src.provider;
const SpeedMeasureInfo_t smi = provider->smi;
SourceProvider_t *provider = src.provider;
SpeedMeasureInfo_t smi = provider->smi;
bool skip = smi.skip;
@@ -621,18 +621,23 @@ measure_speed_for_every_source (Source_t sources[], int size, double speed_recor
{
if (xy_streql ("upstream", provider->code))
{
// 上游源不测速但不置0因为要避免这种情况: 可能其他镜像站测速都为0最后反而选择了该 upstream
/* 上游源不测速但不置0因为要避免这种情况: 可能其他镜像站测速都为0最后反而选择了该 upstream */
speed = -1024*1024*1024;
if (!src.url)
{
smi.skip_reason_CN = "默认上游源URL未知请帮助补充";
smi.skip_reason_EN = "The default upstream source URL is unknown, please help to add";
}
}
else if (xy_streql ("user", provider->code))
{
// 代码不会执行至此
/* 代码不会执行至此 */
speed = 1024*1024*1024;
}
else
{
// 什么情况?
speed = -1;
/* 不测速的 Provider */
speed = 0;
}
get_measured[i] = false;
speed_records[i] = speed;
@@ -649,7 +654,11 @@ measure_speed_for_every_source (Source_t sources[], int size, double speed_recor
else
{
const char *msg = CliOpt_InEnglish ? provider->abbr : provider->name;
measure_msgs[i] = xy_strjoin (3, " - ", msg, " ... ");
if (xy_streql ("upstream", provider->code))
measure_msgs[i] = xy_strjoin (3, " ^ ", msg, " ... ");
else
measure_msgs[i] = xy_strjoin (3, " - ", msg, " ... ");
printf ("%s", measure_msgs[i]);
fflush (stdout);

View File

@@ -14,10 +14,10 @@
typedef struct SpeedMeasureInfo_t
{
bool skip; /* 是否默认跳过 */
const char *skip_reason_CN; /* 跳过的原因(中文)*/
const char *skip_reason_EN; /* 跳过的原因(英文)*/
const char *url; /* 测速链接 */
bool skip; /* 是否默认跳过 */
char *skip_reason_CN; /* 跳过的原因(中文)*/
char *skip_reason_EN; /* 跳过的原因(英文)*/
char *url; /* 测速链接 */
}
SpeedMeasureInfo_t;
@@ -54,10 +54,10 @@ UserDefinedProvider = {
typedef struct Source_t
{
union {
const SourceProvider_t *provider;
const MirrorSite_t *mirror;
SourceProvider_t *provider;
MirrorSite_t *mirror;
};
const char *url;
char *url;
}
Source_t;