/* * Daytime (RFC 867) plugin. * * $Id$ */ #define IN_PLUGIN #include "../../echoping.h" struct addrinfo daytime_server; int sockfd; echoping_options options; char * init (const int argc, const char **argv, echoping_options global_options) { if (global_options.udp) err_quit ("Sorry, UDP is not yet compatible with this daytime plugin"); options = global_options; return "daytime"; } void start (struct addrinfo *res) { daytime_server = *res; } int execute () { int nr; FILE *file; #define MAX 256 char recvline[MAX]; if ((sockfd = socket (daytime_server.ai_family, daytime_server.ai_socktype, daytime_server.ai_protocol)) < 0) err_sys ("Can't open socket"); if (connect (sockfd, daytime_server.ai_addr, daytime_server.ai_addrlen) < 0) err_sys ("Can't connect to server"); if ((file = fdopen (sockfd, "r")) == NULL) err_sys ("Cannot fdopen"); nr = readline (file, recvline, MAX, 1); if (options.verbose) printf ("%s", recvline); close (sockfd); return 1; } void terminate () { }