Merge pull request #59 from tomato64/arm-master

dnsmasq: fixes in dnsmasq Tomato-helper patch
arm-master
pedro 8 months ago committed by GitHub
commit aead4255a2
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

@ -149,7 +149,7 @@
#else #else
/* strictly time_t is opaque, but this hack should work on all sane systems, /* strictly time_t is opaque, but this hack should work on all sane systems,
even when sizeof(time_t) == 8 */ even when sizeof(time_t) == 8 */
@@ -268,10 +271,19 @@ @@ -268,7 +271,16 @@
continue; continue;
#endif #endif
@ -157,20 +157,15 @@
+#ifdef HAVE_LEASEFILE_EXPIRE +#ifdef HAVE_LEASEFILE_EXPIRE
+ ourprintf(&err, "%u ", + ourprintf(&err, "%u ",
#ifdef HAVE_BROKEN_RTC #ifdef HAVE_BROKEN_RTC
- ourprintf(&err, "%u ", lease->length);
+ (lease->length == 0) ? 0 : + (lease->length == 0) ? 0 :
#else +#else
- ourprintf(&err, "%lu ", (unsigned long)lease->expires);
+ (lease->expires == 0) ? 0 : + (lease->expires == 0) ? 0 :
+#endif +#endif
+ (unsigned int)difftime(lease->expires, now)); + (unsigned int)difftime(lease->expires, now));
+#elif defined(HAVE_BROKEN_RTC) +#elif defined(HAVE_BROKEN_RTC)
+ ourprintf(&err, "%u ", lease->length); ourprintf(&err, "%u ", lease->length);
+#else #else
+ ourprintf(&err, "%lu ", (unsigned long)lease->expires); ourprintf(&err, "%lu ", (unsigned long)lease->expires);
#endif
if (lease->hwaddr_type != ARPHRD_ETHER || lease->hwaddr_len == 0)
@@ -312,12 +324,21 @@ @@ -312,12 +324,21 @@
if (!(lease->flags & (LEASE_TA | LEASE_NA))) if (!(lease->flags & (LEASE_TA | LEASE_NA)))
continue; continue;
@ -179,28 +174,25 @@
+#ifdef HAVE_LEASEFILE_EXPIRE +#ifdef HAVE_LEASEFILE_EXPIRE
+ ourprintf(&err, "%u ", + ourprintf(&err, "%u ",
#ifdef HAVE_BROKEN_RTC #ifdef HAVE_BROKEN_RTC
- ourprintf(&err, "%u ", lease->length);
+ (lease->length == 0) ? 0 : + (lease->length == 0) ? 0 :
#else +#else
- ourprintf(&err, "%lu ", (unsigned long)lease->expires);
+ (lease->expires == 0) ? 0 : + (lease->expires == 0) ? 0 :
#endif +#endif
-
+ (unsigned int)difftime(lease->expires, now)); + (unsigned int)difftime(lease->expires, now));
+#elif defined(HAVE_BROKEN_RTC) +#elif defined(HAVE_BROKEN_RTC)
+ ourprintf(&err, "%u ", lease->length); ourprintf(&err, "%u ", lease->length);
+#else #else
+ ourprintf(&err, "%lu ", (unsigned long)lease->expires); ourprintf(&err, "%lu ", (unsigned long)lease->expires);
+#endif #endif
-
+ +
inet_ntop(AF_INET6, &lease->addr6, daemon->addrbuff, ADDRSTRLEN); inet_ntop(AF_INET6, &lease->addr6, daemon->addrbuff, ADDRSTRLEN);
ourprintf(&err, "%s%u %s ", (lease->flags & LEASE_TA) ? "T" : "", ourprintf(&err, "%s%u %s ", (lease->flags & LEASE_TA) ? "T" : "",
@@ -1225,4 +1246,66 @@ @@ -1225,4 +1246,67 @@
} }
#endif #endif
-#endif /* HAVE_DHCP */
+ +
+#ifdef HAVE_TOMATO +#ifdef HAVE_TOMATO
+void tomato_helper(time_t now) +void tomato_helper(time_t now)
@ -213,11 +205,12 @@
+ /* if delete exists... */ + /* if delete exists... */
+ if ((f = fopen("/var/tmp/dhcp/delete", "r")) != NULL) { + if ((f = fopen("/var/tmp/dhcp/delete", "r")) != NULL) {
+ while (fgets(buf, sizeof(buf), f)) { + while (fgets(buf, sizeof(buf), f)) {
+ ia.s_addr = inet_addr(buf); + buf[strcspn(buf, "\n")] = 0;
+ lease = lease_find_by_addr(ia); + inet_aton(buf, &ia);
+ if (lease) { + if (lease = lease_find_by_addr(ia)) {
+ lease_prune(lease, 0); + lease_prune(lease, 0);
+ lease_update_file(now); + lease_update_file(now);
+ lease_update_dns(0);
+ } + }
+ } + }
+ fclose(f); + fclose(f);
@ -263,4 +256,4 @@
+} +}
+#endif /* HAVE_LEASEFILE_EXPIRE */ +#endif /* HAVE_LEASEFILE_EXPIRE */
+ +
+#endif /* HAVE_DHCP */ #endif /* HAVE_DHCP */

Loading…
Cancel
Save