92 lines
2.1 KiB
Diff
92 lines
2.1 KiB
Diff
--- a/br2684ctl.c
|
|
+++ b/br2684ctl.c
|
|
@@ -3,6 +3,8 @@
|
|
#include <unistd.h>
|
|
#include <errno.h>
|
|
#include <sys/ioctl.h>
|
|
+#include <sys/types.h>
|
|
+#include <signal.h>
|
|
#include <string.h>
|
|
#include <syslog.h>
|
|
#include <atm.h>
|
|
@@ -22,9 +24,9 @@
|
|
*/
|
|
|
|
|
|
-#define LOG_NAME "RFC1483/2684 bridge"
|
|
-#define LOG_OPTION LOG_PERROR
|
|
-#define LOG_FACILITY LOG_LOCAL0
|
|
+#define LOG_NAME "br2684ctl"
|
|
+#define LOG_OPTION LOG_PERROR|LOG_PID
|
|
+#define LOG_FACILITY LOG_LOCAL2
|
|
|
|
|
|
int lastsock, lastitf;
|
|
@@ -39,10 +41,16 @@ void fatal(const char *str, int i)
|
|
|
|
void exitFunc(void)
|
|
{
|
|
- syslog (LOG_PID,"Daemon terminated\n");
|
|
+ syslog (LOG_NOTICE,"Daemon terminated\n");
|
|
}
|
|
|
|
|
|
+void int_signal(int dummy)
|
|
+{
|
|
+ syslog (LOG_INFO,"Killed by a signal\n");
|
|
+ exit(0);
|
|
+}
|
|
+
|
|
int create_pidfile(int num)
|
|
{
|
|
FILE *pidfile = NULL;
|
|
@@ -80,7 +88,7 @@ int create_br(char *nstr)
|
|
err=ioctl (lastsock, ATM_NEWBACKENDIF, &ni);
|
|
|
|
if (err == 0)
|
|
- syslog(LOG_INFO, "Interface \"%s\" created sucessfully\n",ni.ifname);
|
|
+ syslog(LOG_NOTICE, "Interface \"%s\" created sucessfully\n",ni.ifname);
|
|
else
|
|
syslog(LOG_INFO, "Interface \"%s\" could not be created, reason: %s\n",
|
|
ni.ifname,
|
|
@@ -112,7 +120,7 @@ int assign_vcc(char *astr, int encap, in
|
|
addr.sap_addr.vpi = 0;
|
|
addr.sap_addr.vci = vci;
|
|
#endif
|
|
- syslog(LOG_INFO,"Communicating over ATM %d.%d.%d, encapsulation: %s\n", addr.sap_addr.itf,
|
|
+ syslog(LOG_NOTICE,"Communicating over ATM %d.%d.%d, encapsulation: %s\n", addr.sap_addr.itf,
|
|
addr.sap_addr.vpi,
|
|
addr.sap_addr.vci,
|
|
encap?"VC mux":"LLC");
|
|
@@ -261,11 +269,13 @@ int main (int argc, char **argv)
|
|
}
|
|
|
|
create_pidfile(itfnum);
|
|
+ signal(SIGINT, int_signal);
|
|
+ signal(SIGTERM, int_signal);
|
|
|
|
syslog (LOG_INFO, "RFC 1483/2684 bridge daemon started\n");
|
|
atexit (exitFunc);
|
|
|
|
- while (1) sleep(30); /* to keep the sockets... */
|
|
+ while (1) pause(); /* to keep the sockets... */
|
|
return 0;
|
|
}
|
|
|
|
--- /dev/null
|
|
+++ b/Makefile
|
|
@@ -0,0 +1,13 @@
|
|
+OPTS := -O2
|
|
+CFLAGS := -Wall -g
|
|
+LIBS := -latm
|
|
+
|
|
+all: br2684ctl
|
|
+
|
|
+br2684ctl: br2684ctl.c
|
|
+ $(CC) $(OPTS) $(CFLAGS) $(LIBS) $< -o $@
|
|
+
|
|
+distclean: clean
|
|
+clean:
|
|
+ rm -f br2684ctl
|
|
+
|