This commit is contained in:
Pierre Ossman 2017-10-18 16:29:37 +02:00
commit 814279b83b
2 changed files with 13 additions and 7 deletions

View File

@ -14,6 +14,7 @@
#include <strings.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <sys/stat.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <netdb.h>
@ -36,7 +37,7 @@ int pipe_error = 0;
settings_t settings;
void traffic(char * token) {
void traffic(const char * token) {
if ((settings.verbose) && (! settings.daemon)) {
fprintf(stdout, "%s", token);
fflush(stdout);
@ -120,7 +121,7 @@ ws_ctx_t *alloc_ws_ctx() {
return ctx;
}
int free_ws_ctx(ws_ctx_t *ctx) {
void free_ws_ctx(ws_ctx_t *ctx) {
free(ctx->cin_buf);
free(ctx->cout_buf);
free(ctx->tin_buf);
@ -130,6 +131,7 @@ int free_ws_ctx(ws_ctx_t *ctx) {
ws_ctx_t *ws_socket(ws_ctx_t *ctx, int socket) {
ctx->sockfd = socket;
return ctx;
}
ws_ctx_t *ws_socket_ssl(ws_ctx_t *ctx, int socket, char * certfile, char * keyfile) {
@ -191,7 +193,7 @@ ws_ctx_t *ws_socket_ssl(ws_ctx_t *ctx, int socket, char * certfile, char * keyfi
return ctx;
}
int ws_socket_free(ws_ctx_t *ctx) {
void ws_socket_free(ws_ctx_t *ctx) {
if (ctx->ssl) {
SSL_free(ctx->ssl);
ctx->ssl = NULL;
@ -268,7 +270,8 @@ int decode_hixie(char *src, size_t srclength,
int encode_hybi(u_char const *src, size_t srclength,
char *target, size_t targsize, unsigned int opcode)
{
unsigned long long b64_sz, len_offset = 1, payload_offset = 2, len = 0;
unsigned long long b64_sz, len_offset = 1, payload_offset = 2;
int len = 0;
if ((int)srclength <= 0)
{
@ -277,7 +280,7 @@ int encode_hybi(u_char const *src, size_t srclength,
b64_sz = ((srclength - 1) / 3) * 4 + 4;
target[0] = (char)(opcode & 0x0F | 0x80);
target[0] = (char)((opcode & 0x0F) | 0x80);
if (b64_sz <= 125) {
target[1] = (char) b64_sz;
@ -307,7 +310,8 @@ int decode_hybi(unsigned char *src, size_t srclength,
u_char *target, size_t targsize,
unsigned int *opcode, unsigned int *left)
{
unsigned char *frame, *mask, *payload, save_char, cntstr[4];;
unsigned char *frame, *mask, *payload, save_char;
char cntstr[4];
int masked = 0;
int i = 0, len, framecount = 0;
size_t remaining;
@ -708,8 +712,9 @@ void daemonize(int keepfd) {
void start_server() {
int lsock, csock, pid, clilen, sopt = 1, i;
int lsock, csock, pid, sopt = 1, i;
struct sockaddr_in serv_addr, cli_addr;
socklen_t clilen;
ws_ctx_t *ws_ctx;

View File

@ -36,6 +36,7 @@ char USAGE[] = "Usage: [options] " \
"[source_addr:]source_port target_addr:target_port\n\n" \
" --verbose|-v verbose messages and per frame traffic\n" \
" --daemon|-D become a daemon (background process)\n" \
" --run-once handle a single WebSocket connection and exit\n" \
" --cert CERT SSL certificate file\n" \
" --key KEY SSL key file (if separate from cert)\n" \
" --ssl-only disallow non-encrypted connections";