aboutsummaryrefslogtreecommitdiff
path: root/net/irrd/files
diff options
context:
space:
mode:
authorNorikatsu Shigemura <nork@FreeBSD.org>2004-06-13 10:21:31 +0000
committerNorikatsu Shigemura <nork@FreeBSD.org>2004-06-13 10:21:31 +0000
commitf2eb839f9d966668078f361bdb7bdd08d96ca83b (patch)
tree90f0fc2f50f0e125ecb99488c3a48da698a30c2c /net/irrd/files
parent5bd2ec8846772517ee9ef452b47b48ef7606433f (diff)
Notes
Diffstat (limited to 'net/irrd/files')
-rw-r--r--net/irrd/files/irrd.sh28
-rw-r--r--net/irrd/files/patch-database.c13
-rw-r--r--net/irrd/files/patch-uii_commands.c55
3 files changed, 96 insertions, 0 deletions
diff --git a/net/irrd/files/irrd.sh b/net/irrd/files/irrd.sh
new file mode 100644
index 000000000000..77bff7f81717
--- /dev/null
+++ b/net/irrd/files/irrd.sh
@@ -0,0 +1,28 @@
+#!/bin/sh
+# $FreeBSD$
+
+# PROVIDE: irrd
+# REQUIRE: DAEMON
+# BEFORE: LOGIN
+# KEYWORD: FreeBSD shutdown
+
+# Define these irrd_* variables in one of these files:
+# /etc/rc.conf
+# /etc/rc.conf.local
+# /etc/rc.conf.d/irrd
+#
+# DO NOT CHANGE THESE DEFAULT VALUES HERE
+#
+irrd_enable="${irrd_enable:-NO}" # Enable irrd
+#irrd_program="%%PREFIX%%/sbin/irrd" # Location of irrd
+irrd_flags="${irrd_flags:--u}" # Flags to imapd program
+
+. %%RC_SUBR%%
+
+name="irrd"
+rcvar=`set_rcvar`
+command="%%PREFIX%%/sbin/irrd"
+required_files="%%PREFIX%%/etc/irrd.conf"
+
+load_rc_config $name
+run_rc_command "$1"
diff --git a/net/irrd/files/patch-database.c b/net/irrd/files/patch-database.c
new file mode 100644
index 000000000000..1b8e2a1cf2ed
--- /dev/null
+++ b/net/irrd/files/patch-database.c
@@ -0,0 +1,13 @@
+--- programs/IRRd/database.c.orig Fri Oct 18 05:02:29 2002
++++ programs/IRRd/database.c Thu Apr 22 17:13:52 2004
+@@ -61,7 +61,9 @@
+ HASH_Clear (db->hash_spec);
+
+ db->radix = New_Radix (128);
+- fclose (db->db_fp);
++
++ if (db->db_fp != NULL)
++ fclose (db->db_fp);
+
+ db->db_fp = NULL;
+ db->db_syntax = EMPTY_DB;
diff --git a/net/irrd/files/patch-uii_commands.c b/net/irrd/files/patch-uii_commands.c
new file mode 100644
index 000000000000..9f1dbfe8b986
--- /dev/null
+++ b/net/irrd/files/patch-uii_commands.c
@@ -0,0 +1,55 @@
+--- programs/IRRd/uii_commands.c.orig Tue Feb 5 05:53:57 2002
++++ programs/IRRd/uii_commands.c Thu Apr 22 18:13:29 2004
+@@ -14,6 +14,8 @@
+ #include <ctype.h>
+ #include "irrd.h"
+
++#include <errno.h>
++
+ #include <fcntl.h>
+ #ifndef SETPGRP_VOID
+ #endif
+@@ -720,6 +722,10 @@
+
+ void run_cmd (char *cmd, FILE **in, FILE **out) {
+ int pin[2], pout[2];
++ int pid;
++ int omask, pstat;
++ pid_t ppid;
++ extern int errno;
+
+ if (in != NULL)
+ *in = NULL;
+@@ -733,7 +739,9 @@
+ if (out != NULL)
+ pipe (pout);
+
+- if (fork() == 0) { /* We're the child */
++/* if (fork() == 0) { */
++ pid = fork();
++ if (pid == 0) { /* We're the child */
+ if (in != NULL) {
+ close (pin[1]);
+ dup2 (pin[0], 0);
+@@ -747,7 +755,7 @@
+ close (pout[1]);
+ }
+
+- execl("/bin/sh", "sh", "-c", cmd, NULL);
++ execlp("/bin/sh", "sh", "-c", cmd, NULL);
+ _exit(127);
+ }
+
+@@ -761,6 +769,12 @@
+ close (pin[0]);
+ *in = fdopen (pin[1], "w");
+ }
++
++ omask = sigblock(sigmask(SIGINT)|sigmask(SIGQUIT)|sigmask(SIGHUP));
++ do {
++ ppid = waitpid(pid, (int *) &pstat, 0);
++ } while (pid == -1 && errno == EINTR);
++ (void)sigsetmask(omask);
+ }
+
+ int kill_irrd (uii_connection_t *uii) {