⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 misc.h

📁 OpenVPN is a robust and highly flexible tunneling application that uses all of the encryption, authe
💻 H
字号:
/* *  OpenVPN -- An application to securely tunnel IP networks *             over a single TCP/UDP port, with support for SSL/TLS-based *             session authentication and key exchange, *             packet encryption, packet authentication, and *             packet compression. * *  Copyright (C) 2002-2004 James Yonan <jim@yonan.net> * *  This program is free software; you can redistribute it and/or modify *  it under the terms of the GNU General Public License as published by *  the Free Software Foundation; either version 2 of the License, or *  (at your option) any later version. * *  This program is distributed in the hope that it will be useful, *  but WITHOUT ANY WARRANTY; without even the implied warranty of *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the *  GNU General Public License for more details. * *  You should have received a copy of the GNU General Public License *  along with this program (see the file COPYING included with this *  distribution); if not, write to the Free Software Foundation, Inc., *  59 Temple Place, Suite 330, Boston, MA  02111-1307  USA */#ifndef MISC_H#define MISC_H#include "basic.h"#include "common.h"#include "integer.h"#include "buffer.h"/* socket descriptor passed by inetd/xinetd server to us */#define INETD_SOCKET_DESCRIPTOR 0/* Get/Set UID of process */struct user_state {#if defined(HAVE_GETPWNAM) && defined(HAVE_SETUID)  const char *username;  struct passwd *pw;#else  int dummy;#endif};void get_user (const char *username, struct user_state *state);void set_user (const struct user_state *state);/* Get/Set GID of process */struct group_state {#if defined(HAVE_GETGRNAM) && defined(HAVE_SETGID)  const char *groupname;  struct group *gr;#else  int dummy;#endif};void get_group (const char *groupname, struct group_state *state);void set_group (const struct group_state *state);void set_nice (int niceval);void do_chroot (const char *path);void run_script (const char *command,		 const char *arg,		 int tun_mtu,		 int link_mtu,		 const char *ifconfig_local,		 const char* ifconfig_remote,		 const char *context,		 const char *signal_text,		 const char *script_type);/* remove non-parameter environmental vars except for signal */void del_env_nonparm (int n_tls_id);/* workspace for get_pid_file/write_pid */struct pid_state {#ifdef HAVE_GETPID  FILE *fp;  const char *filename;#else  int dummy;#endif};void get_pid_file (const char* filename, struct pid_state *state);void write_pid (const struct pid_state *state);int get_current_pid ();void do_mlockall (bool print_msg); /* Disable paging */#ifndef HAVE_DAEMONint daemon (int nochdir, int noclose);#endif/* check file protections */void warn_if_group_others_accessible(const char* filename);/* wrapper around the system() call. */int openvpn_system (const char *command);/* interpret the status code returned by system() */bool system_ok(int);int system_executed (int stat);const char *system_error_message (int, struct gc_arena *gc);/* run system() with error check, return true if success,   false if error, exit if error and fatal==true */bool system_check (const char* command, const char* error_message, bool fatal);#ifdef HAVE_STRERROR/* a thread-safe version of strerror */const char* strerror_ts (int errnum, struct gc_arena *gc);#endif/* Set standard file descriptors to /dev/null */void set_std_files_to_null (bool stdin_only);/* Wrapper for chdir library function */int openvpn_chdir (const char* dir);/* dup inetd/xinetd socket descriptor and save */extern int inetd_socket_descriptor;void save_inetd_socket_descriptor (void);/* init random() function, only used as source for weak random numbers, when !USE_CRYPTO */void init_random_seed(void);/* set/delete environmental variable */void setenv_str (const char *name, const char *value);void setenv_int (const char *name, int value);void setenv_del (const char *name);/* convert netmasks for iproute2 */int count_netmask_bits(const char *);unsigned int count_bits(unsigned int );/* make cp safe to be passed to system() or set as an environmental variable */void safe_string (char *cp);/* go to sleep for n milliseconds */void sleep_milliseconds (unsigned int n);/* an analogue to the random() function, but use OpenSSL functions if available */#ifdef USE_CRYPTOlong int get_random(void);#else#define get_random random#endif/* return true if filename can be opened for read */bool test_file (const char *filename);/* create a temporary filename in directory */const char *create_temp_filename (const char *directory, struct gc_arena *gc);/* put a directory and filename together */const char *gen_path (const char *directory, const char *filename, struct gc_arena *gc);/* delete a file, return true if succeeded */bool delete_file (const char *filename);/* return the next largest power of 2 */unsigned int adjust_power_of_2 (unsigned int u);#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -