|
@@ -58,10 +58,9 @@ void ip_options_build(struct sk_buff *skb, struct ip_options *opt,
|
|
if (opt->ts_needaddr)
|
|
if (opt->ts_needaddr)
|
|
ip_rt_get_source(iph+opt->ts+iph[opt->ts+2]-9, skb, rt);
|
|
ip_rt_get_source(iph+opt->ts+iph[opt->ts+2]-9, skb, rt);
|
|
if (opt->ts_needtime) {
|
|
if (opt->ts_needtime) {
|
|
- struct timespec tv;
|
|
|
|
__be32 midtime;
|
|
__be32 midtime;
|
|
- getnstimeofday(&tv);
|
|
|
|
- midtime = htonl((tv.tv_sec % 86400) * MSEC_PER_SEC + tv.tv_nsec / NSEC_PER_MSEC);
|
|
|
|
|
|
+
|
|
|
|
+ midtime = inet_current_timestamp();
|
|
memcpy(iph+opt->ts+iph[opt->ts+2]-5, &midtime, 4);
|
|
memcpy(iph+opt->ts+iph[opt->ts+2]-5, &midtime, 4);
|
|
}
|
|
}
|
|
return;
|
|
return;
|
|
@@ -415,11 +414,10 @@ int ip_options_compile(struct net *net,
|
|
break;
|
|
break;
|
|
}
|
|
}
|
|
if (timeptr) {
|
|
if (timeptr) {
|
|
- struct timespec tv;
|
|
|
|
- u32 midtime;
|
|
|
|
- getnstimeofday(&tv);
|
|
|
|
- midtime = (tv.tv_sec % 86400) * MSEC_PER_SEC + tv.tv_nsec / NSEC_PER_MSEC;
|
|
|
|
- put_unaligned_be32(midtime, timeptr);
|
|
|
|
|
|
+ __be32 midtime;
|
|
|
|
+
|
|
|
|
+ midtime = inet_current_timestamp();
|
|
|
|
+ memcpy(timeptr, &midtime, 4);
|
|
opt->is_changed = 1;
|
|
opt->is_changed = 1;
|
|
}
|
|
}
|
|
} else if ((optptr[3]&0xF) != IPOPT_TS_PRESPEC) {
|
|
} else if ((optptr[3]&0xF) != IPOPT_TS_PRESPEC) {
|