Changeset 7212f9de44a1f04707e822e3337100a80f707cb3
- Timestamp:
- 01/15/08 16:41:44
(10 years ago)
- Author:
- Theo Schlossnagle <jesus@omniti.com>
- git-committer:
- Theo Schlossnagle <jesus@omniti.com> 1200415304 +0000
- git-parent:
[f41090dab0be1c792f9587e2d2930761969ace33]
- git-author:
- Theo Schlossnagle <jesus@omniti.com> 1200415304 +0000
- Message:
oh my, it compiles and runs
-
Files:
-
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
rf41090d |
r7212f9d |
|
16 | 16 | struct timeval *now) { |
---|
17 | 17 | int newmask = EVENTER_READ; |
---|
18 | | noit_log(noit_stderr, NULL, "HERE!\n"); |
---|
19 | 18 | if(mask & EVENTER_EXCEPTION) { |
---|
20 | 19 | eventer_remove_fd(e->fd); |
---|
rf41090d |
r7212f9d |
|
7 | 7 | |
---|
8 | 8 | #include <unistd.h> |
---|
| 9 | #include <errno.h> |
---|
9 | 10 | #include <sys/time.h> |
---|
10 | 11 | #include <sys/socket.h> |
---|
… | … | |
28 | 29 | } s; |
---|
29 | 30 | |
---|
30 | | noit_log(noit_stderr, NULL, "Accepting\n"); |
---|
31 | 31 | if(mask & EVENTER_EXCEPTION) { |
---|
32 | 32 | eventer_remove_fd(e->fd); |
---|
… | … | |
60 | 60 | int8_t family; |
---|
61 | 61 | socklen_t on; |
---|
| 62 | long reuse; |
---|
62 | 63 | listener_closure_t listener_closure; |
---|
63 | 64 | eventer_t event; |
---|
… | … | |
91 | 92 | } |
---|
92 | 93 | |
---|
| 94 | reuse = 1; |
---|
| 95 | if (setsockopt(fd, SOL_SOCKET, SO_REUSEADDR, |
---|
| 96 | (void*)&reuse, sizeof(reuse)) != 0) { |
---|
| 97 | |
---|
| 98 | close(fd); |
---|
| 99 | return -1; |
---|
| 100 | } |
---|
| 101 | |
---|
93 | 102 | memset(&s, 0, sizeof(s)); |
---|
94 | 103 | s.addr6.sin6_family = family; |
---|
… | … | |
97 | 106 | if(bind(fd, (struct sockaddr *)&s, |
---|
98 | 107 | (family == AF_INET) ? sizeof(s.addr4) : sizeof(s.addr6)) < 0) { |
---|
| 108 | noit_log(noit_stderr, NULL, "bind failed: %s\b", strerror(errno)); |
---|
99 | 109 | close(fd); |
---|
100 | 110 | return -1; |
---|
… | … | |
111 | 121 | listener_closure->family = family; |
---|
112 | 122 | listener_closure->port = htons(port); |
---|
| 123 | listener_closure->dispatch_callback = handler; |
---|
113 | 124 | listener_closure->dispatch_closure = closure; |
---|
114 | 125 | |
---|
rf41090d |
r7212f9d |
|
3 | 3 | #include <stdio.h> |
---|
4 | 4 | #include <stdlib.h> |
---|
| 5 | #include <errno.h> |
---|
| 6 | #include <sys/ioctl.h> |
---|
| 7 | #include <fcntl.h> |
---|
5 | 8 | |
---|
6 | 9 | #include "eventer/eventer.h" |
---|
… | … | |
11 | 14 | int stdin_handler(eventer_t e, int mask, void *closure, struct timeval *now) { |
---|
12 | 15 | fprintf(stderr, "in stdin_handler:\n"); |
---|
13 | | return EVENTER_READ; |
---|
| 16 | while(1) { |
---|
| 17 | int len; |
---|
| 18 | char buffer[1024]; |
---|
| 19 | len = e->opset->read(e->fd, buffer, sizeof(buffer)-1, &mask, NULL); |
---|
| 20 | printf("read() => %d\n", len); |
---|
| 21 | if(len < 0 && errno == EINTR) continue; |
---|
| 22 | if(len < 0 && errno == EAGAIN) break; |
---|
| 23 | if(len > 0) { |
---|
| 24 | buffer[len] = '\0'; |
---|
| 25 | printf("read: '%s'\n", buffer); |
---|
| 26 | } |
---|
| 27 | } |
---|
| 28 | return mask; |
---|
14 | 29 | } |
---|
15 | 30 | void stdin_sample() { |
---|
| 31 | socklen_t salen; |
---|
16 | 32 | eventer_t e; |
---|
| 33 | |
---|
| 34 | salen = 1; |
---|
| 35 | if(ioctl(0, FIONBIO, &salen)) { |
---|
| 36 | fprintf(stderr, "Cannot unlock stdin\n"); |
---|
| 37 | } |
---|
17 | 38 | e = eventer_alloc(); |
---|
18 | 39 | e->fd = 0; |
---|