From 2ac0eac46d506385873722aa1cc8651c672cc20e Mon Sep 17 00:00:00 2001 From: Zhenbang Liu Date: Fri, 7 Oct 2016 18:12:36 -0400 Subject: [PATCH 1/2] create 404 --- 404.html | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++ content.c | 15 +++++++++------ gw-http | Bin 0 -> 14524 bytes server.c | 2 +- 4 files changed, 62 insertions(+), 7 deletions(-) create mode 100644 404.html create mode 100755 gw-http diff --git a/404.html b/404.html new file mode 100644 index 0000000..6390854 --- /dev/null +++ b/404.html @@ -0,0 +1,52 @@ + + + + + LEGO.com Page Not Found + + + + + + + + + + +
+
+ +
+ +
+ + +
+ +
+ + +
+ + +

Page Not Found

+
+ +
+

Sorry, we can't find that page! It might be an old link or maybe it moved.

+ BACK TO LEGO.COM HOME +
+
+ +
+ + +
+ + + +
+ + + \ No newline at end of file diff --git a/content.c b/content.c index d29bb6e..b0f0c92 100644 --- a/content.c +++ b/content.c @@ -33,7 +33,7 @@ #include /* 10 MB is max size */ -#define MAX_CONTENT_SZ (1024*1024*10) +#define MAX_CONTENT_SZ (1024*1024*1024) char * error_resp(char *path, int *len) @@ -62,13 +62,16 @@ content_get(char *path, int *content_len) #ifdef THINK_TIME sleep(1); #endif - + /* Bad path? No file? Too large? */ - if (sanity_check(path) || - stat(path, &s) || - s.st_size > MAX_CONTENT_SZ) goto err; - + if (stat(path, &s)) + { + path = "404.html"; + } + stat(path, &s); + if (sanity_check(path) || s.st_size > MAX_CONTENT_SZ) goto err; content_fd = open(path, O_RDONLY); + if (content_fd < 0) goto err; resp = malloc(s.st_size); diff --git a/gw-http b/gw-http new file mode 100755 index 0000000000000000000000000000000000000000..4737fd9418fae8cb1b6b0d3fb033e62c909e88cd GIT binary patch literal 14524 zcmeHOe{fvIeSat8B8!+4`I!j6>@@pHA<5SD)@K zcki&w_ws>fnDohL>Qya@L7Q?h)Jdn7pk}AX{PpOkpCx~rx8t|_{eE}%yWjopcfa4gUHSF%zqxp&riJEd+F*^QX<>Z(=WE)C zrUTNnKgMU`v#hQScNq^D_uWfsc?y-IABvIB00ywEZevS#c@xoJFQ=*DHOQtx98t1` zWjXeMLrA7dekZTOWKebKYFSVG3e{E=S7?K!sAc7xd~a@+bQ!wOvEdB$Qqej zmL0cZ*+{<~;N|=V6~6)1i8yTcBNOdzE#_ib8#i=sC~2lkxwLvk11^%nX?Nrs@V2Z} z(#q}X?@cGIjFbIHegQj8pX*D$w2#jaP|32kr{`Ana{20YDPOH>Pdt!?B=TEKKqbpc zMm|oy#k%A-s@fAT<;VF_S3x2y_kG8vd+s(iZVL8nQ-$7uGyRJalzf!w2>LSk710D4 zo7AFQD{5rc4m^$y2bwV+O4=DSJjE{3jt0V(hAI%@{B6~BZ$a24(H7}&M{Q?Dy9&c8yn+q-j#Fg{#AFZf*grn zG(!43K8`nivy}HHg;PJ(RMkLL162)FHBi++pn)FK{cm&k*(TF1Oq*`rH;e1Pj`-o< zk6>wfq!}muO#;cEG(#uc-?^O=X0$Nj*OBNNljcxilH9^03z3`S#tgBkmB^akH;W7F zz|I^$ehCQ-Cp$c2dQ|iO2Jz1HI(;{UeA09~XH3tSF?YY*wDqM}EVe4VWSDF;$~PK< zbf_=PgpY=Y&aDD@kMTixn6aF_!bfX|&M|0*zju63&j*hfA1n`rpF6horSKBb-yAx7 zl1+;vCWTNl9XC#cs3v*Bw;<4Z62ikgJDA1!cT;fJm^OZjP=j2frS+l>R^;(frp!UVKAX+}Fwo1s^*ECAvbWbF6Xq$VLo3 zBy#dlWAa?%jj(E-aoRObPwfW?b_d)sK0--$wy5t&XrZ%$;tk(1fYW?>yO3WRL zxt+fazgYOK-$AB^KUDAmKpE&7^qs;_KTOc~X+11Ypl=|DG3gl>Ag-?FB_=mFzowWw z^CCq&iV14Xr%Z3*UkYPdz^xKx{e&@9 z6Mnw%w*OrqhrtFdJN@wU;6qlw9yiW{Cf475&HpTVtBs(Tj$z^b8%vn-hsjZ#XT|be z0N~{(-253VyXnpUHH_8kJY#wqOl!vNd^0?J|QTbJhA~)w=(o+Whxc}qEAC~3>FnExT*GuV)ZlF6IdNXakxve`cJ_A6SJ&} ztKS0Q5Pr#N?s2RTe9Ep`e;W0Q6U<=Nee5O+;dk0=&H41)=6tcl@HbpduBx9TnJyk{ zD∈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 T5fE95NT@>KWhW3}nws{1(i9rO literal 0 HcmV?d00001 diff --git a/server.c b/server.c index 6e0e054..743ec3d 100644 --- a/server.c +++ b/server.c @@ -32,7 +32,7 @@ #include #include #include -#include +//#include #include /* From 931760e9c4ed716531b54c09c96f07bbb0cf2f81 Mon Sep 17 00:00:00 2001 From: Zhenbang Liu Date: Fri, 7 Oct 2016 22:02:15 -0400 Subject: [PATCH 2/2] ring buffer --- ringbuffer.c | 44 ++++++++++++++++++++++++++++++++++++++++++++ ringbuffer.h | 15 +++++++++++++++ 2 files changed, 59 insertions(+) create mode 100644 ringbuffer.c create mode 100644 ringbuffer.h diff --git a/ringbuffer.c b/ringbuffer.c new file mode 100644 index 0000000..dcec841 --- /dev/null +++ b/ringbuffer.c @@ -0,0 +1,44 @@ +#include "ringbuffer.h" +#include +#include +void init(RingBuffer *buffer) +{ + buffer->size = 0; + buffer->head = 0; + buffer->tail = 0; + int i = 0; + for(i = 0;i < buffer->size; i ++) + { + buffer[i] = NULL; + } +} +void add(Ticket *ticket, RingBuffer *buffer) +{ + int head = buffer->head; + int tail = buffer->tail; + int size = buffer->size; + tail ++; + tail = tail % size; + buffer->tickets[tail] = ticket; +} +Ticket * createTicket(char * name, int count) +{ + Ticket * ticket = (Ticket *)malloc(sizeof(Ticket)); + ticket->count = count; + strcpy(ticket->name, name); + return ticket; +} + +void freeticket(Ticket *ticket) +{ + if(!ticket) + { + return + } + else + { + free(ticket->path); + free(ticket); + } + +} diff --git a/ringbuffer.h b/ringbuffer.h new file mode 100644 index 0000000..e68ec45 --- /dev/null +++ b/ringbuffer.h @@ -0,0 +1,15 @@ +#include +typedef struct ticket +{ + int count; + char name[]; +}Ticket; + +typedef struct RingBuffer +{ + int size; + ticket * buffer[size]; + int head; + int tail; +}RingBuffer; +