cmd_ping.c revision 1.1
11.1Skamil/* $NetBSD: cmd_ping.c,v 1.1 2020/02/05 13:23:42 kamil Exp $ */ 21.1Skamil 31.1Skamil/*- 41.1Skamil * Copyright (c) 2015 The NetBSD Foundation, Inc. 51.1Skamil * All rights reserved. 61.1Skamil * 71.1Skamil * Redistribution and use in source and binary forms, with or without 81.1Skamil * modification, are permitted provided that the following conditions 91.1Skamil * are met: 101.1Skamil * 1. Redistributions of source code must retain the above copyright 111.1Skamil * notice, this list of conditions and the following disclaimer. 121.1Skamil * 2. Redistributions in binary form must reproduce the above copyright 131.1Skamil * notice, this list of conditions and the following disclaimer in the 141.1Skamil * documentation and/or other materials provided with the distribution. 151.1Skamil * 161.1Skamil * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS 171.1Skamil * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED 181.1Skamil * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 191.1Skamil * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS 201.1Skamil * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 211.1Skamil * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 221.1Skamil * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 231.1Skamil * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 241.1Skamil * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 251.1Skamil * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 261.1Skamil * POSSIBILITY OF SUCH DAMAGE. 271.1Skamil */ 281.1Skamil 291.1Skamil#include <sys/cdefs.h> 301.1Skamil__RCSID("$NetBSD: cmd_ping.c,v 1.1 2020/02/05 13:23:42 kamil Exp $"); 311.1Skamil 321.1Skamil#include <err.h> 331.1Skamil#include <fcntl.h> 341.1Skamil#include <stdio.h> 351.1Skamil#include <stdlib.h> 361.1Skamil#include <sys/ioctl.h> 371.1Skamil#include <unistd.h> 381.1Skamil 391.1Skamil#include "ping.h" 401.1Skamil 411.1Skamil#define _PATH_DEV_PING "/dev/ping" 421.1Skamil 431.1Skamilint main(int argc, char **argv) 441.1Skamil{ 451.1Skamil int devfd; 461.1Skamil 471.1Skamil setprogname(argv[0]); 481.1Skamil 491.1Skamil if ((devfd = open(_PATH_DEV_PING, O_RDWR)) == -1) 501.1Skamil err(EXIT_FAILURE, "Cannot open %s", _PATH_DEV_PING); 511.1Skamil 521.1Skamil if (ioctl(devfd, CMD_PING) == -1) 531.1Skamil err(EXIT_FAILURE, "ping failed"); 541.1Skamil 551.1Skamil printf("%s: ping sent successfully\n", getprogname()); 561.1Skamil 571.1Skamil if (close(devfd) == -1) 581.1Skamil err(EXIT_FAILURE, "Cannot close %s", _PATH_DEV_PING); 591.1Skamil 601.1Skamil return EXIT_SUCCESS; 611.1Skamil} 62