# HG changeset patch # User František Kučera # Date 1479581592 -3600 # Node ID 0eaa8735a0839b0d9092d29570a26e6c055df859 # Parent baa90e4359c87657971d15a9ca4ab489a61b4ecb libevent: echo místo rot13 diff -r baa90e4359c8 -r 0eaa8735a083 c++/domain-socket-bridge/domain-socket-bridge.c --- a/c++/domain-socket-bridge/domain-socket-bridge.c Sat Nov 19 19:29:54 2016 +0100 +++ b/c++/domain-socket-bridge/domain-socket-bridge.c Sat Nov 19 19:53:12 2016 +0100 @@ -81,7 +81,7 @@ event_free(signal_event); event_base_free(base); - // smažeme soket na disku / soubor -- jinak by program příště spadl na evconnlistener_new_bind() + // smažeme soket na disku / soubor -- jinak by program příště spadl na bind() unlink(PATH); printf("done\n"); @@ -127,23 +127,9 @@ struct event_base *base = (event_base *) user_data; size_t len = evbuffer_get_length(input); - char *data; - /* - data = (char*) malloc(len); + char *data = (char*) malloc(len); evbuffer_copyout(input, data, len); - */ - - size_t n; - int i; - while ((data = evbuffer_readln(input, &n, EVBUFFER_EOL_LF))) { - for (i = 0; i < n; ++i) - data[i] = rot13_char(data[i]); - evbuffer_add(output, data, n); - evbuffer_add(output, "\n", 1); - free(data); - } - - printf("we got some data...\n"); + printf("we got some data: %s\n", data); /* if (memcmp(data, "exit\n", len) == 0) { @@ -152,24 +138,11 @@ } */ - if (evbuffer_get_length(input) >= MAX_LINE) { - /* Too long; just process what there is and go on so that the buffer - * doesn't grow infinitely long. */ - char buf[1024]; - while (evbuffer_get_length(input)) { - int n = evbuffer_remove(input, buf, sizeof (buf)); - for (i = 0; i < n; ++i) - buf[i] = rot13_char(buf[i]); - evbuffer_add(output, buf, n); - } - evbuffer_add(output, "\n", 1); - } + evbuffer_add(output, "echo: ", 6); /* Copy all the data from the input buffer to the output buffer. */ - /* evbuffer_add_buffer(output, input); free(data); - */ } static void conn_write_cb(struct bufferevent *bev, void *user_data) { @@ -201,14 +174,3 @@ event_base_loopexit(base, &delay); } - -static char rot13_char(char c) { - /* We don't want to use isalpha here; setting the locale would change - * which characters are considered alphabetical. */ - if ((c >= 'a' && c <= 'm') || (c >= 'A' && c <= 'M')) - return c + 13; - else if ((c >= 'n' && c <= 'z') || (c >= 'N' && c <= 'Z')) - return c - 13; - else - return c; -}