pthread_rwlock_unlock(&limiter.limiter_lock);
}
-static ulog_output_t drl_op = {
- .name = "drl",
- .output = &_output_drl,
- .signal = NULL, /* This appears to be broken. Using my own handler. */
- .init = NULL,
- .fini = NULL,
-};
-
-/* Tests the amount of time it takes to call reconfig(). */
-static void time_reconfig(int iterations) {
- struct timeval start, end;
- int i;
-
- gettimeofday(&start, NULL);
- for (i = 0; i < iterations; ++i) {
- reconfig();
- }
- gettimeofday(&end, NULL);
-
- printf("%d reconfigs() took %d seconds and %d microseconds.\n",
- iterations, end.tv_sec - start.tv_sec, end.tv_usec - start.tv_usec);
- exit(0);
-
- // Seems to take about 85ms / iteration
-}
-
static int stop_enforcement(drl_instance_t *instance) {
char cmd[300];
int i;
break;
}
}
-
}
-/* register output plugin with ulogd */
-static void _drl_reg_op(void)
-{
- ulog_output_t *op = &drl_op;
+static int drl_plugin_init() {
sigset_t signal_mask;
sigemptyset(&signal_mask);
exit(EXIT_FAILURE);
}
- register_output(op);
-
/* start up the thread that will periodically estimate the
* local rate and set the local limits
* see estimate.c
printlog(LOG_CRITICAL, "--Switching enforcement on.--\n");
pthread_rwlock_unlock(&limiter.limiter_lock);
}
+
+ return 0;
+}
+
+static ulog_output_t drl_op = {
+ .name = "drl",
+ .output = &_output_drl,
+ .signal = NULL, /* This appears to be broken. Using my own handler. */
+ .init = &drl_plugin_init,
+ .fini = NULL,
+};
+
+#if 0
+/* Tests the amount of time it takes to call reconfig(). */
+static void time_reconfig(int iterations) {
+ struct timeval start, end;
+ int i;
+
+ gettimeofday(&start, NULL);
+ for (i = 0; i < iterations; ++i) {
+ reconfig();
+ }
+ gettimeofday(&end, NULL);
+
+ printf("%d reconfigs() took %d seconds and %d microseconds.\n",
+ iterations, end.tv_sec - start.tv_sec, end.tv_usec - start.tv_usec);
+ exit(0);
+
+ // Seems to take about 85ms / iteration
+}
+#endif
+
+/* register output plugin with ulogd */
+static void _drl_reg_op(void)
+{
+ ulog_output_t *op = &drl_op;
+ register_output(op);
}
void _init(void)