Code Monkey home page Code Monkey logo

shadowsocks-libuv's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

shadowsocks-libuv's Issues

Throw openssl dependency away

@clowwindy @madeye

RC4 have a very simple algorithm and can be implemented in just few lines of code. According to my test, we only need the EVP_BytesToKey(3) to make password derivation. It seems that EVP_BytesToKey(3) is using PKCS#5 v1.5 so it's possible just implement this algorithm and throw openssl dependency away.

In my encrypt.c , I just used EVP_BytesToKey(3) to do derivation. After that I used a rc4 implementation I found in OpenBSD Directory and it's working very well.

Travis Failing

Looks like travis do not have openssl installed on their worker, trying to put openssl into project.

Build error by mac ox 10.12.3

when I use make to build this project in mac. I get a unknow error.
$ make
cc -Wall -O2 -DNDEBUG -I libuv/include -std=gnu99 -L/usr/local/opt/openssl/lib -I/usr/local/opt/openssl/include -o
server server.c utils.c encrypt.c md5.c rc4.c
libuv/libuv.a -lpthread -lcrypto -lm -framework CoreServices
Undefined symbols for architecture x86_64:
"_GetCurrentProcess", referenced from:
_uv__set_process_title in libuv.a(darwin-proctitle.o)
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make: *** [all] Error 1

How to solve that?!!Please

getaddrinfo segfault when using static linking

For easy deployment, I choose to use static linking by adding -static to CFLAGS. This will result getaddrinfo segfault.

There's some problem in static linked program which loads pthread and uses getaddrinfo. More info in ths glibc bugzilla thread.

No problem in your code, just create this issue to notify you about this problem. Maybe you can add this in README so other people will not waste time doing this again.

make后编译出错

错误如下:
cc -Wall -O2 -DNDEBUG -I libuv/include -std=gnu99 -o
server server.c utils.c encrypt.c md5.c rc4.c
libuv/libuv.a -lpthread -lcrypto -lm -lrt
server.c: In function after_write_cb :
server.c:151: warning: dereferencing type-punned pointer will break strict-aliasing rules

always report libuv error: not enough memory on File: server.c Line: 150 on Windows 7 x64

I built shadowsocks-libuv by MinGW32 toolchain with some small fix in Makefile:
LIBUVFLAGS = "OS=mingw"
CFLAGS += -D_WIN32_WINNT=0x0600 -I"f:/openssl-0.9.8k_WIN32/include"
LDFLAGS += f:/openssl-0.9.8k_WIN32/lib/ssleay32.lib f:/openssl-0.9.8k_WIN32/lib/libeay32.lib -lws2_32 -lmswsock -lkernel32 -luser32 -lgdi32 -lpsapi -liphlpapi -lmsvcr110

Building is successful, but report error when running, never succeed:
F:\Shareware\shadowsocks-libuv>server
�[01;32m INFO: �[0mShadowsocks server Version:0.2 libuv(0.9) Written by Dndx(id
ndx.com)
�[01;32m INFO: �[0mUsing shadowcrypt crypto
�[01;32m INFO: �[0mCrypto ready
�[01;32m INFO: �[0mListening on 0.0.0.0:8888
�[01;32m INFO: �[0mAccepted connection from 127.0.0.1
�[01;32m INFO: �[0mDomain is: www.google.com
�[01;32m INFO: �[0mConnected to 203.208.46.200
�[01;35m ERROR: �[0mlibuv error: not enough memory on File: server.c Line: 150
�[01;32m INFO: �[0mAccepted connection from 127.0.0.1
�[01;32m INFO: �[0mDomain is: www.google.com
�[01;32m INFO: �[0mConnected to 203.208.46.200
�[01;35m ERROR: �[0mlibuv error: not enough memory on File: server.c Line: 150
…………

编译成功,运行报错

Debian 6, 2.6.32
配置里用的是 IPv4 的格式 #define SERVER_LISTEN "::ffff:123.123.123.123"

$ ./server
 2013-03-28 13:46:32 INFO: Shadowsocks Version:0.2 libuv(0.9) Written by Dndx(idndx.com)
 2013-03-28 13:46:32 INFO: Using shadowcrypt crypto
 2013-03-28 13:46:32 INFO: Crypto ready
 2013-03-28 13:46:32 ERROR: libuv error: address family not supported on File: server.c Line: 591
 2013-03-28 13:46:32 ERROR: Fatal error, terminating...  on File: server.c Line: 591

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.