diff options
Diffstat (limited to 'misc.c')
| -rw-r--r-- | misc.c | 28 | 
1 files changed, 27 insertions, 1 deletions
| @@ -1,4 +1,4 @@ -/* $OpenBSD: misc.c,v 1.105 2016/07/15 00:24:30 djm Exp $ */ +/* $OpenBSD: misc.c,v 1.107 2016/11/30 00:28:31 dtucker Exp $ */  /*   * Copyright (c) 2000 Markus Friedl.  All rights reserved.   * Copyright (c) 2005,2006 Damien Miller.  All rights reserved. @@ -1243,3 +1243,29 @@ forward_equals(const struct Forward *a, const struct Forward *b)  	return 1;  } +/* returns 1 if bind to specified port by specified user is permitted */ +int +bind_permitted(int port, uid_t uid) +{ +	if (port < IPPORT_RESERVED && uid != 0) +		return 0; +	return 1; +} + +/* returns 1 if process is already daemonized, 0 otherwise */ +int +daemonized(void) +{ +	int fd; + +	if ((fd = open(_PATH_TTY, O_RDONLY | O_NOCTTY)) >= 0) { +		close(fd); +		return 0;	/* have controlling terminal */ +	} +	if (getppid() != 1) +		return 0;	/* parent is not init */ +	if (getsid(0) != getpid()) +		return 0;	/* not session leader */ +	debug3("already daemonized"); +	return 1; +} | 
