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

📄 create_icmp_socket.c

📁 手机嵌入式Linux下可用的busybox源码
💻 C
字号:
/* vi: set sw=4 ts=4: *//* * Utility routines. * * create raw socket for icmp protocol test permision * and drop root privilegies if running setuid * */#include <sys/types.h>#include <netdb.h>#include <sys/socket.h>#include <errno.h>#include <unistd.h>#include "libbb.h"int create_icmp_socket(void){	struct protoent *proto;	int sock;	proto = getprotobyname("icmp");	/* if getprotobyname failed, just silently force	 * proto->p_proto to have the correct value for "icmp" */	if ((sock = socket(AF_INET, SOCK_RAW,			(proto ? proto->p_proto : 1))) < 0) {        /* 1 == ICMP */		if (errno == EPERM)			error_msg_and_die("permission denied. (are you root?)");		else			perror_msg_and_die(can_not_create_raw_socket);	}	/* drop root privs if running setuid */	setuid(getuid());	return sock;}

⌨️ 快捷键说明

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