Changeset 7212f9de44a1f04707e822e3337100a80f707cb3
- Timestamp:
- 01/15/08 16:41:44
(5 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; |
|---|