[IOMultiplexerV2] added GnuTLS support
[NextIRCd.git] / src / IOHandler_test / socket++ / iotest.cpp
1 /* main.c - IOMultiplexer
2  * Copyright (C) 2012  Philipp Kreil (pk910)
3  * 
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 3 of the License, or
7  * (at your option) any later version.
8  * 
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.
13  * 
14  * You should have received a copy of the GNU General Public License 
15  * along with this program. If not, see <http://www.gnu.org/licenses/>. 
16  */
17
18 #include <stdio.h>
19 #include "../../IOHandler++/IOHandler.h"
20 #include "../../IOHandler++/IOSocket.h"
21
22 class IOTestSocket : public CIOSocket {
23 protected:
24         virtual void connectedEvent() {
25                 printf("[connect]\n");
26                 this->writef("GET / HTTP/1.1\r\n");
27                 this->writef("Host: test.pk910.de\r\n");
28                 this->writef("\r\n");
29         };
30         virtual void notConnectedEvent(int errid) {
31                 printf("[not connected]\n");
32         };
33         virtual void closedEvent(int errid) {
34                 printf("[disconnect]\n");
35         };
36         virtual void acceptedEvent(CIOSocket *client) {
37                 client->close(); 
38         };
39         virtual void dnsErrEvent(std::string *errormsg) {
40         
41         };
42         virtual int recvEvent(const char *data, int len) {
43                 int i;
44                 for(i = 0; i < len; i++)
45                         putchar(data[i]);
46                 return len;
47         };
48 };
49
50
51 int main(int argc, char *argv[]) {
52         CIOHandler *iohandler = new CIOHandler();
53         IOTestSocket *sock = new IOTestSocket();
54         sock->connect("test.pk910.de", 443, 1, NULL);
55         
56         iohandler->start();
57 }