Browse Source

add header

pull/1/head
clowwindy 13 years ago
parent
commit
c029fbb3f5
3 changed files with 56 additions and 4 deletions
  1. 4
      Makefile
  2. 5
      main.c
  3. 51
      main.h

4
Makefile

@ -1,6 +1,6 @@
main: main.o
main: *.o
gcc -g -O2 main.o -lev -L/usr/local/lib -o main
main.o: main.c
main.o: *.c *.h Makefile
gcc -g -O2 -c -o main.o main.c
.PHONY: clean
clean:

5
main.c

@ -3,7 +3,6 @@
#include <sys/types.h>
#include <arpa/inet.h>
#include <errno.h>
#include <ev.h>
#include <fcntl.h>
#include <langinfo.h>
#include <locale.h>
@ -19,13 +18,15 @@
#include <time.h>
#include <unistd.h>
#include "main.h"
#define PORT 1090
#define REPLY "HTTP/1.1 200 OK\n\nhello"
// every watcher type has its own typedef'd struct
// with the name ev_TYPE
ev_io stdin_watcher;
ev_timer timeout_watcher;
struct server_ctx {
ev_io io;

51
main.h

@ -0,0 +1,51 @@
#pragma once
#include <ev.h>
#define BUF_SIZE 4096
struct server {
int server_fd;
char server_buf[BUF_SIZE];
int server_buf_len;
struct server_read_ctx *server_read_ctx;
struct server_write_ctx *server_write_ctx;
struct remote *remote;
};
struct server_read_ctx {
ev_io server_read_io;
struct server *server;
};
struct server_write_ctx {
ev_io server_write_io;
struct server *server;
};
struct remote {
int remote_fd;
char remote_buf[BUF_SIZE];
int remote_buf_len;
struct remote_read_ctx *remote_read_ctx;
struct remote_write_ctx *remote_write_ctx;
struct server *server;
};
struct remote_read_ctx {
ev_io remote_read_io;
struct remote *remote;
};
struct remote_write_ctx {
ev_io remote_write_io;
struct remote *remote;
};
static void
accept_cb (EV_P_ ev_io *w, int revents);
static void
server_read_cb (EV_P_ ev_io *w, int revents);
static void
server_write_cb (EV_P_ ev_io *w, int revents);
static void
remote_read_cb (EV_P_ ev_io *w, int revents);
static void
remote_write_cb (EV_P_ ev_io *w, int revents);
Loading…
Cancel
Save