Tests that start daemons have to "wait" for them to start. This commit makes Heimdal daemons prep to detach (when requested) by forking early, then having the child signal readiness to the parent when the child really is ready. The parent exits only which the child is ready. This means that tests will no longer need to wait for daemons. However, tests will still need a pidfile or such so they can stop the daemons. Note that the --detach options should not be used on OS X from launchd, only from tests.
		
			
				
	
	
		
			212 lines
		
	
	
		
			3.6 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			212 lines
		
	
	
		
			3.6 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
HEIMDAL_ROKEN_1.0 {
 | 
						|
	global:
 | 
						|
		arg_printusage;
 | 
						|
		arg_printusage_i18n;
 | 
						|
		cgetcap;
 | 
						|
		cgetclose;
 | 
						|
		cgetmatch;
 | 
						|
		cgetnum;
 | 
						|
		cgetset;
 | 
						|
		cgetustr;
 | 
						|
		ct_memcmp;
 | 
						|
		err;
 | 
						|
		errx;
 | 
						|
		free_getarg_strings;
 | 
						|
		get_default_username;
 | 
						|
		get_window_size;
 | 
						|
		getarg;
 | 
						|
		getnameinfo_verified;
 | 
						|
		hex_decode;
 | 
						|
		hex_encode;
 | 
						|
		issuid;
 | 
						|
		k_getpwnam;
 | 
						|
		k_getpwuid;
 | 
						|
		mini_inetd;
 | 
						|
		mini_inetd_addrinfo;
 | 
						|
		net_read;
 | 
						|
		net_write;
 | 
						|
		parse_bytes;
 | 
						|
		parse_flags;
 | 
						|
		parse_time;
 | 
						|
		parse_units;
 | 
						|
		print_flags_table;
 | 
						|
		print_time_table;
 | 
						|
		print_units_table;
 | 
						|
		rk_asnprintf;
 | 
						|
		rk_asprintf;
 | 
						|
		rk_base64_decode;
 | 
						|
		rk_base64_encode;
 | 
						|
		rk_bswap16;
 | 
						|
		rk_bswap32;
 | 
						|
		rk_cgetent;
 | 
						|
		rk_cgetstr;
 | 
						|
		rk_cloexec;
 | 
						|
		rk_cloexec_file;
 | 
						|
                rk_cloexec_dir;
 | 
						|
                rk_cloexec_socket;
 | 
						|
		rk_closefrom;
 | 
						|
		rk_copyhostent;
 | 
						|
		rk_dns_free_data;
 | 
						|
		rk_dns_lookup;
 | 
						|
		rk_dns_srv_order;
 | 
						|
		rk_dns_string_to_type;
 | 
						|
		rk_dns_type_to_string;
 | 
						|
		rk_dumpdata;
 | 
						|
		rk_ecalloc;
 | 
						|
		rk_emalloc;
 | 
						|
		rk_eread;
 | 
						|
		rk_erealloc;
 | 
						|
		rk_esetenv;
 | 
						|
		rk_estrdup;
 | 
						|
		rk_ewrite;
 | 
						|
		rk_flock;
 | 
						|
		rk_fnmatch;
 | 
						|
		rk_free_environment;
 | 
						|
		rk_freeaddrinfo;
 | 
						|
		rk_freehostent;
 | 
						|
		rk_freeifaddrs;
 | 
						|
		rk_gai_strerror;
 | 
						|
		rk_getaddrinfo;
 | 
						|
		rk_getifaddrs;
 | 
						|
		rk_getipnodebyaddr;
 | 
						|
		rk_getipnodebyname;
 | 
						|
		rk_getnameinfo;
 | 
						|
		rk_getprogname;
 | 
						|
		rk_glob;
 | 
						|
		rk_globfree;
 | 
						|
		rk_hex_decode;
 | 
						|
		rk_hex_encode;
 | 
						|
		rk_hostent_find_fqdn;
 | 
						|
		rk_inet_ntop;
 | 
						|
		rk_inet_pton;
 | 
						|
		rk_localtime_r;
 | 
						|
		rk_memset_s;
 | 
						|
		rk_mkdir;
 | 
						|
		rk_mkstemp;
 | 
						|
		rk_pid_file_delete;
 | 
						|
		rk_pid_file_write;
 | 
						|
		rk_pidfile;
 | 
						|
		rk_pipe_execv;
 | 
						|
		rk_random_init;
 | 
						|
		rk_read_environment;
 | 
						|
		rk_readv;
 | 
						|
		rk_realloc;
 | 
						|
		rk_strerror;
 | 
						|
		rk_strerror_r;
 | 
						|
		rk_setprogname;
 | 
						|
		rk_simple_execle;
 | 
						|
		rk_simple_execlp;
 | 
						|
		rk_simple_execve;
 | 
						|
		rk_simple_execve_timed;
 | 
						|
		rk_simple_execvp;
 | 
						|
		rk_simple_execvp_timed;
 | 
						|
		rk_socket;
 | 
						|
		rk_socket_addr_size;
 | 
						|
		rk_socket_get_address;
 | 
						|
		rk_socket_get_port;
 | 
						|
		rk_socket_set_address_and_port;
 | 
						|
		rk_socket_set_any;
 | 
						|
		rk_socket_set_debug;
 | 
						|
		rk_socket_set_ipv6only;
 | 
						|
		rk_socket_set_nonblocking;
 | 
						|
		rk_socket_set_port;
 | 
						|
		rk_socket_set_portrange;
 | 
						|
		rk_socket_set_reuseaddr;
 | 
						|
		rk_socket_set_tos;
 | 
						|
		rk_socket_sockaddr_size;
 | 
						|
		rk_strcollect;
 | 
						|
		rk_strftime;
 | 
						|
		rk_strlcat;
 | 
						|
		rk_strlcpy;
 | 
						|
		rk_strlwr;
 | 
						|
		rk_strndup;
 | 
						|
		rk_strnlen;
 | 
						|
		rk_strpoolcollect;
 | 
						|
		rk_strpoolfree;
 | 
						|
		rk_strpoolprintf;
 | 
						|
		rk_strptime;
 | 
						|
		rk_strsep_copy;
 | 
						|
		rk_strsvis;
 | 
						|
		rk_strsvis;
 | 
						|
		rk_strsvisx;
 | 
						|
		rk_strtoll;
 | 
						|
		rk_strtoull;
 | 
						|
		rk_strunvis;
 | 
						|
		rk_strunvis;
 | 
						|
		rk_strunvisx;
 | 
						|
		rk_strupr;
 | 
						|
		rk_strvis;
 | 
						|
		rk_strvis;
 | 
						|
		rk_strvisx;
 | 
						|
		rk_strvisx;
 | 
						|
		rk_svis;
 | 
						|
		rk_svis;
 | 
						|
		rk_timegm;
 | 
						|
		rk_timevaladd;
 | 
						|
		rk_timevalfix;
 | 
						|
		rk_timevalsub;
 | 
						|
		rk_tdelete;
 | 
						|
		rk_tfind;
 | 
						|
		rk_tsearch;
 | 
						|
		rk_twalk;
 | 
						|
		rk_undumpdata;
 | 
						|
		rk_unvis;
 | 
						|
		rk_vasnprintf;
 | 
						|
		rk_vasprintf;
 | 
						|
		rk_vis;
 | 
						|
		rk_vis;
 | 
						|
		rk_vsnprintf;
 | 
						|
		rk_vstrcollect;
 | 
						|
		rk_wait_for_process;
 | 
						|
		rk_wait_for_process_timed;
 | 
						|
		rk_warnerr;
 | 
						|
		rk_xfree;
 | 
						|
		roken_concat;
 | 
						|
		roken_detach_prep;
 | 
						|
		roken_detach_finish;
 | 
						|
		roken_getaddrinfo_hostspec2;
 | 
						|
		roken_getaddrinfo_hostspec;
 | 
						|
		roken_gethostby_setup;
 | 
						|
		roken_gethostbyaddr;
 | 
						|
		roken_gethostbyname;
 | 
						|
		roken_mconcat;
 | 
						|
		roken_vconcat;
 | 
						|
		roken_vmconcat;
 | 
						|
		rtbl_add_column;
 | 
						|
		rtbl_add_column_by_id;
 | 
						|
		rtbl_add_column_entry;
 | 
						|
		rtbl_add_column_entry_by_id;
 | 
						|
		rtbl_add_column_entryv;
 | 
						|
		rtbl_add_column_entryv_by_id;
 | 
						|
		rtbl_create;
 | 
						|
		rtbl_destroy;
 | 
						|
		rtbl_format;
 | 
						|
		rtbl_get_flags;
 | 
						|
		rtbl_new_row;
 | 
						|
		rtbl_set_column_affix_by_id;
 | 
						|
		rtbl_set_column_prefix;
 | 
						|
		rtbl_set_flags;
 | 
						|
		rtbl_set_prefix;
 | 
						|
		rtbl_set_separator;
 | 
						|
		signal;
 | 
						|
		simple_execl;
 | 
						|
		tm2time;
 | 
						|
		unix_verify_user;
 | 
						|
		unparse_bytes;
 | 
						|
		unparse_bytes_short;
 | 
						|
		unparse_flags;
 | 
						|
		unparse_time;
 | 
						|
		unparse_time_approx;
 | 
						|
		unparse_units;
 | 
						|
		unparse_units_approx;
 | 
						|
		verr;
 | 
						|
		verrx;
 | 
						|
		vwarn;
 | 
						|
		vwarnx;
 | 
						|
		warn;
 | 
						|
		warnx;
 | 
						|
		writev;
 | 
						|
	local:
 | 
						|
		*;
 | 
						|
};
 |