erlang网络库
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

37 line
1.4 KiB

3 年之前
3 年之前
3 年之前
3 年之前
  1. -ifndef(ntProxyPt_H).
  2. -define(ntProxyPt_H, true).
  3. %%--------------------------------------------------------------------
  4. %% Proxy-Protocol Socket Wrapper
  5. %%--------------------------------------------------------------------
  6. -type(pp2_additional_ssl_field() :: {pp2_ssl_client, boolean()}
  7. | {pp2_ssl_client_cert_conn, boolean()}
  8. | {pp2_ssl_client_cert_sess, boolean()}
  9. | {pp2_ssl_verify, success | failed}
  10. | {pp2_ssl_version, binary()} % US-ASCII string
  11. | {pp2_ssl_cn, binary()} % UTF8-encoded string
  12. | {pp2_ssl_cipher, binary()} % US-ASCII string
  13. | {pp2_ssl_sig_alg, binary()} % US-ASCII string
  14. | {pp2_ssl_key_alg, binary()} % US-ASCII string
  15. ).
  16. -type(pp2_additional_field() ::
  17. {pp2_alpn, binary()} % byte sequence
  18. | {pp2_authority, binary()} % UTF8-encoded string
  19. | {pp2_crc32c, integer()} % 32-bit number
  20. | {pp2_netns, binary()} % US-ASCII string
  21. | {pp2_ssl, list(pp2_additional_ssl_field())}
  22. ).
  23. -record(proxy_socket, {
  24. inet = inet4 :: inet4 | inet6 | 'unix' | 'unspec',
  25. src_addr = {0, 0, 0, 0} :: inet:ip_address() | undefined,
  26. dst_addr = {0, 0, 0, 0} :: inet:ip_address() | undefined,
  27. src_port = 0 :: inet:port_number() | undefined,
  28. dst_port = 0 :: inet:port_number() | undefined,
  29. %% Proxy protocol v2 addtional fields
  30. pp2_additional_info = [] :: list(pp2_additional_field())
  31. }).
  32. -endif.