Add rk_undumptext(), which NUL-terminates the contents it reads. rk_undumptext(), and now also rk_undumpdata(), can read from regular and non-regular files (e.g., ttys, pipes, devices, but -on Windows- not sockets). This means that `asn1_print` can now read from `/dev/stdin`, which can be a pipe. There's a way to set a limit on how much to read from non-regular files, and that limit defaults to 10MB. At any rate, the rk_dumpdata(), rk_undumpdata(), and rk_undumptext() functions really do not belong in lib/roken but in lib/base. There are other utility functions in lib/roken that don't belong there too. A rationalization of the split between lib/roken and lib/base is overdue. And while we're at it -lest I forget- it'd be nice to move all the krb5_storage functions out of lib/krb5 and into lib/base, as those could come in handy for, e.g., implementing OpenSSH style certificates and other things outside the krb5 universe.
		
			
				
	
	
		
			242 lines
		
	
	
		
			4.1 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			242 lines
		
	
	
		
			4.1 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
HEIMDAL_ROKEN_2.0 {
 | 
						|
	global:
 | 
						|
		arg_printusage;
 | 
						|
		arg_printusage_i18n;
 | 
						|
		cgetclose;
 | 
						|
		cgetmatch;
 | 
						|
		cgetnum;
 | 
						|
		cgetset;
 | 
						|
		cgetustr;
 | 
						|
		ct_memcmp;
 | 
						|
		err;
 | 
						|
		errx;
 | 
						|
		free_getarg_strings;
 | 
						|
		fseeko;
 | 
						|
		ftello;
 | 
						|
		get_window_size;
 | 
						|
		getarg;
 | 
						|
		getnameinfo_verified;
 | 
						|
		hex_decode;
 | 
						|
		hex_encode;
 | 
						|
		issuid;
 | 
						|
		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_base32_decode;
 | 
						|
		rk_base32_encode;
 | 
						|
		rk_base64_decode;
 | 
						|
		rk_base64_encode;
 | 
						|
		rk_bswap16;
 | 
						|
		rk_bswap32;
 | 
						|
		rk_bswap64;
 | 
						|
		rk_cloexec;
 | 
						|
		rk_cloexec_dir;
 | 
						|
		rk_cloexec_file;
 | 
						|
		rk_cloexec_socket;
 | 
						|
		rk_closefrom;
 | 
						|
		rk_clzll;
 | 
						|
		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_easprintf;
 | 
						|
		rk_ecalloc;
 | 
						|
		rk_emalloc;
 | 
						|
		rk_eread;
 | 
						|
		rk_erealloc;
 | 
						|
		rk_esetenv;
 | 
						|
		rk_estrdup;
 | 
						|
		rk_evasprintf;
 | 
						|
		rk_ewrite;
 | 
						|
		rk_flock;
 | 
						|
		rk_fnmatch;
 | 
						|
		rk_free_environment;
 | 
						|
		rk_freeaddrinfo;
 | 
						|
		rk_freehostent;
 | 
						|
		rk_freeifaddrs;
 | 
						|
		rk_gai_strerror;
 | 
						|
		rk_getaddrinfo;
 | 
						|
		rk_getauxv;
 | 
						|
		rk_getauxval;
 | 
						|
		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_injectauxv;
 | 
						|
		rk_localtime_r;
 | 
						|
		rk_memmem;
 | 
						|
		rk_memset_s;
 | 
						|
		rk_mergesort;
 | 
						|
		rk_mergesort_r;
 | 
						|
		rk_mkdir;
 | 
						|
		rk_mkdtemp;
 | 
						|
		rk_mkostemp;
 | 
						|
		rk_mkstemp;
 | 
						|
		rk_parse_flags;
 | 
						|
		rk_parse_time;
 | 
						|
		rk_parse_units;
 | 
						|
		rk_pid_file_delete;
 | 
						|
		rk_pid_file_write;
 | 
						|
		rk_pidfile;
 | 
						|
		rk_pipe_execv;
 | 
						|
		rk_print_flags_table;
 | 
						|
		rk_print_time_table;
 | 
						|
		rk_print_units_table;
 | 
						|
		rk_random_init;
 | 
						|
		rk_read_environment;
 | 
						|
		rk_readv;
 | 
						|
		rk_realloc;
 | 
						|
		rk_secure_getenv;
 | 
						|
		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_keepalive;
 | 
						|
		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_strasvis;
 | 
						|
		rk_strasvisx;
 | 
						|
		rk_stravis;
 | 
						|
		rk_stravisx;
 | 
						|
		rk_strcollect;
 | 
						|
		rk_strerror;
 | 
						|
		rk_strerror_r;
 | 
						|
		rk_strftime;
 | 
						|
		rk_strlcat;
 | 
						|
		rk_strlcpy;
 | 
						|
		rk_strlwr;
 | 
						|
		rk_strndup;
 | 
						|
		rk_strnlen;
 | 
						|
		rk_strpoolcollect;
 | 
						|
		rk_strpoolfree;
 | 
						|
		rk_strpoolprintf;
 | 
						|
		rk_strptime;
 | 
						|
		rk_strrasvis;
 | 
						|
		rk_strrasvisx;
 | 
						|
		rk_strsep_copy;
 | 
						|
		rk_strsvis;
 | 
						|
		rk_strsvisx;
 | 
						|
		rk_strtoll;
 | 
						|
		rk_strtoull;
 | 
						|
		rk_strunvis;
 | 
						|
		rk_strunvisx;
 | 
						|
		rk_strupr;
 | 
						|
		rk_strvis;
 | 
						|
		rk_strvisx;
 | 
						|
		rk_svis;
 | 
						|
		rk_tdelete;
 | 
						|
		rk_tfind;
 | 
						|
		rk_timegm;
 | 
						|
		rk_time_add;
 | 
						|
		rk_time_sub;
 | 
						|
		rk_timevaladd;
 | 
						|
		rk_timevalfix;
 | 
						|
		rk_timevalsub;
 | 
						|
		rk_tsearch;
 | 
						|
		rk_twalk;
 | 
						|
		rk_undumpdata;
 | 
						|
		rk_undumptext;
 | 
						|
		rk_unparse_flags;
 | 
						|
		rk_unparse_time;
 | 
						|
		rk_unparse_time_approx;
 | 
						|
		rk_unparse_units;
 | 
						|
		rk_unparse_units_approx;
 | 
						|
		rk_unvis;
 | 
						|
		rk_vasnprintf;
 | 
						|
		rk_vasprintf;
 | 
						|
		rk_vis;
 | 
						|
		rk_vsnprintf;
 | 
						|
		rk_vstrcollect;
 | 
						|
		rk_wait_for_process;
 | 
						|
		rk_wait_for_process_timed;
 | 
						|
		rk_warnerr;
 | 
						|
		rk_xfree;
 | 
						|
		roken_concat;
 | 
						|
		roken_detach_finish;
 | 
						|
		roken_detach_prep;
 | 
						|
		roken_getaddrinfo_hostspec2;
 | 
						|
		roken_getaddrinfo_hostspec;
 | 
						|
		roken_gethostby_setup;
 | 
						|
		roken_gethostbyaddr;
 | 
						|
		roken_gethostbyname;
 | 
						|
		roken_get_appdatadir;
 | 
						|
		roken_get_homedir;
 | 
						|
		roken_get_shell;
 | 
						|
		roken_get_username;
 | 
						|
		roken_get_loginname;
 | 
						|
		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;
 | 
						|
		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:
 | 
						|
		*;
 | 
						|
};
 |