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 +4 -4
- data/Changes +5 -0
- data/README.md +0 -2
- data/ext/rhebok/rhebok.c +40 -13
- data/lib/rhebok/version.rb +1 -1
- data/rhebok.gemspec +1 -0
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 9355b53eeddf987a2aa824aa639eb3fd6f4fcc22
|
4
|
+
data.tar.gz: 0a041cb2ebfc3daf54af50f1eccb639868c3d9a8
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: cb9728ed0b511498d9c7adc8b60fb6c296754e8e430a2199d7f9491305d7fdd5acaed15fe2c52f2893ef40311dc2ad91bf8a4c8d53f6f94c2f7a05a4b755689a
|
7
|
+
data.tar.gz: cf23b2c70f18c728b01b10781136800e3c753033bb9627af91bc43dc9f301decb6bf834910370ce699291d8b7aed221db60625652986846924d3ac42ef08fd04
|
data/Changes
CHANGED
data/README.md
CHANGED
data/ext/rhebok/rhebok.c
CHANGED
@@ -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
|
-
|
724
|
-
|
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
|
-
|
737
|
-
|
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[
|
762
|
-
v[
|
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++) {
|
data/lib/rhebok/version.rb
CHANGED
data/rhebok.gemspec
CHANGED
@@ -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.
|
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-
|
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
|
- - ">="
|