README.usage
上传用户:zm130024
上传日期:2007-01-04
资源大小:432k
文件大小:3k
源码类别:

代理服务器

开发平台:

Unix_Linux

  1. $Id: README.usage,v 1.5 1999/12/22 09:29:17 karls Exp $
  2. The socks package can be used in two ways.
  3. Dynamically
  4. The simplest way to add socks support to an already
  5. (dynamically) complied application is to use the LD_PRELOAD facility
  6. to replace the standard library functions with socksified ones.  The
  7. libdsocks library is provided for this purpose.  See the
  8. README.socksify file for more information.  This will probably only
  9. work with non-setuid applications since LD_PRELOAD is usually ignored
  10. otherwise.  If setting LD_PRELOAD is not possible, compilation is
  11. another possibility.
  12. If the application can be compiled dynamically socks support
  13. can be added explicitly by linking with libdsocks (usually done by adding
  14. '-ldsocks').  This will automagically give the application socks
  15. support without making any code changes.
  16. Static Compilation
  17. If the source code for an application is available it can be
  18. changed to use socks, even if it is not linked dynamically.
  19. Several systemcalls must be changed to use the socksified versions
  20. instead of the standard ones.  The application is then linked with
  21. the libsocks library in the distribution (-lsocks, not -ldsocks).
  22. These system calls can be found in the socks library:
  23. Rconnect
  24. Rbind 
  25. Rgetsockname
  26. Rgetpeername
  27. Raccept
  28. Rrresvport
  29. Rbindresvport
  30. Rgethostbyname
  31. Rgethostbyname2
  32. Rsendto
  33. Rrecvfrom
  34. Rrecvfrom
  35. Rwrite
  36. Rwritev
  37. Rsend
  38. Rsendmsg
  39. Rread
  40. Rreadv
  41. Rrecv
  42. Rrecvmsg
  43. These calls currently does nothing and are only provided for
  44. compatibility with programs which use them.
  45. Rlisten
  46. Rselect
  47. SOCKSinit
  48. The source can either be modified directly, or by using defines to
  49. change the source during compilation.
  50. Either add this line to the command line:
  51. -Dconnect=Rconnect -Dbind=Rbind -Dgetsockname=Rgetsockname -Dgetpeername=Rgetpeername -Daccept=Raccept -Drresvport=Rrresvport -Dbindresvport=Rbindresvport -Dgethostbyname=Rgethostbyname -Dgethostbyname2=Rgethostbyname2 -Dsendto=Rsendto -Drecvfrom=Rrecvfrom -Drecvfrom=Rrecvfrom -Dwrite=Rwrite -Dwritev=Rwritev -Dsend=Rsend -Dsendmsg=Rsendmsg -Dread=Rread -Dreadv=Rreadv -Drecv=Rrecv -Drecvmsg=Rrecvmsg
  52. or these lines to an include file, which must be included in all source files.
  53. #define connect Rconnect
  54. #define bind Rbind
  55. #define getsockname Rgetsockname
  56. #define getpeername Rgetpeername
  57. #define accept Raccept
  58. #define rresvport Rrresvport
  59. #define bindresvport Rbindresvport
  60. #define gethostbyname Rgethostbyname
  61. #define gethostbyname2 Rgethostbyname2
  62. #define sendto Rsendto
  63. #define recvfrom Rrecvfrom
  64. #define recvfrom Rrecvfrom
  65. #define write Rwrite
  66. #define writev Rwritev
  67. #define send Rsend
  68. #define sendmsg Rsendmsg
  69. #define read Rread
  70. #define readv Rreadv
  71. #define recv Rrecv
  72. #define recvmsg Rrecvmsg
  73. Libraries
  74. In total there are three libraries distributed with this package:
  75.  libsocks.so  - standard shared library, contains Rfoo type functions.
  76.  libsocks.a   - static version of the above.
  77.  libdsocks.so - shared library which does socksification through the
  78. runtime linker.  Contains wrappers for standard I/O
  79. calls.