Hex Artifact Content

Artifact 0c6bf71444a2505ea91f70140439e4c85e1afb4b:


0000: 64 6e 6c 20 24 31 20 3d 20 4e 61 6d 65 20 6f 66  dnl $1 = Name of
0010: 20 76 61 72 69 61 62 6c 65 0a 64 6e 6c 20 24 32   variable.dnl $2
0020: 20 3d 20 4e 61 6d 65 20 6f 66 20 66 75 6e 63 74   = Name of funct
0030: 69 6f 6e 20 74 6f 20 63 68 65 63 6b 20 66 6f 72  ion to check for
0040: 0a 64 6e 6c 20 24 33 20 3d 20 4e 61 6d 65 20 6f  .dnl $3 = Name o
0050: 66 20 70 72 6f 74 6f 63 6f 6c 0a 64 6e 6c 20 24  f protocol.dnl $
0060: 34 20 3d 20 4e 61 6d 65 20 6f 66 20 43 50 50 20  4 = Name of CPP 
0070: 6d 61 63 72 6f 20 74 6f 20 64 65 66 69 6e 65 0a  macro to define.
0080: 41 43 5f 44 45 46 55 4e 28 5b 54 43 4c 54 4c 53  AC_DEFUN([TCLTLS
0090: 5f 53 53 4c 5f 4f 50 45 4e 53 53 4c 5f 43 48 45  _SSL_OPENSSL_CHE
00a0: 43 4b 5f 50 52 4f 54 4f 5f 56 45 52 5d 2c 20 5b  CK_PROTO_VER], [
00b0: 0a 09 64 6e 6c 20 44 65 74 65 72 6d 69 6e 65 20  ..dnl Determine 
00c0: 69 66 20 70 61 72 74 69 63 75 6c 61 72 20 53 53  if particular SS
00d0: 4c 20 76 65 72 73 69 6f 6e 20 69 73 20 65 6e 61  L version is ena
00e0: 62 6c 65 64 0a 09 69 66 20 74 65 73 74 20 22 5b  bled..if test "[
00f0: 24 5d 24 31 22 20 3d 20 22 74 72 75 65 22 20 2d  $]$1" = "true" -
0100: 6f 20 22 5b 24 5d 24 31 22 20 3d 20 22 66 6f 72  o "[$]$1" = "for
0110: 63 65 22 3b 20 74 68 65 6e 0a 09 09 41 43 5f 43  ce"; then...AC_C
0120: 48 45 43 4b 5f 46 55 4e 43 28 24 32 2c 2c 20 5b  HECK_FUNC($2,, [
0130: 0a 09 09 09 69 66 20 74 65 73 74 20 22 5b 24 5d  ....if test "[$]
0140: 24 31 22 20 3d 20 22 66 6f 72 63 65 22 3b 20 74  $1" = "force"; t
0150: 68 65 6e 0a 09 09 09 09 41 43 5f 4d 53 47 5f 45  hen.....AC_MSG_E
0160: 52 52 4f 52 28 5b 55 6e 61 62 6c 65 20 74 6f 20  RROR([Unable to 
0170: 65 6e 61 62 6c 65 20 24 33 5d 29 0a 09 09 09 66  enable $3])....f
0180: 69 0a 0a 09 09 09 24 31 3d 27 66 61 6c 73 65 27  i.....$1='false'
0190: 0a 09 09 5d 29 0a 09 66 69 0a 0a 09 69 66 20 74  ...])..fi...if t
01a0: 65 73 74 20 22 5b 24 5d 24 31 22 20 3d 20 22 66  est "[$]$1" = "f
01b0: 61 6c 73 65 22 20 2d 6f 20 22 5b 24 5d 24 31 22  alse" -o "[$]$1"
01c0: 20 3d 20 22 66 6f 72 63 65 5f 6f 66 66 22 3b 20   = "force_off"; 
01d0: 74 68 65 6e 0a 09 09 41 43 5f 44 45 46 49 4e 45  then...AC_DEFINE
01e0: 28 24 34 2c 20 5b 31 5d 2c 20 5b 44 65 66 69 6e  ($4, [1], [Defin
01f0: 65 20 74 68 69 73 20 74 6f 20 64 69 73 61 62 6c  e this to disabl
0200: 65 20 24 33 20 69 6e 20 4f 70 65 6e 53 53 4c 20  e $3 in OpenSSL 
0210: 73 75 70 70 6f 72 74 5d 29 0a 09 66 69 0a 0a 5d  support])..fi..]
0220: 29 0a 0a 41 43 5f 44 45 46 55 4e 28 5b 54 43 4c  )..AC_DEFUN([TCL
0230: 54 4c 53 5f 53 53 4c 5f 4f 50 45 4e 53 53 4c 5d  TLS_SSL_OPENSSL]
0240: 2c 20 5b 0a 09 6f 70 65 6e 73 73 6c 64 69 72 3d  , [..openssldir=
0250: 27 27 0a 09 41 43 5f 41 52 47 5f 57 49 54 48 28  ''..AC_ARG_WITH(
0260: 5b 73 73 6c 2d 64 69 72 5d 2c 0a 09 09 41 53 5f  [ssl-dir],...AS_
0270: 48 45 4c 50 5f 53 54 52 49 4e 47 28 0a 09 09 09  HELP_STRING(....
0280: 5b 2d 2d 77 69 74 68 2d 73 73 6c 2d 64 69 72 3d  [--with-ssl-dir=
0290: 3c 64 69 72 3e 5d 2c 0a 09 09 09 5b 64 65 70 72  <dir>],....[depr
02a0: 65 63 61 74 65 64 2c 20 75 73 65 20 2d 2d 77 69  ecated, use --wi
02b0: 74 68 2d 6f 70 65 6e 73 73 6c 2d 64 69 72 20 2d  th-openssl-dir -
02c0: 2d 20 63 75 72 72 65 6e 74 6c 79 20 68 61 73 20  - currently has 
02d0: 74 68 65 20 73 61 6d 65 20 6d 65 61 6e 69 6e 67  the same meaning
02e0: 5d 0a 09 09 29 2c 20 5b 0a 09 09 09 6f 70 65 6e  ]...), [....open
02f0: 73 73 6c 64 69 72 3d 22 24 77 69 74 68 76 61 6c  ssldir="$withval
0300: 22 0a 09 09 5d 0a 09 29 0a 09 41 43 5f 41 52 47  "...]..)..AC_ARG
0310: 5f 57 49 54 48 28 5b 6f 70 65 6e 73 73 6c 2d 64  _WITH([openssl-d
0320: 69 72 5d 2c 0a 09 09 41 53 5f 48 45 4c 50 5f 53  ir],...AS_HELP_S
0330: 54 52 49 4e 47 28 0a 09 09 09 5b 2d 2d 77 69 74  TRING(....[--wit
0340: 68 2d 6f 70 65 6e 73 73 6c 2d 64 69 72 3d 3c 64  h-openssl-dir=<d
0350: 69 72 3e 5d 2c 0a 09 09 09 5b 70 61 74 68 20 74  ir>],....[path t
0360: 6f 20 72 6f 6f 74 20 64 69 72 65 63 74 6f 72 79  o root directory
0370: 20 6f 66 20 4f 70 65 6e 53 53 4c 20 6f 72 20 4c   of OpenSSL or L
0380: 69 62 72 65 53 53 4c 20 69 6e 73 74 61 6c 6c 61  ibreSSL installa
0390: 74 69 6f 6e 5d 0a 09 09 29 2c 20 5b 0a 09 09 09  tion]...), [....
03a0: 6f 70 65 6e 73 73 6c 64 69 72 3d 22 24 77 69 74  openssldir="$wit
03b0: 68 76 61 6c 22 0a 09 09 5d 0a 09 29 0a 0a 09 69  hval"...]..)...i
03c0: 66 20 74 65 73 74 20 2d 6e 20 22 24 6f 70 65 6e  f test -n "$open
03d0: 73 73 6c 64 69 72 22 3b 20 74 68 65 6e 0a 09 09  ssldir"; then...
03e0: 69 66 20 74 65 73 74 20 2d 65 20 22 24 6f 70 65  if test -e "$ope
03f0: 6e 73 73 6c 64 69 72 2f 6c 69 62 73 73 6c 2e 24  nssldir/libssl.$
0400: 53 48 4f 42 4a 45 58 54 22 3b 20 74 68 65 6e 0a  SHOBJEXT"; then.
0410: 09 09 09 54 43 4c 54 4c 53 5f 53 53 4c 5f 4c 49  ...TCLTLS_SSL_LI
0420: 42 53 3d 22 2d 4c 24 6f 70 65 6e 73 73 6c 64 69  BS="-L$openssldi
0430: 72 20 2d 6c 73 73 6c 20 2d 6c 63 72 79 70 74 6f  r -lssl -lcrypto
0440: 22 0a 09 09 09 6f 70 65 6e 73 73 6c 64 69 72 3d  "....openssldir=
0450: 22 60 41 53 5f 44 49 52 4e 41 4d 45 28 5b 22 24  "`AS_DIRNAME(["$
0460: 6f 70 65 6e 73 73 6c 64 69 72 22 5d 29 60 22 0a  openssldir"])`".
0470: 09 09 65 6c 73 65 0a 09 09 09 54 43 4c 54 4c 53  ..else....TCLTLS
0480: 5f 53 53 4c 5f 4c 49 42 53 3d 22 2d 4c 24 6f 70  _SSL_LIBS="-L$op
0490: 65 6e 73 73 6c 64 69 72 2f 6c 69 62 20 2d 6c 73  enssldir/lib -ls
04a0: 73 6c 20 2d 6c 63 72 79 70 74 6f 22 0a 09 09 66  sl -lcrypto"...f
04b0: 69 0a 09 09 54 43 4c 54 4c 53 5f 53 53 4c 5f 43  i...TCLTLS_SSL_C
04c0: 46 4c 41 47 53 3d 22 2d 49 24 6f 70 65 6e 73 73  FLAGS="-I$openss
04d0: 6c 64 69 72 2f 69 6e 63 6c 75 64 65 22 0a 09 09  ldir/include"...
04e0: 54 43 4c 54 4c 53 5f 53 53 4c 5f 43 50 50 46 4c  TCLTLS_SSL_CPPFL
04f0: 41 47 53 3d 22 2d 49 24 6f 70 65 6e 73 73 6c 64  AGS="-I$openssld
0500: 69 72 2f 69 6e 63 6c 75 64 65 22 0a 09 66 69 0a  ir/include"..fi.
0510: 0a 09 64 6e 6c 20 55 73 65 20 70 6b 67 2d 63 6f  ..dnl Use pkg-co
0520: 6e 66 69 67 20 74 6f 20 66 69 6e 64 20 74 68 65  nfig to find the
0530: 20 6c 69 62 72 61 72 69 65 73 0a 09 41 43 5f 41   libraries..AC_A
0540: 52 47 5f 56 41 52 28 5b 54 43 4c 54 4c 53 5f 53  RG_VAR([TCLTLS_S
0550: 53 4c 5f 4c 49 42 53 5d 2c 20 5b 6c 69 62 72 61  SL_LIBS], [libra
0560: 72 69 65 73 20 74 6f 20 70 61 73 73 20 74 6f 20  ries to pass to 
0570: 74 68 65 20 6c 69 6e 6b 65 72 20 66 6f 72 20 4f  the linker for O
0580: 70 65 6e 53 53 4c 20 6f 72 20 4c 69 62 72 65 53  penSSL or LibreS
0590: 53 4c 5d 29 0a 09 41 43 5f 41 52 47 5f 56 41 52  SL])..AC_ARG_VAR
05a0: 28 5b 54 43 4c 54 4c 53 5f 53 53 4c 5f 43 46 4c  ([TCLTLS_SSL_CFL
05b0: 41 47 53 5d 2c 20 5b 43 20 63 6f 6d 70 69 6c 65  AGS], [C compile
05c0: 72 20 66 6c 61 67 73 20 66 6f 72 20 4f 70 65 6e  r flags for Open
05d0: 53 53 4c 20 6f 72 20 4c 69 62 72 65 53 53 4c 5d  SSL or LibreSSL]
05e0: 29 0a 09 41 43 5f 41 52 47 5f 56 41 52 28 5b 54  )..AC_ARG_VAR([T
05f0: 43 4c 54 4c 53 5f 53 53 4c 5f 43 50 50 46 4c 41  CLTLS_SSL_CPPFLA
0600: 47 53 5d 2c 20 5b 43 20 70 72 65 70 72 6f 63 65  GS], [C preproce
0610: 73 73 6f 72 20 66 6c 61 67 73 20 66 6f 72 20 4f  ssor flags for O
0620: 70 65 6e 53 53 4c 20 6f 72 20 4c 69 62 72 65 53  penSSL or LibreS
0630: 53 4c 5d 29 0a 09 69 66 20 74 65 73 74 20 2d 7a  SL])..if test -z
0640: 20 22 24 54 43 4c 54 4c 53 5f 53 53 4c 5f 4c 49   "$TCLTLS_SSL_LI
0650: 42 53 22 3b 20 74 68 65 6e 0a 09 09 54 43 4c 54  BS"; then...TCLT
0660: 4c 53 5f 53 53 4c 5f 4c 49 42 53 3d 22 60 22 24  LS_SSL_LIBS="`"$
0670: 7b 50 4b 47 43 4f 4e 46 49 47 7d 22 20 6f 70 65  {PKGCONFIG}" ope
0680: 6e 73 73 6c 20 2d 2d 6c 69 62 73 60 22 20 7c 7c  nssl --libs`" ||
0690: 20 41 43 5f 4d 53 47 5f 45 52 52 4f 52 28 5b 55   AC_MSG_ERROR([U
06a0: 6e 61 62 6c 65 20 74 6f 20 67 65 74 20 4f 70 65  nable to get Ope
06b0: 6e 53 53 4c 20 43 6f 6e 66 69 67 75 72 61 74 69  nSSL Configurati
06c0: 6f 6e 5d 29 0a 09 66 69 0a 09 69 66 20 74 65 73  on])..fi..if tes
06d0: 74 20 2d 7a 20 22 24 54 43 4c 54 4c 53 5f 53 53  t -z "$TCLTLS_SS
06e0: 4c 5f 43 46 4c 41 47 53 22 3b 20 74 68 65 6e 0a  L_CFLAGS"; then.
06f0: 09 09 54 43 4c 54 4c 53 5f 53 53 4c 5f 43 46 4c  ..TCLTLS_SSL_CFL
0700: 41 47 53 3d 22 60 22 24 7b 50 4b 47 43 4f 4e 46  AGS="`"${PKGCONF
0710: 49 47 7d 22 20 6f 70 65 6e 73 73 6c 20 2d 2d 63  IG}" openssl --c
0720: 66 6c 61 67 73 2d 6f 6e 6c 79 2d 6f 74 68 65 72  flags-only-other
0730: 60 22 20 7c 7c 20 41 43 5f 4d 53 47 5f 45 52 52  `" || AC_MSG_ERR
0740: 4f 52 28 5b 55 6e 61 62 6c 65 20 74 6f 20 67 65  OR([Unable to ge
0750: 74 20 4f 70 65 6e 53 53 4c 20 43 6f 6e 66 69 67  t OpenSSL Config
0760: 75 72 61 74 69 6f 6e 5d 29 0a 09 66 69 0a 09 69  uration])..fi..i
0770: 66 20 74 65 73 74 20 2d 7a 20 22 24 54 43 4c 54  f test -z "$TCLT
0780: 4c 53 5f 53 53 4c 5f 43 50 50 46 4c 41 47 53 22  LS_SSL_CPPFLAGS"
0790: 3b 20 74 68 65 6e 0a 09 09 54 43 4c 54 4c 53 5f  ; then...TCLTLS_
07a0: 53 53 4c 5f 43 50 50 46 4c 41 47 53 3d 22 60 22  SSL_CPPFLAGS="`"
07b0: 24 7b 50 4b 47 43 4f 4e 46 49 47 7d 22 20 6f 70  ${PKGCONFIG}" op
07c0: 65 6e 73 73 6c 20 2d 2d 63 66 6c 61 67 73 2d 6f  enssl --cflags-o
07d0: 6e 6c 79 2d 49 60 22 20 7c 7c 20 41 43 5f 4d 53  nly-I`" || AC_MS
07e0: 47 5f 45 52 52 4f 52 28 5b 55 6e 61 62 6c 65 20  G_ERROR([Unable 
07f0: 74 6f 20 67 65 74 20 4f 70 65 6e 53 53 4c 20 43  to get OpenSSL C
0800: 6f 6e 66 69 67 75 72 61 74 69 6f 6e 5d 29 0a 09  onfiguration])..
0810: 66 69 0a 0a 09 64 6e 6c 20 53 61 76 65 20 63 6f  fi...dnl Save co
0820: 6d 70 69 6c 65 2d 61 6c 74 65 72 69 6e 67 20 76  mpile-altering v
0830: 61 72 69 61 62 6c 65 73 20 77 65 20 61 72 65 20  ariables we are 
0840: 63 68 61 6e 67 69 6e 67 0a 09 53 41 56 45 5f 4c  changing..SAVE_L
0850: 49 42 53 3d 22 24 7b 4c 49 42 53 7d 22 0a 09 53  IBS="${LIBS}"..S
0860: 41 56 45 5f 43 46 4c 41 47 53 3d 22 24 7b 43 46  AVE_CFLAGS="${CF
0870: 4c 41 47 53 7d 22 0a 09 53 41 56 45 5f 43 50 50  LAGS}"..SAVE_CPP
0880: 46 4c 41 47 53 3d 22 24 7b 43 50 50 46 4c 41 47  FLAGS="${CPPFLAG
0890: 53 7d 22 0a 0a 09 64 6e 6c 20 55 70 64 61 74 65  S}"...dnl Update
08a0: 20 63 6f 6d 70 69 6c 65 2d 61 6c 74 65 72 69 6e   compile-alterin
08b0: 67 20 76 61 72 69 61 62 6c 65 73 20 74 6f 20 69  g variables to i
08c0: 6e 63 6c 75 64 65 20 74 68 65 20 4f 70 65 6e 53  nclude the OpenS
08d0: 53 4c 20 6c 69 62 72 61 72 69 65 73 0a 09 4c 49  SL libraries..LI
08e0: 42 53 3d 22 24 7b 53 41 56 45 5f 4c 49 42 53 7d  BS="${SAVE_LIBS}
08f0: 20 24 7b 54 43 4c 54 4c 53 5f 53 53 4c 5f 4c 49   ${TCLTLS_SSL_LI
0900: 42 53 7d 22 0a 09 43 46 4c 41 47 53 3d 22 24 7b  BS}"..CFLAGS="${
0910: 53 41 56 45 5f 43 46 4c 41 47 53 7d 20 24 7b 54  SAVE_CFLAGS} ${T
0920: 43 4c 54 4c 53 5f 53 53 4c 5f 43 46 4c 41 47 53  CLTLS_SSL_CFLAGS
0930: 7d 22 0a 09 43 50 50 46 4c 41 47 53 3d 22 24 7b  }"..CPPFLAGS="${
0940: 53 41 56 45 5f 43 50 50 46 4c 41 47 53 7d 20 24  SAVE_CPPFLAGS} $
0950: 7b 54 43 4c 54 4c 53 5f 53 53 4c 5f 43 50 50 46  {TCLTLS_SSL_CPPF
0960: 4c 41 47 53 7d 22 0a 0a 09 64 6e 6c 20 56 65 72  LAGS}"...dnl Ver
0970: 69 66 79 20 74 68 61 74 20 62 61 73 69 63 20 66  ify that basic f
0980: 75 6e 63 74 69 6f 6e 61 6c 69 74 79 20 69 73 20  unctionality is 
0990: 74 68 65 72 65 0a 09 41 43 5f 4c 41 4e 47 5f 50  there..AC_LANG_P
09a0: 55 53 48 28 43 29 0a 09 41 43 5f 4d 53 47 5f 43  USH(C)..AC_MSG_C
09b0: 48 45 43 4b 49 4e 47 28 5b 69 66 20 61 20 62 61  HECKING([if a ba
09c0: 73 69 63 20 4f 70 65 6e 53 53 4c 20 70 72 6f 67  sic OpenSSL prog
09d0: 72 61 6d 20 77 6f 72 6b 73 5d 29 0a 09 41 43 5f  ram works])..AC_
09e0: 4c 49 4e 4b 5f 49 46 45 4c 53 45 28 5b 41 43 5f  LINK_IFELSE([AC_
09f0: 4c 41 4e 47 5f 50 52 4f 47 52 41 4d 28 5b 0a 23  LANG_PROGRAM([.#
0a00: 69 6e 63 6c 75 64 65 20 3c 6f 70 65 6e 73 73 6c  include <openssl
0a10: 2f 73 73 6c 2e 68 3e 0a 23 69 66 20 28 53 53 4c  /ssl.h>.#if (SSL
0a20: 45 41 59 5f 56 45 52 53 49 4f 4e 5f 4e 55 4d 42  EAY_VERSION_NUMB
0a30: 45 52 20 3e 3d 20 30 78 30 39 30 37 30 30 30 4c  ER >= 0x0907000L
0a40: 29 0a 23 20 69 6e 63 6c 75 64 65 20 3c 6f 70 65  ).# include <ope
0a50: 6e 73 73 6c 2f 63 6f 6e 66 2e 68 3e 0a 23 65 6e  nssl/conf.h>.#en
0a60: 64 69 66 0a 09 09 5d 2c 20 5b 0a 20 20 28 76 6f  dif...], [.  (vo
0a70: 69 64 29 53 53 4c 5f 6c 69 62 72 61 72 79 5f 69  id)SSL_library_i
0a80: 6e 69 74 28 29 3b 0a 20 20 53 53 4c 5f 6c 6f 61  nit();.  SSL_loa
0a90: 64 5f 65 72 72 6f 72 5f 73 74 72 69 6e 67 73 28  d_error_strings(
0aa0: 29 3b 0a 20 20 4f 50 45 4e 53 53 4c 5f 63 6f 6e  );.  OPENSSL_con
0ab0: 66 69 67 28 4e 55 4c 4c 29 3b 0a 09 09 5d 29 5d  fig(NULL);...])]
0ac0: 2c 20 5b 0a 09 09 41 43 5f 4d 53 47 5f 52 45 53  , [...AC_MSG_RES
0ad0: 55 4c 54 28 5b 79 65 73 5d 29 0a 09 5d 2c 20 5b  ULT([yes])..], [
0ae0: 0a 09 09 41 43 5f 4d 53 47 5f 52 45 53 55 4c 54  ...AC_MSG_RESULT
0af0: 28 5b 6e 6f 5d 29 0a 09 09 41 43 5f 4d 53 47 5f  ([no])...AC_MSG_
0b00: 45 52 52 4f 52 28 5b 55 6e 61 62 6c 65 20 74 6f  ERROR([Unable to
0b10: 20 63 6f 6d 70 69 6c 65 20 61 20 62 61 73 69 63   compile a basic
0b20: 20 70 72 6f 67 72 61 6d 20 75 73 69 6e 67 20 4f   program using O
0b30: 70 65 6e 53 53 4c 5d 29 0a 09 5d 29 0a 09 41 43  penSSL])..])..AC
0b40: 5f 4c 41 4e 47 5f 50 4f 50 28 5b 43 5d 29 0a 0a  _LANG_POP([C])..
0b50: 09 54 43 4c 54 4c 53 5f 53 53 4c 5f 4f 50 45 4e  .TCLTLS_SSL_OPEN
0b60: 53 53 4c 5f 43 48 45 43 4b 5f 50 52 4f 54 4f 5f  SSL_CHECK_PROTO_
0b70: 56 45 52 28 5b 74 63 6c 74 6c 73 5f 73 73 6c 5f  VER([tcltls_ssl_
0b80: 73 73 6c 32 5d 2c 20 5b 53 53 4c 76 32 5f 6d 65  ssl2], [SSLv2_me
0b90: 74 68 6f 64 5d 2c 20 5b 73 73 6c 76 32 5d 2c 20  thod], [sslv2], 
0ba0: 5b 4e 4f 5f 53 53 4c 32 5d 29 0a 09 54 43 4c 54  [NO_SSL2])..TCLT
0bb0: 4c 53 5f 53 53 4c 5f 4f 50 45 4e 53 53 4c 5f 43  LS_SSL_OPENSSL_C
0bc0: 48 45 43 4b 5f 50 52 4f 54 4f 5f 56 45 52 28 5b  HECK_PROTO_VER([
0bd0: 74 63 6c 74 6c 73 5f 73 73 6c 5f 73 73 6c 33 5d  tcltls_ssl_ssl3]
0be0: 2c 20 5b 53 53 4c 76 33 5f 6d 65 74 68 6f 64 5d  , [SSLv3_method]
0bf0: 2c 20 5b 73 73 6c 76 33 5d 2c 20 5b 4e 4f 5f 53  , [sslv3], [NO_S
0c00: 53 4c 33 5d 29 0a 09 54 43 4c 54 4c 53 5f 53 53  SL3])..TCLTLS_SS
0c10: 4c 5f 4f 50 45 4e 53 53 4c 5f 43 48 45 43 4b 5f  L_OPENSSL_CHECK_
0c20: 50 52 4f 54 4f 5f 56 45 52 28 5b 74 63 6c 74 6c  PROTO_VER([tcltl
0c30: 73 5f 73 73 6c 5f 74 6c 73 31 5f 30 5d 2c 20 5b  s_ssl_tls1_0], [
0c40: 54 4c 53 76 31 5f 6d 65 74 68 6f 64 5d 2c 20 5b  TLSv1_method], [
0c50: 74 6c 73 76 31 2e 30 5d 2c 20 5b 4e 4f 5f 54 4c  tlsv1.0], [NO_TL
0c60: 53 31 5d 29 0a 09 54 43 4c 54 4c 53 5f 53 53 4c  S1])..TCLTLS_SSL
0c70: 5f 4f 50 45 4e 53 53 4c 5f 43 48 45 43 4b 5f 50  _OPENSSL_CHECK_P
0c80: 52 4f 54 4f 5f 56 45 52 28 5b 74 63 6c 74 6c 73  ROTO_VER([tcltls
0c90: 5f 73 73 6c 5f 74 6c 73 31 5f 31 5d 2c 20 5b 54  _ssl_tls1_1], [T
0ca0: 4c 53 76 31 5f 31 5f 6d 65 74 68 6f 64 5d 2c 20  LSv1_1_method], 
0cb0: 5b 74 6c 73 76 31 2e 31 5d 2c 20 5b 4e 4f 5f 54  [tlsv1.1], [NO_T
0cc0: 4c 53 31 5f 31 5d 29 0a 09 54 43 4c 54 4c 53 5f  LS1_1])..TCLTLS_
0cd0: 53 53 4c 5f 4f 50 45 4e 53 53 4c 5f 43 48 45 43  SSL_OPENSSL_CHEC
0ce0: 4b 5f 50 52 4f 54 4f 5f 56 45 52 28 5b 74 63 6c  K_PROTO_VER([tcl
0cf0: 74 6c 73 5f 73 73 6c 5f 74 6c 73 31 5f 32 5d 2c  tls_ssl_tls1_2],
0d00: 20 5b 54 4c 53 76 31 5f 32 5f 6d 65 74 68 6f 64   [TLSv1_2_method
0d10: 5d 2c 20 5b 74 6c 73 76 31 2e 32 5d 2c 20 5b 4e  ], [tlsv1.2], [N
0d20: 4f 5f 54 4c 53 31 5f 32 5d 29 0a 0a 09 41 43 5f  O_TLS1_2])...AC_
0d30: 43 41 43 48 45 5f 56 41 4c 28 5b 74 63 6c 74 6c  CACHE_VAL([tcltl
0d40: 73 5f 63 76 5f 66 75 6e 63 5f 74 6c 73 65 78 74  s_cv_func_tlsext
0d50: 5f 68 6f 73 74 6e 61 6d 65 5d 2c 20 5b 0a 09 09  _hostname], [...
0d60: 41 43 5f 4c 41 4e 47 5f 50 55 53 48 28 43 29 0a  AC_LANG_PUSH(C).
0d70: 09 09 41 43 5f 4d 53 47 5f 43 48 45 43 4b 49 4e  ..AC_MSG_CHECKIN
0d80: 47 28 5b 66 6f 72 20 53 53 4c 5f 73 65 74 5f 74  G([for SSL_set_t
0d90: 6c 73 65 78 74 5f 68 6f 73 74 5f 6e 61 6d 65 5d  lsext_host_name]
0da0: 29 0a 09 09 41 43 5f 4c 49 4e 4b 5f 49 46 45 4c  )...AC_LINK_IFEL
0db0: 53 45 28 5b 41 43 5f 4c 41 4e 47 5f 50 52 4f 47  SE([AC_LANG_PROG
0dc0: 52 41 4d 28 5b 0a 23 69 6e 63 6c 75 64 65 20 3c  RAM([.#include <
0dd0: 6f 70 65 6e 73 73 6c 2f 73 73 6c 2e 68 3e 0a 23  openssl/ssl.h>.#
0de0: 69 66 20 28 53 53 4c 45 41 59 5f 56 45 52 53 49  if (SSLEAY_VERSI
0df0: 4f 4e 5f 4e 55 4d 42 45 52 20 3e 3d 20 30 78 30  ON_NUMBER >= 0x0
0e00: 39 30 37 30 30 30 4c 29 0a 23 20 69 6e 63 6c 75  907000L).# inclu
0e10: 64 65 20 3c 6f 70 65 6e 73 73 6c 2f 63 6f 6e 66  de <openssl/conf
0e20: 2e 68 3e 0a 23 65 6e 64 69 66 0a 09 09 09 5d 2c  .h>.#endif....],
0e30: 20 5b 0a 20 20 28 76 6f 69 64 29 53 53 4c 5f 73   [.  (void)SSL_s
0e40: 65 74 5f 74 6c 73 65 78 74 5f 68 6f 73 74 5f 6e  et_tlsext_host_n
0e50: 61 6d 65 28 28 76 6f 69 64 20 2a 29 20 30 2c 20  ame((void *) 0, 
0e60: 28 76 6f 69 64 20 2a 29 20 30 29 3b 0a 09 09 09  (void *) 0);....
0e70: 5d 29 5d 2c 20 5b 0a 09 09 09 41 43 5f 4d 53 47  ])], [....AC_MSG
0e80: 5f 52 45 53 55 4c 54 28 5b 79 65 73 5d 29 0a 09  _RESULT([yes])..
0e90: 09 09 74 63 6c 74 6c 73 5f 63 76 5f 66 75 6e 63  ..tcltls_cv_func
0ea0: 5f 74 6c 73 65 78 74 5f 68 6f 73 74 6e 61 6d 65  _tlsext_hostname
0eb0: 3d 27 79 65 73 27 0a 09 09 09 74 63 6c 74 6c 73  ='yes'....tcltls
0ec0: 5f 63 76 5f 66 75 6e 63 5f 74 6c 73 65 78 74 5f  _cv_func_tlsext_
0ed0: 68 6f 73 74 6e 61 6d 65 3d 27 6e 6f 27 0a 09 09  hostname='no'...
0ee0: 5d 2c 20 5b 0a 09 09 09 41 43 5f 4d 53 47 5f 52  ], [....AC_MSG_R
0ef0: 45 53 55 4c 54 28 5b 6e 6f 5d 29 0a 09 09 5d 29  ESULT([no])...])
0f00: 0a 09 09 41 43 5f 4c 41 4e 47 5f 50 4f 50 28 5b  ...AC_LANG_POP([
0f10: 43 5d 29 0a 0a 64 6e 6c 09 09 41 43 5f 43 48 45  C])..dnl..AC_CHE
0f20: 43 4b 5f 46 55 4e 43 28 53 53 4c 5f 73 65 74 5f  CK_FUNC(SSL_set_
0f30: 74 6c 73 65 78 74 5f 68 6f 73 74 5f 6e 61 6d 65  tlsext_host_name
0f40: 2c 20 5b 0a 64 6e 6c 09 09 5d 2c 20 5b 0a 64 6e  , [.dnl..], [.dn
0f50: 6c 09 09 5d 29 0a 09 5d 29 0a 0a 09 69 66 20 74  l..])..])...if t
0f60: 65 73 74 20 22 24 74 63 6c 74 6c 73 5f 63 76 5f  est "$tcltls_cv_
0f70: 66 75 6e 63 5f 74 6c 73 65 78 74 5f 68 6f 73 74  func_tlsext_host
0f80: 6e 61 6d 65 22 20 3d 20 27 6e 6f 27 3b 20 74 68  name" = 'no'; th
0f90: 65 6e 0a 09 09 41 43 5f 44 45 46 49 4e 45 28 5b  en...AC_DEFINE([
0fa0: 4f 50 45 4e 53 53 4c 5f 4e 4f 5f 54 4c 53 45 58  OPENSSL_NO_TLSEX
0fb0: 54 5d 2c 20 5b 31 5d 2c 20 5b 44 65 66 69 6e 65  T], [1], [Define
0fc0: 20 74 68 69 73 20 69 66 20 79 6f 75 72 20 4f 70   this if your Op
0fd0: 65 6e 53 53 4c 20 64 6f 65 73 20 6e 6f 74 20 73  enSSL does not s
0fe0: 75 70 70 6f 72 74 20 74 68 65 20 54 4c 53 20 45  upport the TLS E
0ff0: 78 74 65 6e 73 69 6f 6e 20 66 6f 72 20 53 4e 49  xtension for SNI
1000: 5d 29 0a 09 66 69 0a 0a 09 64 6e 6c 20 52 65 73  ])..fi...dnl Res
1010: 74 6f 72 65 20 63 6f 6d 70 69 6c 65 2d 61 6c 74  tore compile-alt
1020: 65 72 69 6e 67 20 76 61 72 69 61 62 6c 65 73 0a  ering variables.
1030: 09 4c 49 42 53 3d 22 24 7b 53 41 56 45 5f 4c 49  .LIBS="${SAVE_LI
1040: 42 53 7d 22 0a 09 43 46 4c 41 47 53 3d 22 24 7b  BS}"..CFLAGS="${
1050: 53 41 56 45 5f 43 46 4c 41 47 53 7d 22 0a 09 43  SAVE_CFLAGS}"..C
1060: 50 50 46 4c 41 47 53 3d 22 24 7b 53 41 56 45 5f  PPFLAGS="${SAVE_
1070: 43 50 50 46 4c 41 47 53 7d 22 0a 5d 29 0a        CPPFLAGS}".]).