Skip to content

Commit f8af4ce

Browse files
committed
Merge branch 'master' of github.com:php-ion/websocket-parser
2 parents f4bccae + 03f87d0 commit f8af4ce

1 file changed

Lines changed: 10 additions & 8 deletions

File tree

README.md

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,15 @@
11
WebSocket frame parser
22
======================
33

4-
54
### Features
65
* No dependencies
76
* No internal buffering
87
* No need to buffer the whole frame — works with chunks of a data
8+
* No syscalls
9+
* No allocations
10+
* It can be interrupted at anytime
911

10-
This is a parser for WebSocket frame-messages written in C (by [RFC6455](https://tools.ietf.org/html/rfc6455)).
11-
It does not make any syscalls nor allocations, it does not
12-
buffer data, it can be interrupted at anytime.
12+
This is a parser for WebSocket frame-messages written in C (see [RFC6455](https://tools.ietf.org/html/rfc6455)).
1313

1414
Tested as part of [PHP-ION](https://github.com/php-ion/php-ion) extension.
1515

@@ -65,9 +65,9 @@ int websocket_frame_header(websocket_parser * parser) {
6565
int ion_websocket_frame_body(websocket_parser * parser, const char *at, size_t size) {
6666
if(parser->flags & WS_HAS_MASK) {
6767
// if frame has mask, we have to copy and decode data via websocket_parser_copy_masked function
68-
websocket_parser_copy_masked(&parser->data->body[parser->offset], at, size, parser);
68+
websocket_parser_decode(&parser->data->body[parser->offset], at, length, parser);
6969
} else {
70-
memcpy(&parser->data->body[parser->offset], at, size);
70+
memcpy(&parser->data->body[parser->offset], at, length);
7171
}
7272
return 0;
7373
}
@@ -81,11 +81,13 @@ When data is received execute the parser and check for errors.
8181
8282
```c
8383
size_t nread;
84+
// .. init settitngs and parser ...
8485
8586
nread = websocket_parser_execute(parser, &settings, data, data_len);
86-
if(parser->error || nread != data_len) {
87-
// e.g. log error
87+
if(nread != data_len) {
88+
// some callback return a value other than 0
8889
}
90+
8991
// ...
9092
free(parser);
9193
```

0 commit comments

Comments
 (0)