- More porting to FreeBSD and Solaris.
This commit is contained in:
		
							parent
							
								
									5971e352da
								
							
						
					
					
						commit
						6f373e6902
					
				
					 4 changed files with 65 additions and 7 deletions
				
			
		|  | @ -1,6 +1,6 @@ | |||
| dnl Process this file with autoconf to produce a configure script. | ||||
| 
 | ||||
| dnl $Id: configure.in,v 1.13.2.20 2000/11/20 19:56:01 zarq Exp $ | ||||
| dnl $Id: configure.in,v 1.13.2.21 2000/11/22 22:05:36 guus Exp $ | ||||
| 
 | ||||
| AC_INIT(src/tincd.c) | ||||
| AM_INIT_AUTOMAKE(tinc, 1.0pre4-cvs) | ||||
|  | @ -48,7 +48,7 @@ AC_FUNC_MEMCMP | |||
| AC_FUNC_ALLOCA | ||||
| AC_TYPE_SIGNAL | ||||
| AC_CHECK_FUNCS([ftime socket select strtol strerror flock unsetenv \ | ||||
| asprintf putenv strdup]) | ||||
| asprintf putenv strdup fcloseall daemon]) | ||||
| jm_FUNC_MALLOC | ||||
| jm_FUNC_REALLOC | ||||
| 
 | ||||
|  |  | |||
|  | @ -17,7 +17,7 @@ | |||
|     along with this program; if not, write to the Free Software | ||||
|     Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. | ||||
| 
 | ||||
|     $Id: list.c,v 1.1.2.3 2000/11/20 22:13:00 guus Exp $ | ||||
|     $Id: list.c,v 1.1.2.4 2000/11/22 22:05:36 guus Exp $ | ||||
| */ | ||||
| 
 | ||||
| #include "config.h" | ||||
|  | @ -26,7 +26,6 @@ | |||
| #include <string.h> | ||||
| #include <syslog.h> | ||||
| 
 | ||||
| #include <error.h> | ||||
| #include <list.h> | ||||
| #include <xalloc.h> | ||||
| 
 | ||||
|  |  | |||
|  | @ -17,7 +17,7 @@ | |||
|     along with this program; if not, write to the Free Software | ||||
|     Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. | ||||
| 
 | ||||
|     $Id: process.c,v 1.1.2.10 2000/11/22 19:14:08 guus Exp $ | ||||
|     $Id: process.c,v 1.1.2.11 2000/11/22 22:05:37 guus Exp $ | ||||
| */ | ||||
| 
 | ||||
| #include "config.h" | ||||
|  | @ -31,7 +31,9 @@ | |||
| #include <sys/ioctl.h> | ||||
| #include <sys/types.h> | ||||
| #include <sys/wait.h> | ||||
| #include <stdlib.h> | ||||
| #include <unistd.h> | ||||
| #include <termios.h> | ||||
| 
 | ||||
| #include <list.h> | ||||
| #include <pidfile.h> | ||||
|  | @ -69,6 +71,63 @@ void memory_full(int size) | |||
|   exit(1); | ||||
| } | ||||
| 
 | ||||
| /* Some functions the less gifted operating systems might lack... */ | ||||
| 
 | ||||
| #ifndef HAVE_FCLOSEALL | ||||
| int fcloseall(void) | ||||
| { | ||||
|   fflush(stdin); | ||||
|   fflush(stdout); | ||||
|   fflush(stderr); | ||||
|   fclose(stdin); | ||||
|   fclose(stdout); | ||||
|   fclose(stderr); | ||||
| } | ||||
| #endif | ||||
| 
 | ||||
| #ifndef HAVE_DAEMON | ||||
| int daemon(int nochdir, int noclose) | ||||
| { | ||||
|   pid_t pid; | ||||
|   int fd; | ||||
|    | ||||
|   ppid = getpid(); | ||||
| 
 | ||||
|   if((pid = fork()) < 0) | ||||
|     { | ||||
|       perror("fork"); | ||||
|       return -1; | ||||
|     } | ||||
|   if(pid) /* parent process */ | ||||
|     { | ||||
|       signal(SIGTERM, parent_exit); | ||||
|       sleep(600); /* wait 10 minutes */ | ||||
|       exit(1); | ||||
|     } | ||||
| 
 | ||||
|   if((fd = open("/dev/tty", O_RDWR)) >= 0) | ||||
|     { | ||||
|       if(ioctl(fd, TIOCNOTTY, NULL)) | ||||
|         { | ||||
|           perror("ioctl"); | ||||
|           return -1; | ||||
|         } | ||||
|       close(fd); | ||||
|     } | ||||
| 
 | ||||
|   if(setsid() < 0) | ||||
|     return -1; | ||||
| 
 | ||||
|   kill(ppid, SIGTERM); | ||||
| 
 | ||||
|   if(!nochdir) | ||||
|     chdir("/"); | ||||
| 
 | ||||
|   if(!noclose) | ||||
|     fcloseall(); | ||||
| } | ||||
| #endif | ||||
| 
 | ||||
| /*
 | ||||
|   Close network connections, and terminate neatly | ||||
| */ | ||||
|  |  | |||
|  | @ -17,7 +17,7 @@ | |||
|     along with this program; if not, write to the Free Software | ||||
|     Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. | ||||
| 
 | ||||
|     $Id: protocol.c,v 1.28.4.65 2000/11/22 20:25:27 guus Exp $ | ||||
|     $Id: protocol.c,v 1.28.4.66 2000/11/22 22:05:37 guus Exp $ | ||||
| */ | ||||
| 
 | ||||
| #include "config.h" | ||||
|  | @ -846,7 +846,7 @@ cp | |||
| 
 | ||||
|   /* Check if somebody tries to add ourself */ | ||||
| 
 | ||||
|   if(!strcmp(new->name, myself->name)) | ||||
|   if(!strcmp(name, myself->name)) | ||||
|     { | ||||
|       syslog(LOG_ERR, _("Warning: got ADD_HOST from %s (%s) for ourself, restarting"), cl->name, cl->hostname); | ||||
|       sighup = 1; | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue