On 17/09/19 17:05 +0200, Henry Jensen wrote:
> Greetings,
>
> I incorporated Stuart's changes and removed the remark about the clamav
> flavor in DESCR. I tested it on -current amd64 and confirmed that it
> builds and works as intended.
>
> Robert's approach of replacing sigtimedwait() didn't work here:
>
> FatController.cpp:1700:22: error: use of undeclared identifier
> 'SYS___thrsigdivert'
> rc = syscall(SYS___thrsigdivert, signal_set, NULL, &timeout);
>
> so I didn't change this (although I think his way is more elegant,
> maybe there is something missing).
>
>
$OpenBSD$
Index: src/FatController.cpp
--- src/FatController.cpp.orig
+++ src/FatController.cpp
@@ -46,6 +46,10 @@
#include <openssl/conf.h>
#endif //__SSLMITM
+#if defined(__OpenBSD__)
+#include <sys/syscall.h>
+#endif
+
#include "FatController.hpp"
#include "ConnectionHandler.hpp"
#include "DynamicURLList.hpp"
@@ -194,7 +198,7 @@ void stat_rec::reset()
fprintf(fs, "%s %d %d %d %d %ld %ld %ld
%ld %d %d\n", buffer, o.http_workers,
bc, o.http_worker_Q.size(), o.log_Q->size(), cnx, cps, rqx, rqs, mfd,
LC);
} else {
- fprintf(fs, "%ld %d %d %d %d %ld %ld
%ld %ld %d %d\n", now, o.http_workers,
+ fprintf(fs, "%lld %d %d %d %d %ld %ld
%ld %ld %d %d\n", now, o.http_workers,
bc, o.http_worker_Q.size(), o.log_Q->size(), cnx, cps, rqx, rqs, mfd,
LC);
}
@@ -1696,7 +1700,11 @@ int fc_controlit() //
}
timeout.tv_sec = 5;
timeout.tv_nsec = (long) 0;
+#if defined(__OpenBSD__)
+ rc = syscall(SYS___thrsigdivert, signal_set, NULL, &timeout);
+#else
rc = sigtimedwait(&signal_set, NULL, &timeout);
+#endif
if (rc < 0) {
if (errno != EAGAIN) {
syslog(LOG_INFO, "%sUnexpected error from sigtimedwait() %d
%s", thread_id.c_str(), errno, strerror(errno));
--
Regards,
Robert Nagy