rhebok 0.0.7 → 0.0.8

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 6f7b4d1269e51f01608ce10b664cbac7a48ab183
4
- data.tar.gz: 63d4f869951c560a78b4878744b939e8ee40004c
3
+ metadata.gz: 9355b53eeddf987a2aa824aa639eb3fd6f4fcc22
4
+ data.tar.gz: 0a041cb2ebfc3daf54af50f1eccb639868c3d9a8
5
5
  SHA512:
6
- metadata.gz: f1954f4c61f6f593af6d057d799d1c0568c7d978e21eb72fd0c90cba4effa0c4d12c6d2273e69dd2ebe87c9d29610b9af4c9a285175120ea5c41a5a95706d705
7
- data.tar.gz: 9fe22db2f5b0e3f311b6321f28325d3f60dbba146c2d4873f338c165c13c4b582df97c693392bfc0aabbb17c3b38f3f25175e1ff1e5845e33ec26b79cf5c27e2
6
+ metadata.gz: cb9728ed0b511498d9c7adc8b60fb6c296754e8e430a2199d7f9491305d7fdd5acaed15fe2c52f2893ef40311dc2ad91bf8a4c8d53f6f94c2f7a05a4b755689a
7
+ data.tar.gz: cf23b2c70f18c728b01b10781136800e3c753033bb9627af91bc43dc9f301decb6bf834910370ce699291d8b7aed221db60625652986846924d3ac42ef08fd04
data/Changes CHANGED
@@ -1,3 +1,8 @@
1
+ 0.0.8 2014-12-25T15:23:41Z
2
+
3
+ - tweek Header order
4
+ - require ruby >= 2.0
5
+
1
6
  0.0.7 2014-12-24T16:25:22Z
2
7
 
3
8
  - support unix domain socket directly
data/README.md CHANGED
@@ -1,7 +1,5 @@
1
1
  # Rhebok
2
2
 
3
- This project is still in a very early development stage. IT IS NOT READY FOR PRODUCTION!
4
-
5
3
  Rhebok is High Performance Rack Handler/Web Server. 2x performance when compared against Unicorn.
6
4
 
7
5
  Rhebok supports following features.
@@ -677,6 +677,7 @@ VALUE rhe_write_response(VALUE self, VALUE filenov, VALUE timeoutv, VALUE status
677
677
  int i;
678
678
  char status_line[512];
679
679
  char date_line[512];
680
+ char server_line[1032];
680
681
  int date_pushed = 0;
681
682
  VALUE harr;
682
683
  VALUE key_obj;
@@ -685,6 +686,10 @@ VALUE rhe_write_response(VALUE self, VALUE filenov, VALUE timeoutv, VALUE status
685
686
  ssize_t key_len;
686
687
  const char * message;
687
688
 
689
+ const char * s;
690
+ char* d;
691
+ ssize_t n;
692
+
688
693
  int fileno = NUM2INT(filenov);
689
694
  double timeout = NUM2DBL(timeoutv);
690
695
  int status_code = NUM2INT(status_codev);
@@ -720,8 +725,11 @@ VALUE rhe_write_response(VALUE self, VALUE filenov, VALUE timeoutv, VALUE status
720
725
  v[iovcnt].iov_len = i;
721
726
  iovcnt++;
722
727
 
723
- v[iovcnt].iov_base = "Connection: close\r\nServer: Rhebok\r\n";
724
- v[iovcnt].iov_len = sizeof("Connection: close\r\nServer: Rhebok\r\n")-1;
728
+ /* for date header */
729
+ iovcnt++;
730
+
731
+ v[iovcnt].iov_base = "Server: Rhebok\r\n";
732
+ v[iovcnt].iov_len = sizeof("Server: Rhebok\r\n")-1;
725
733
  iovcnt++;
726
734
 
727
735
  date_pushed = 0;
@@ -729,16 +737,38 @@ VALUE rhe_write_response(VALUE self, VALUE filenov, VALUE timeoutv, VALUE status
729
737
  key_obj = rb_ary_entry(harr, i);
730
738
  key = RSTRING_PTR(key_obj);
731
739
  key_len = RSTRING_LEN(key_obj);
740
+ i++;
741
+
732
742
  if ( strncasecmp(key,"Connection",key_len) == 0 ) {
733
- i++;
734
743
  continue;
735
744
  }
736
- if ( strncasecmp(key,"Server",key_len) == 0 ) {
737
- v[1].iov_len -= (sizeof("Server: Rhebok\r\n") - 1);
738
- }
745
+
746
+ val_obj = rb_ary_entry(harr, i);
747
+
739
748
  if ( strncasecmp(key,"Date",key_len) == 0 ) {
749
+ strcpy(date_line, "Date: ");
750
+ for ( s=RSTRING_PTR(val_obj), n = RSTRING_LEN(val_obj), d=date_line+sizeof("Date: ")-1; n !=0; s++, --n, d++) {
751
+ *d = *s;
752
+ }
753
+ date_line[sizeof("Date: ") -1 + RSTRING_LEN(val_obj)] = 13;
754
+ date_line[sizeof("Date: ") -1 + RSTRING_LEN(val_obj) + 1] = 10;
755
+ v[1].iov_base = date_line;
756
+ v[1].iov_len = sizeof("Date: ") -1 + RSTRING_LEN(val_obj) + 2;
740
757
  date_pushed = 1;
758
+ continue;
741
759
  }
760
+ if ( strncasecmp(key,"Server",key_len) == 0 ) {
761
+ strcpy(server_line, "Server: ");
762
+ for ( s=RSTRING_PTR(val_obj), n = RSTRING_LEN(val_obj), d=server_line+sizeof("Server: ")-1; n !=0; s++, --n, d++) {
763
+ *d = *s;
764
+ }
765
+ server_line[sizeof("Server: ") -1 + RSTRING_LEN(val_obj)] = 13;
766
+ server_line[sizeof("Server: ") -1 + RSTRING_LEN(val_obj) + 1] = 10;
767
+ v[2].iov_base = server_line;
768
+ v[2].iov_len = sizeof("Server: ") -1 + RSTRING_LEN(val_obj) + 2;
769
+ continue;
770
+ }
771
+
742
772
  v[iovcnt].iov_base = key;
743
773
  v[iovcnt].iov_len = key_len;
744
774
  iovcnt++;
@@ -747,8 +777,6 @@ VALUE rhe_write_response(VALUE self, VALUE filenov, VALUE timeoutv, VALUE status
747
777
  iovcnt++;
748
778
 
749
779
  /* value */
750
- i++;
751
- val_obj = rb_ary_entry(harr, i);
752
780
  v[iovcnt].iov_base = RSTRING_PTR(val_obj);
753
781
  v[iovcnt].iov_len = RSTRING_LEN(val_obj);
754
782
  iovcnt++;
@@ -758,13 +786,12 @@ VALUE rhe_write_response(VALUE self, VALUE filenov, VALUE timeoutv, VALUE status
758
786
  }
759
787
 
760
788
  if ( date_pushed == 0 ) {
761
- v[iovcnt].iov_len = _date_line(date_line);
762
- v[iovcnt].iov_base = date_line;
763
- iovcnt++;
789
+ v[1].iov_len = _date_line(date_line);
790
+ v[1].iov_base = date_line;
764
791
  }
765
792
 
766
- v[iovcnt].iov_base = "\r\n";
767
- v[iovcnt].iov_len = sizeof("\r\n") - 1;
793
+ v[iovcnt].iov_base = "Connection: close\r\n\r\n";
794
+ v[iovcnt].iov_len = sizeof("Connection: close\r\n\r\n") - 1;
768
795
  iovcnt++;
769
796
 
770
797
  for ( i=0; i<blen; i++) {
@@ -1,3 +1,3 @@
1
1
  class Rhebok
2
- VERSION = "0.0.7"
2
+ VERSION = "0.0.8"
3
3
  end
@@ -19,6 +19,7 @@ Gem::Specification.new do |spec|
19
19
  spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
20
20
  spec.require_paths = ["lib"]
21
21
 
22
+ spec.required_ruby_version = '>= 2.0'
22
23
  spec.add_development_dependency "bundler", "~> 1.7"
23
24
  spec.add_development_dependency "rake", "~> 10.0"
24
25
  spec.add_development_dependency "bacon"
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rhebok
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.7
4
+ version: 0.0.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - Masahiro Nagano
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-12-24 00:00:00.000000000 Z
11
+ date: 2014-12-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -127,7 +127,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
127
127
  requirements:
128
128
  - - ">="
129
129
  - !ruby/object:Gem::Version
130
- version: '0'
130
+ version: '2.0'
131
131
  required_rubygems_version: !ruby/object:Gem::Requirement
132
132
  requirements:
133
133
  - - ">="