Home | History | Annotate | Download | only in include
      1 /*
      2  * Author: Tatu Ylonen <ylo (at) cs.hut.fi>
      3  * Copyright (c) 1995 Tatu Ylonen <ylo (at) cs.hut.fi>, Espoo, Finland
      4  *                    All rights reserved
      5  *
      6  * As far as I am concerned, the code I have written for this software
      7  * can be used freely for any purpose.  Any derived versions of this
      8  * software must be clearly marked as such, and if the derived work is
      9  * incompatible with the protocol description in the RFC file, it must be
     10  * called by a name other than "ssh" or "Secure Shell".
     11  */
     12 /*
     13  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
     14  * Use is subject to license terms.
     15  */
     16 
     17 #ifndef	_MISC_H
     18 #define	_MISC_H
     19 
     20 /*	$OpenBSD: misc.h,v 1.12 2002/03/19 10:49:35 markus Exp $	*/
     21 
     22 #ifdef __cplusplus
     23 extern "C" {
     24 #endif
     25 
     26 char	*chop(char *);
     27 char	*strdelim(char **);
     28 void	 set_nonblock(int);
     29 void	 unset_nonblock(int);
     30 void	 set_nodelay(int);
     31 int	 a2port(const char *);
     32 char	*cleanhostname(char *);
     33 char	*hpdelim(char **);
     34 char	*colon(char *);
     35 long	 convtime(const char *);
     36 char	*percent_expand(const char *, ...);
     37 char	*tohex(const void *, size_t);
     38 void	 sanitise_stdfd(void);
     39 int	 get_yes_no_flag(int *option, const char *arg, const char *filename,
     40 		    int linenum, int active);
     41 char    *tolowercase(const char *s);
     42 
     43 struct passwd	*pwcopy(struct passwd *);
     44 void		 pwfree(struct passwd **);
     45 
     46 typedef struct arglist arglist;
     47 struct arglist {
     48 	char    **list;
     49 	int     num;
     50 	int     nalloc;
     51 };
     52 void	 addargs(arglist *, char *, ...) __attribute__((format(printf, 2, 3)));
     53 void	 replacearg(arglist *, u_int, char *, ...)
     54 	     __attribute__((format(printf, 3, 4)));
     55 void	 freeargs(arglist *);
     56 
     57 /* wrapper for signal interface */
     58 typedef void (*mysig_t)(int);
     59 mysig_t mysignal(int sig, mysig_t act);
     60 
     61 /* Functions to extract or store big-endian words of various sizes */
     62 u_int64_t	get_u64(const void *)
     63     __attribute__((__bounded__( __minbytes__, 1, 8)));
     64 u_int32_t	get_u32(const void *)
     65     __attribute__((__bounded__( __minbytes__, 1, 4)));
     66 u_int16_t	get_u16(const void *)
     67     __attribute__((__bounded__( __minbytes__, 1, 2)));
     68 void		put_u64(void *, u_int64_t)
     69     __attribute__((__bounded__( __minbytes__, 1, 8)));
     70 void		put_u32(void *, u_int32_t)
     71     __attribute__((__bounded__( __minbytes__, 1, 4)));
     72 void		put_u16(void *, u_int16_t)
     73     __attribute__((__bounded__( __minbytes__, 1, 2)));
     74 
     75 #ifdef __cplusplus
     76 }
     77 #endif
     78 
     79 #endif /* _MISC_H */
     80