2 * Copyright (C) 2009 Red Hat Inc.
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License as published by
6 * the Free Software Foundation; either version 2 of the License, or
7 * (at your option) any later version.
9 * This program is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 * GNU General Public License for more details.
14 * You should have received a copy of the GNU General Public License
15 * along with this program; if not, write to the Free Software
16 * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
27 #include "hostinfod.h"
30 ping (struct guest_description *hval,
31 const char *cmd, apr_array_header_t *args)
36 if (get_args (args, "s", &echodata) == -1) {
37 warning ("%s: %s: wrong number of type of arguments", hval->name, "ping");
38 send_error (hval, 400);
41 len = strlen (echodata);
42 if (len < 1 || len > 16) {
43 send_error (hval, 400);
47 for (i = 0; i < len; ++i)
48 if (!((echodata[i] >= 'a' && echodata[i] <= 'z') ||
49 (echodata[i] >= 'A' && echodata[i] <= 'Z') ||
50 (echodata[i] >= '0' && echodata[i] <= '9'))) {
51 send_error (hval, 400);
55 send_reply (hval, 200, "%s", echodata);
57 REGISTER_COMMAND (ping)