author | Tero Marttila <terom@fixme.fi> |
Sun, 22 Feb 2009 08:21:22 +0200 | |
changeset 8 | be88e543c8ff |
parent 7 | 844f014409ff |
child 9 | 4c4c906cc649 |
permissions | -rw-r--r-- |
0 | 1 |
|
2 |
#include <stdlib.h> |
|
3 |
#include <unistd.h> |
|
4 |
#include <stdio.h> |
|
5 |
#include <string.h> |
|
6 |
#include <event.h> |
|
7 |
#include <assert.h> |
|
8 |
||
9 |
#include <err.h> |
|
10 |
||
1
cf0e1bb6bcab
a fancy socket abstraction layer, with TCP, next, SSL. Also, .hgignore
Tero Marttila <terom@fixme.fi>
parents:
0
diff
changeset
|
11 |
#include "sock.h" |
8
be88e543c8ff
split off line_proto, and make sock_stream_error return a const error_info
Tero Marttila <terom@fixme.fi>
parents:
7
diff
changeset
|
12 |
#include "line_proto.h" |
1
cf0e1bb6bcab
a fancy socket abstraction layer, with TCP, next, SSL. Also, .hgignore
Tero Marttila <terom@fixme.fi>
parents:
0
diff
changeset
|
13 |
|
0 | 14 |
#define CONNECT_HOST "irc.fixme.fi" |
8
be88e543c8ff
split off line_proto, and make sock_stream_error return a const error_info
Tero Marttila <terom@fixme.fi>
parents:
7
diff
changeset
|
15 |
#define CONNECT_SERV "6697" |
0 | 16 |
#define LINE_LENGTH 512 |
17 |
||
18 |
int main (int argc, char **argv) { |
|
1
cf0e1bb6bcab
a fancy socket abstraction layer, with TCP, next, SSL. Also, .hgignore
Tero Marttila <terom@fixme.fi>
parents:
0
diff
changeset
|
19 |
struct sock_stream *sock; |
8
be88e543c8ff
split off line_proto, and make sock_stream_error return a const error_info
Tero Marttila <terom@fixme.fi>
parents:
7
diff
changeset
|
20 |
struct line_proto *lp; |
0 | 21 |
char line_buf[LINE_LENGTH + 1]; |
4
a3ca0f97a075
change ERROR_* to use pointers again, and implement error_info for sock_init
Tero Marttila <terom@fixme.fi>
parents:
2
diff
changeset
|
22 |
struct error_info err; |
0 | 23 |
|
24 |
// initialize |
|
4
a3ca0f97a075
change ERROR_* to use pointers again, and implement error_info for sock_init
Tero Marttila <terom@fixme.fi>
parents:
2
diff
changeset
|
25 |
if (sock_init(&err)) |
7 | 26 |
errx(1, "sock_init: %s", error_msg(&err)); |
4
a3ca0f97a075
change ERROR_* to use pointers again, and implement error_info for sock_init
Tero Marttila <terom@fixme.fi>
parents:
2
diff
changeset
|
27 |
|
0 | 28 |
// over-simplified connect |
5 | 29 |
if (sock_gnutls_connect(&sock, CONNECT_HOST, CONNECT_SERV, &err)) |
7 | 30 |
errx(1, "sock_gnutls_connect: %s", error_msg(&err)); |
0 | 31 |
|
8
be88e543c8ff
split off line_proto, and make sock_stream_error return a const error_info
Tero Marttila <terom@fixme.fi>
parents:
7
diff
changeset
|
32 |
// line protocol |
be88e543c8ff
split off line_proto, and make sock_stream_error return a const error_info
Tero Marttila <terom@fixme.fi>
parents:
7
diff
changeset
|
33 |
if (line_proto_create(&lp, sock, &err)) |
be88e543c8ff
split off line_proto, and make sock_stream_error return a const error_info
Tero Marttila <terom@fixme.fi>
parents:
7
diff
changeset
|
34 |
errx(1, "line_proto_create: %s", error_msg(&err)); |
be88e543c8ff
split off line_proto, and make sock_stream_error return a const error_info
Tero Marttila <terom@fixme.fi>
parents:
7
diff
changeset
|
35 |
|
0 | 36 |
// read lines and dump them out |
37 |
do { |
|
38 |
// recv |
|
8
be88e543c8ff
split off line_proto, and make sock_stream_error return a const error_info
Tero Marttila <terom@fixme.fi>
parents:
7
diff
changeset
|
39 |
if (line_proto_read(lp, line_buf, sizeof(line_buf))) |
be88e543c8ff
split off line_proto, and make sock_stream_error return a const error_info
Tero Marttila <terom@fixme.fi>
parents:
7
diff
changeset
|
40 |
errx(1, "line_proto_read: %s", error_msg(line_proto_error(lp))); |
0 | 41 |
|
42 |
// printf |
|
43 |
printf("<<< %s\n", line_buf); |
|
44 |
||
45 |
} while (1); |
|
46 |
||
47 |
// ok |
|
48 |
return 0; |
|
49 |
} |
|
50 |