libdexter-commits Mailing List for Libdexter
Brought to you by:
pkovacs
You can subscribe to this list here.
| 2006 |
Jan
|
Feb
|
Mar
|
Apr
|
May
(24) |
Jun
(10) |
Jul
(2) |
Aug
(51) |
Sep
(46) |
Oct
(52) |
Nov
(30) |
Dec
(40) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2007 |
Jan
(23) |
Feb
(10) |
Mar
(14) |
Apr
(23) |
May
(5) |
Jun
(10) |
Jul
(2) |
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
| 2011 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
(8) |
Oct
(1) |
Nov
|
Dec
|
| 2012 |
Jan
|
Feb
|
Mar
(5) |
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
|
From: <pk...@us...> - 2012-03-07 00:51:00
|
Revision: 397
http://libdexter.svn.sourceforge.net/libdexter/?rev=397&view=rev
Author: pkovacs
Date: 2012-03-07 00:50:54 +0000 (Wed, 07 Mar 2012)
Log Message:
-----------
update docs
Modified Paths:
--------------
libdexter/trunk/docs/reference/dexterplugin/dexterplugin-docs.sgml
Modified: libdexter/trunk/docs/reference/dexterplugin/dexterplugin-docs.sgml
===================================================================
--- libdexter/trunk/docs/reference/dexterplugin/dexterplugin-docs.sgml 2012-03-07 00:44:47 UTC (rev 396)
+++ libdexter/trunk/docs/reference/dexterplugin/dexterplugin-docs.sgml 2012-03-07 00:50:54 UTC (rev 397)
@@ -192,7 +192,7 @@
<appendixinfo>
<copyright>
- <year>2006-2011</year>
+ <year>2006-2012</year>
<holder>Philip Kovacs</holder>
</copyright>
</appendixinfo>
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <pk...@us...> - 2012-03-07 00:44:53
|
Revision: 396
http://libdexter.svn.sourceforge.net/libdexter/?rev=396&view=rev
Author: pkovacs
Date: 2012-03-07 00:44:47 +0000 (Wed, 07 Mar 2012)
Log Message:
-----------
update docs
Modified Paths:
--------------
libdexter/trunk/docs/reference/dexter/dexterd.sgml
Modified: libdexter/trunk/docs/reference/dexter/dexterd.sgml
===================================================================
--- libdexter/trunk/docs/reference/dexter/dexterd.sgml 2012-03-07 00:30:29 UTC (rev 395)
+++ libdexter/trunk/docs/reference/dexter/dexterd.sgml 2012-03-07 00:44:47 UTC (rev 396)
@@ -7,7 +7,7 @@
<refentry id="dexter-dexterd">
<refentryinfo>
<title>Libdexter Reference Manual</title>
- <date>March 20, 2007</date>
+ <date>March 6, 2012</date>
<copyright>
<year>2006-2012</year>
<holder>Philip Kovacs</holder>
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <pk...@us...> - 2012-03-07 00:30:35
|
Revision: 395
http://libdexter.svn.sourceforge.net/libdexter/?rev=395&view=rev
Author: pkovacs
Date: 2012-03-07 00:30:29 +0000 (Wed, 07 Mar 2012)
Log Message:
-----------
update docs
Modified Paths:
--------------
libdexter/trunk/docs/reference/dexter/dexter-docs.sgml
libdexter/trunk/docs/reference/dexter/dexterd.sgml
libdexter/trunk/docs/reference/dexterplugin/dexterplugin-docs.sgml
Modified: libdexter/trunk/docs/reference/dexter/dexter-docs.sgml
===================================================================
--- libdexter/trunk/docs/reference/dexter/dexter-docs.sgml 2012-03-06 23:58:18 UTC (rev 394)
+++ libdexter/trunk/docs/reference/dexter/dexter-docs.sgml 2012-03-07 00:30:29 UTC (rev 395)
@@ -34,7 +34,7 @@
<!-- <pubdate>&date;</pubdate> -->
<copyright>
- <year>2006-2011</year>
+ <year>2006-2012</year>
<holder>Philip Kovacs</holder>
</copyright>
@@ -155,7 +155,7 @@
<appendixinfo>
<copyright>
- <year>2006-2011</year>
+ <year>2006-2012</year>
<holder>Philip Kovacs</holder>
</copyright>
</appendixinfo>
@@ -202,7 +202,7 @@
</para>
<para>
- Fingerprint for key 0x147F2970:
+ Fingerprint for key 0x6C272C36:
<programlisting>&fingerprint;</programlisting>
</para>
</appendix>
Modified: libdexter/trunk/docs/reference/dexter/dexterd.sgml
===================================================================
--- libdexter/trunk/docs/reference/dexter/dexterd.sgml 2012-03-06 23:58:18 UTC (rev 394)
+++ libdexter/trunk/docs/reference/dexter/dexterd.sgml 2012-03-07 00:30:29 UTC (rev 395)
@@ -9,7 +9,7 @@
<title>Libdexter Reference Manual</title>
<date>March 20, 2007</date>
<copyright>
- <year>2006-2011</year>
+ <year>2006-2012</year>
<holder>Philip Kovacs</holder>
</copyright>
</refentryinfo>
Modified: libdexter/trunk/docs/reference/dexterplugin/dexterplugin-docs.sgml
===================================================================
--- libdexter/trunk/docs/reference/dexterplugin/dexterplugin-docs.sgml 2012-03-06 23:58:18 UTC (rev 394)
+++ libdexter/trunk/docs/reference/dexterplugin/dexterplugin-docs.sgml 2012-03-07 00:30:29 UTC (rev 395)
@@ -23,7 +23,7 @@
<!-- <pubdate>&date;</pubdate> -->
<copyright>
- <year>2006-2011</year>
+ <year>2006-2012</year>
<holder>Philip Kovacs</holder>
</copyright>
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <pk...@us...> - 2012-03-06 23:58:25
|
Revision: 394
http://libdexter.svn.sourceforge.net/libdexter/?rev=394&view=rev
Author: pkovacs
Date: 2012-03-06 23:58:18 +0000 (Tue, 06 Mar 2012)
Log Message:
-----------
update gpg signing key
Modified Paths:
--------------
libdexter/trunk/docs/reference/dexter/openpgp-fingerprint.xml
libdexter/trunk/docs/reference/dexter/openpgp-pubkey.xml
Modified: libdexter/trunk/docs/reference/dexter/openpgp-fingerprint.xml
===================================================================
--- libdexter/trunk/docs/reference/dexter/openpgp-fingerprint.xml 2012-03-06 23:36:44 UTC (rev 393)
+++ libdexter/trunk/docs/reference/dexter/openpgp-fingerprint.xml 2012-03-06 23:58:18 UTC (rev 394)
@@ -1 +1 @@
-2B57 00EB 8156 5B6D 09F9 A063 2E7A 5562 147F 2970
+5229 6A8F 8ECE C02A 4DE2 DE98 E097 E71C 6C27 2C36
Modified: libdexter/trunk/docs/reference/dexter/openpgp-pubkey.xml
===================================================================
--- libdexter/trunk/docs/reference/dexter/openpgp-pubkey.xml 2012-03-06 23:36:44 UTC (rev 393)
+++ libdexter/trunk/docs/reference/dexter/openpgp-pubkey.xml 2012-03-06 23:58:18 UTC (rev 394)
@@ -1,33 +1,79 @@
-----BEGIN PGP PUBLIC KEY BLOCK-----
-Version: GnuPG v1.4.6 (GNU/Linux)
+Version: GnuPG v2.0.17 (GNU/Linux)
-mQGiBEVmT24RBACFFw1zK4uQLacxGnpCddND0Y7p103rLhpEFd09Nbv0G20YeONz
-TmoXsBKbaLQeq7NEILv8I6itBuN2INImZ+SdgItXJvtpmkAVt9drS0Ju8RrOMOFZ
-nK7QOWKD0RhwSyLqpvoDC/BKzPT8cftRrPXx/h/8YVNdvboKWJZFgWlulwCg8OLt
-d0dGM06eswUUyfUYDgHDdksD/1wYvP2Eux65L8nJgJmDGZ1tbOjPPdeBvPr0vbxm
-WV3t0O4dzOgeUmYi97Ttko5mFECDEb5Gfao4iAJnxD2enavMZhZKJQKsC+MxoFH7
-7da7VN7/tqKoiJ+VWHbUVh2tEYjA7iZ8SAPGNXYOsPWzvVocSCmEKq/yIymbMQTa
-2ARQA/48LgaYTbqQLQRItE/V5fGhl9Ip36J9h7+vC2QvzniXWklO4SOuPUR8QohR
-XBGdiZ1TPMHgK2tAN1DChJLuKO2vVioX4Iq8VKl8RHgL74JH6jxqY+EJDby2trGO
-JUNDSZnnMqpWMirEaeJVoifLq4+T1RDyIRiKhFD7LI7Mg1L+T7QkUGhpbGlwIEtv
-dmFjcyA8a292YWNzcDNAY29tY2FzdC5uZXQ+iF8EExECAB8FAkVmT24CGwMGCwkI
-BwMCBBUCCAMDFgIBAh4BAheAAAoJEC56VWIUfylwHU8AoJbgJkkd0ISEO0KpYhSL
-SoSVmwnvAJ9SToFTjJg7thn2XzcWkCiKDVhRnLQtUGhpbGlwIEtvdmFjcyA8cGtv
-dmFjc0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+iF8EExECAB8FAkVnfVUCGwMGCwkI
-BwMCBBUCCAMDFgIBAh4BAheAAAoJEC56VWIUfylwwKQAnA2AUwT95TE6qXELHWVc
-8cnrhUjDAJ9YZmr0IZ5VcfQ/aWb/4v6+KGxK77kCDQRFZk93EAgAnXoOsQc8xgkP
-oQHL9VsE1FwGs23Y0rGjQFhYIQfVUXS4akUbVgcP31V1mMoxbe8i+Pu4X7QDciuA
-f9vU5TU2xIPeI1Tw1lXFOwgXXWQxHjVuz+gGWT5GG0aXoLjTw3o3lNGj6BKlI1VZ
-v10wynERymIGDFoKR4R47XqjKplcRHu6i/VUcp46oZclEkXeTG1b/UJRlChaDKHQ
-HjJB76rfhv+xKCtapybo88k+o8ZAE+hwD4Lkpe8+k4vpocnAJ/yGe43U4XjuzOHi
-4ayO9rbGyqDLPuq4TeARjlo7qbMmvUUWKafokjkijFG7XdFhC+sFN2P0KVIhqhFS
-Q7bUoPa+KwADBgf/dTUHaQmp2Iw+J4L7i8Ep07e2Lzkvs1I1NPFFV2cyMehFNDAx
-OwTFHZvtBHPCgg1KSM7rjTHKxuNhx+8ah6DsJuFV+YUBylrRbWQUt+hh5Yqdf0w1
-shYcqpm1NpmZ+A+belAnuuOQ9gX9vClvbqdvwUn/e6xW9l5ATmie1FypXLXiZWMr
-xhs1eNUqhOf7FhBPKfhXa55TNAIDKW4PcOCLc+yGnwMQ/iq2wnpacHOXSnesxeMy
-a+fiJ5wF8BjBXBJJ627dd6FTOLH3PzyghD/zyURmaoduR2QP9/9GWLEaxvBiymUY
-4eRSOHG4sQRF7v2AJR/LYlHcpcbxw3ZabxsAG4hJBBgRAgAJBQJFZk93AhsMAAoJ
-EC56VWIUfylw8IsAoKGBWT/TUxTOMPKrEq9GtPHVqx+cAJ4q8KLhYQOGvfFtLmOL
-fqJfCCsVXQ==
-=362K
+mQGiBEa9BpYRBADSIG73wJfMQKFWo4lkGAt8kRJ0eKHZvp0fFiAp0Sg3wPjiqKYn
+SNjGcQm+hsvFqH3uZrDxzekxu9OP/PnHUOjJlvwCZFqi2BlNanzUVJ445v1vLSa+
+JlK7rJoYubUuWRnt37fPxWjcISKfKwMB2E0NwZMENrPBunhpNCnTVglnowCghbNe
+OlW9wTVXAE5yYF27tMHOafMEAJXF5nPQyxw74/fyuHGviRs/fGhFOIcG8uCZQpQ8
+Rzp6DKxxkxMr1vh0ew7a7nNDboOWYgg5pNXx9njhR/ehiZ7FfIKhd7oeUaDhJdKH
+H9GqyN84VwahEn3rB5+xWMtgdjqbQ7CXid+hzoEVBIv573VXCtBsGuNdVU/3n8i1
+fOZsA/sFKYh0/rKWvSqEyLL7RywrIe6uaFWuQevEeZgHw+GI5PGEJyla8S3+5+qy
+yjAwmpVIA0b2dfXRUcU+IQqVR7ykbFXiPAoy4j8Ppsg7zrEIHQW3a/81ab0YBQGa
+UnUbxg7/x1cDgRaqVaPORKCXi8qiY+ZzG6w6GPt3cA3O9BNCZLQkUGhpbGlwIEtv
+dmFjcyA8a292YWNzcDNAY29tY2FzdC5uZXQ+iF8EExECAB8FAka9BpYCGwMGCwkI
+BwMCBBUCCAMDFgIBAh4BAheAAAoJEK+7ZNUxv1Zcpr0An0jy2b+cCgtcqTpye/hU
+uHZ71ieAAJ0XJL7/tcU9I60kQr5DP72i5HVh87kCDQRGvQaWEAgAhDAopS7ma0N/
+2kN6JtsoKpPEvE4BNn53ssiQYdLEHTGW7nIbvNC00nsMJrASRYbSdkJ6fYAFgjv5
+thBoP3e8A2ctNaZ4csMsKG+eytfUwAsUUXk8qMtSzue6mCklEYp13wrsjjIdaPxe
+qmnFt1dlOgK7ZfrOevRSMAkaRLMBiMF4dxJRj74BIZhsFlv9RYwh73qNQlLrJG4o
+4HFZBI7/QP+9eviul14iIykH5e3lvPXs36ybkflAm7S9JGVxpbMPynMqimx/fMhl
+04npA9cTSJeGs7SDTLJ2/Be8AULb4gRlgVs3S6Cqj2dHF5zUoVNbd03yKDULcpUj
+rb+nR9gAxwADBQf+JhhBD1iF41KaQjHZ406RmEsx3VG4w/6CViBEzswOZf9jxDqb
+sPEEX2476/h78pLAn3L2abXnE/kbzCMMQu7Q0829cfj46dVrBh40okXj8uOCEu7q
+XHd0vxrtFsdIZ+2nOS4jv3i4yoMGLGkguNTuFc59jjyGjimawZuSOEyXPt6n9T22
+48EBOM/qtummUlAyWtVd63Nf0YiiJegPJdrv+EU5y5cd/KbvUrWh3ZeMwTirFMuS
+PNkG34DvVeLCcA6gfwle11As4z+J3WLYw7aTORSjbP7fZ2qfk2X25HEpeajhYJrM
+k3Fny9TD3yKlbqLIIM5i1n99hOi48puh94w65IhJBBgRAgAJBQJGvQaWAhsMAAoJ
+EK+7ZNUxv1Zcfz4An0VCn55W8tr4506SOHKJmAm7TzWFAJ0S4P2R+aZ+Nu5xcnBg
+y3MPUEnfyZkBogRGvSYjEQQAvH5a/YDnv3hsBAMLrnr2DRm+RvcRCXHlvoTaf7BD
+BkfLfwrnFsiYmVHEdeyfWItAPGnZc1nMraMq9NYL0xmMd4Vf8JzP/zRRxMEaqfek
+r1BMPkFezxBjPNdVKZ8MB0x33GGadKMlsqGjnQi9GRI6Ycf3QPnwMXIXhSELLwl+
+mr8AoLE/Iio3REBxz3M0VL5PxFUTLDR1A/44I2LuNl91XF4yColj/igSMBUoAJjP
+vrW89XOFiMZznCIanUE6QSrupdlnyP73wACOsw6/ogMiMYve1vmdQox/1fj4hGkv
+NgnzY88SgNad3p5mG+0uqU2t3Ih4rEmBMSMfan+MQ5D/ewxly3RDZDNAErjfMyf/
+P3a03IMDV8/fbAP/TQKMUviCNYOUODLfRmdMgwi9R3K7FHNzLm7k7vaKWVLUD72d
+rDPnp6r5/p6gz6oR1SjE4NbnEFyirvKs1rQAU8TeCUgfg1XCUO/i//dXf/3aXCf1
+ILo0cMkekIN+CA7O6J255QOFQZLnJzc8gps/1vFbyzdd18jR1UMiOgDxOD60Q1Bo
+aWxpcCBLb3ZhY3MgKFBhY2thZ2UgU2lnbmluZyBLZXkpIDxwa292YWNzQHVzZXJz
+LnNvdXJjZWZvcmdlLm5ldD6IXwQTEQIAHwUCRr0mIwIbAwYLCQgHAwIEFQIIAwMW
+AgECHgECF4AACgkQ4JfnHGwnLDZHxwCff8KC4JLQLkUjGKROs2E/hghdl3MAoJF/
+YoNIY6835NfsR/O0kVS0lt/luQINBEa9JiMQCACLa6acntCO+02Lf/RCvIJc2tDO
+hPQx7sQzS3/CpU0uMtVYvyTSpCEIzmC9sNMZ6POhHfaPBlloU8CcUhccoTSt9u1g
+afLke5/Zvot7Jq6Z0yTtIh2LrnhQFkPqPaDrqOB6eW5PJnMDGryi0nQcaz/dusPS
+pwlBWf2OOhBVHhKS1Lnz48RNqkjPdxOZOtTAw8tWuz5W/JvHCk4wsn37nn79XwQ5
+UnDb+M1vKsWDHgeDFOtnKe3bP/uM3VRCX6Vncx/eQObhjzZ6W2QSU3G2/cydMtSt
+P5FH5SyCqnx9caKUbZCyk8V6ecJCv2XZJGq+cu0nvRyfjY9612SE/BDtVzmLAAMG
+B/4kU4ckB9/ZaeUtich49Ft9RykfAwkq7oqV8otaUebx/EoLZ7nnol8vaNF1t5Rm
+OfBOLakp4YSJ37wIEPMgIeIPEpA+sx32KFYottdeRbeGOVXVxngAwjtb1hbK/VIY
+9Ol6oiZQzKLRgaW+WF5q+Mbh8XQRLB/WLaMqTJIr+y0fZjD1Bf4i8ZXjkjvRxb0F
+bE2/YUcmssgFH1RZDFlGP9n0lRKuqj6oJHTBe8ft0EPtxZgoi6SIkJcYhBekFLwp
+EsSYCJ5ZrFjP46f27m85sS+wiz0JYZwiV2jGwhoIotE1LHHn6HReu8b3BELdLvG+
+l0yFhISjrM45j/ipgt6EAet+iEkEGBECAAkFAka9JiMCGwwACgkQ4JfnHGwnLDaa
+YQCeLBr3Y2k8gqMof/k3MYzNDzneVWMAni+YajUGMJjytNbyOEZju+vkFBkJmQGi
+BEiP4x0RBACjb59oOJVcjMTykJuXNCQietXCrWN+cT3nlhr1iO6bSrWAff3Il3PP
+uYaKhonQGM3GKdHxGAhVjpzES8Zwn1STnw7gsWE/TVYhELkpdCCaXOvfyZvWIwRF
+WzcOZSglNR3N7WT0mSwbzFZkJL00Oq4JiJipX2FXNRQO2fsBp1683wCgw+K/2FLA
+jimRSbLNQzeH3zSc668D/1zexgnmW6ptSs2YqQZu4HkUjHRvPIOQKRNijMXX29O1
+EC7zwmMxhN3UgZBVETuoe8tCHYPyuIvQdJL5ctgzW0zTnEuldi/LDnr/LLK9F6M1
+WUCbUhzwu7MGgHws3/JVFUKjOqLWauLrJWxDnEdFvK9GYVGmJtO0OsQDaRzXdt6P
+A/9Lbje8vkEIEf8mdunNwjuFgMcGXJ8XHIWkhWGpGwhgQJe4xAAxsplTHbFBGt2/
++96MzAofgGtoxRn0KiXNopx/3b1izXs/Cpzg4+DJWC7ywlNrtP83nZWPbkP8Q0kw
+FtBYjwC/OYL0s7hy4mzu8OuIj46GufvjUMfNkyVoCbyBR7QgUGhpbGlwIEtvdmFj
+cyA8cGhpbEBndG9waWNzLm9yZz6IZgQTEQIAJgIbAwYLCQgHAwIEFQIIAwQWAgMB
+Ah4BAheABQJOblutBQkF38oQAAoJECIfPlutIISC8QIAnR/t5nE+AUDGYp0ec4AY
+r/PeeFk1AJ9lrvenTlD4QdpYq00c1h2XGX38urkCDQRIj+MdEAgAwzy3BX9Q7ajC
+Hy+SWDCv+chdzQFipsbCbqsZmm5vM4DoSt0PcX++2nEQt3jyacyx8t8JZiP9SB5u
+vvupRaD1mkXJvsqVlGFRLI5KN9VWSOPagx5/5ZybhRTIXnscSFqbd42LQulkKY/8
+KEtTGWmHuhcO5bZrsONx7zs/XmAOBJCbQU5ealy9cBkndUcdj6RD7Ncsjjpw4tw2
+JEMIfDZ39yRmPoeivgyqCQLXBSi7AwmIiLxwRfoCzVRDktQ2XzvCMsSfUP63oMfX
+reN4o0gJZAC728lPc6/aW+hDd9tiK7LWGAyKci4RcqBTKek1unh/Cvr5ylN/HK5v
+YiVdPtLq4wADBgf9F017PYKhySi6hoWqHcIbu/+XjGxPjVp1o0YLxuH1ADaaZnM8
+sMdcb23Ywa4+O+9EG/jN+a+MJjxfixgLzQ2XJ5rGyhra9TYlZnPIR/7p62Lf3LvB
+1vGHl9ETjvqjsKg6nCsqC3pFM0F2wzI/TCoi5zkjYQiEHAqvTgQsJsuHV3zqZg/+
+DVUH4asfpYgEe8FV4HeNwPO+4viOYRTGmnUkA9VCwQQkbXqo9+KMdh1nE7eKdeBz
+d0ZSd45tr39/x7nGpvvB1KT/lQggOAUZsrCN04WSgOKSmv8GHT6URZPIXWrOqJs6
+gOsfLV4dSad9gqY/CwAkHGkyfx9HtlKrvgidW4hPBBgRAgAPAhsMBQJOblwGBQkF
+38ppAAoJECIfPlutIISC0SYAn1CUIrUXv1hZoLerj+saO2P4x0idAJ9FZndhin8O
+ppR/bd71x6mMD0B7yQ==
+=rQau
-----END PGP PUBLIC KEY BLOCK-----
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <pk...@us...> - 2012-03-06 23:36:54
|
Revision: 393
http://libdexter.svn.sourceforge.net/libdexter/?rev=393&view=rev
Author: pkovacs
Date: 2012-03-06 23:36:44 +0000 (Tue, 06 Mar 2012)
Log Message:
-----------
version 0.2.1
Modified Paths:
--------------
libdexter/trunk/ChangeLog
libdexter/trunk/Makefile.am
libdexter/trunk/autogen.sh
libdexter/trunk/configure.ac.in
libdexter/trunk/data/Makefile.am
libdexter/trunk/dexter/Makefile.am
libdexter/trunk/dexter/abicheck.sh
libdexter/trunk/dexter/dexter-channel-internal.h
libdexter/trunk/dexter/dexter-channel-object.c
libdexter/trunk/dexter/dexter-channel-object.h
libdexter/trunk/dexter/dexter-channel.c
libdexter/trunk/dexter/dexter-channel.h
libdexter/trunk/dexter/dexter-config.c
libdexter/trunk/dexter/dexter-config.h
libdexter/trunk/dexter/dexter-event-loop.c
libdexter/trunk/dexter/dexter-event-loop.h
libdexter/trunk/dexter/dexter-factory.c
libdexter/trunk/dexter/dexter-factory.h
libdexter/trunk/dexter/dexter-hash.c
libdexter/trunk/dexter/dexter-hash.h
libdexter/trunk/dexter/dexter-log.c
libdexter/trunk/dexter/dexter-log.h
libdexter/trunk/dexter/dexter-messages.c
libdexter/trunk/dexter/dexter-messages.h
libdexter/trunk/dexter/dexter-module.c
libdexter/trunk/dexter/dexter-module.h
libdexter/trunk/dexter/dexter-msgframer.c
libdexter/trunk/dexter/dexter-msgframer.h
libdexter/trunk/dexter/dexter-network.c
libdexter/trunk/dexter/dexter-network.h
libdexter/trunk/dexter/dexter-private.c
libdexter/trunk/dexter/dexter-private.h
libdexter/trunk/dexter/dexter-sampler-internal.h
libdexter/trunk/dexter/dexter-sampler.c
libdexter/trunk/dexter/dexter-sampler.h
libdexter/trunk/dexter/dexter-server-internal.h
libdexter/trunk/dexter/dexter-server.c
libdexter/trunk/dexter/dexter-server.h
libdexter/trunk/dexter/dexter-servercomm.c
libdexter/trunk/dexter/dexter-servercomm.h
libdexter/trunk/dexter/dexter-service-broker-internal.h
libdexter/trunk/dexter/dexter-service-broker.c
libdexter/trunk/dexter/dexter-service-broker.h
libdexter/trunk/dexter/dexter-threadpool.c
libdexter/trunk/dexter/dexter-threadpool.h
libdexter/trunk/dexter/dexter-timedsampler-internal.h
libdexter/trunk/dexter/dexter-timedsampler.c
libdexter/trunk/dexter/dexter-timedsampler.h
libdexter/trunk/dexter/dexter-tls-common.c
libdexter/trunk/dexter/dexter-tls-gnutls.c
libdexter/trunk/dexter/dexter-tls.h
libdexter/trunk/dexter/dexter-version.c
libdexter/trunk/dexter/dexter-version.h
libdexter/trunk/dexter/dexter.c
libdexter/trunk/dexter/dexter.h
libdexter/trunk/dexter/dexter.symbols
libdexter/trunk/dexter/make-dexter-alias.pl
libdexter/trunk/dexter/pltcheck.sh
libdexter/trunk/dexterplugin/Makefile.am
libdexter/trunk/dexterplugin/abicheck.sh
libdexter/trunk/dexterplugin/dexterplugin-iconfig.c
libdexter/trunk/dexterplugin/dexterplugin-iconfig.h
libdexter/trunk/dexterplugin/dexterplugin-imain.h
libdexter/trunk/dexterplugin/dexterplugin-isampler.c
libdexter/trunk/dexterplugin/dexterplugin-isampler.h
libdexter/trunk/dexterplugin/dexterplugin-ithreadpool.c
libdexter/trunk/dexterplugin/dexterplugin-ithreadpool.h
libdexter/trunk/dexterplugin/dexterplugin-iversion.c
libdexter/trunk/dexterplugin/dexterplugin-iversion.h.in
libdexter/trunk/dexterplugin/dexterplugin-macros.h
libdexter/trunk/dexterplugin/dexterplugin-main.c
libdexter/trunk/dexterplugin/dexterplugin-main.h
libdexter/trunk/dexterplugin/dexterplugin-sampler.c
libdexter/trunk/dexterplugin/dexterplugin-sampler.h
libdexter/trunk/dexterplugin/dexterplugin-serialize.c
libdexter/trunk/dexterplugin/dexterplugin-serialize.h
libdexter/trunk/dexterplugin/dexterplugin-service.c
libdexter/trunk/dexterplugin/dexterplugin-service.h
libdexter/trunk/dexterplugin/dexterplugin.h
libdexter/trunk/dexterplugin/dexterplugin.symbols
libdexter/trunk/dexterplugin/make-dexterplugin-alias.pl
libdexter/trunk/dexterplugin/pltcheck.sh
libdexter/trunk/docs/reference/Makefile.am
libdexter/trunk/docs/reference/dexter/Makefile.am
libdexter/trunk/docs/reference/dexter/building.sgml
libdexter/trunk/docs/reference/dexter/compiling.sgml
libdexter/trunk/docs/reference/dexter/config-example.sgml
libdexter/trunk/docs/reference/dexter/config-structure.sgml
libdexter/trunk/docs/reference/dexter/dexterd.sgml
libdexter/trunk/docs/reference/dexter/plugins-current.sgml
libdexter/trunk/docs/reference/dexter/plugins-manual.sgml
libdexter/trunk/docs/reference/dexter/resources.sgml
libdexter/trunk/docs/reference/dexterplugin/Makefile.am
libdexter/trunk/libaux/Makefile.am
libdexter/trunk/libaux/daemon.c
libdexter/trunk/libaux/daemon.h
libdexter/trunk/plugins/Makefile.am
libdexter/trunk/plugins/dxt-null/Makefile.am
libdexter/trunk/plugins/dxt-null/dxt-null-export.c
libdexter/trunk/plugins/dxt-null/dxt-null-public.h
libdexter/trunk/plugins/dxt-null/dxt-null.c
libdexter/trunk/plugins/dxt-null/dxt-null.h
libdexter/trunk/programs/Makefile.am
libdexter/trunk/programs/dexterd/Makefile.am
libdexter/trunk/programs/dexterd/dexterd.c
Removed Paths:
-------------
distro/portage/net-libs/dxt-plugins-audacious/
Modified: libdexter/trunk/ChangeLog
===================================================================
--- libdexter/trunk/ChangeLog 2011-10-04 23:55:16 UTC (rev 392)
+++ libdexter/trunk/ChangeLog 2012-03-06 23:36:44 UTC (rev 393)
@@ -1,3 +1,6 @@
+2012-03-06 pkovacs
+ * Libdexter 0.2.1 released.
+
2911-10-04 pkovacs
* Bumped Glib requirement to 2.30, replacing deprecated g_atomic_int_exchange_and_add()
with g_atomic_int_add().
Modified: libdexter/trunk/Makefile.am
===================================================================
--- libdexter/trunk/Makefile.am 2011-10-04 23:55:16 UTC (rev 392)
+++ libdexter/trunk/Makefile.am 2012-03-06 23:36:44 UTC (rev 393)
@@ -1,7 +1,7 @@
# $Id$
#
# libdexter - a plugin-based, distributed sampling library.
-# Copyright (C) 2006-2011 Philip Kovacs <pk...@us...>.
+# Copyright (C) 2006-2012 Philip Kovacs <pk...@us...>.
#
# This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public License
Modified: libdexter/trunk/autogen.sh
===================================================================
--- libdexter/trunk/autogen.sh 2011-10-04 23:55:16 UTC (rev 392)
+++ libdexter/trunk/autogen.sh 2012-03-06 23:36:44 UTC (rev 393)
@@ -3,7 +3,7 @@
# $Id$
#
# libdexter - a plugin-based, distributed sampling library.
-# Copyright (C) 2006-2011 Philip Kovacs <pk...@us...>.
+# Copyright (C) 2006-2012 Philip Kovacs <pk...@us...>.
#
# This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public License
Modified: libdexter/trunk/configure.ac.in
===================================================================
--- libdexter/trunk/configure.ac.in 2011-10-04 23:55:16 UTC (rev 392)
+++ libdexter/trunk/configure.ac.in 2012-03-06 23:36:44 UTC (rev 393)
@@ -1,6 +1,6 @@
dnl $Id$
dnl
-dnl Copyright (C) 2006-2011 Philip Kovacs <pk...@us...>
+dnl Copyright (C) 2006-2012 Philip Kovacs <pk...@us...>
dnl
@@ -11,7 +11,7 @@
m4_define([dexter_version_minor], [2])
m4_define([dexter_version_micro], [1])
m4_define([dexter_version_info], [3:0:0])
-m4_define([dexter_version_tag], [svn]) dnl [] for releases
+m4_define([dexter_version_tag], []) dnl [] for releases
m4_define([dexter_version_revision], [r@REVISION@])
m4_define([dexter_version],
[dexter_version_major().dexter_version_minor().dexter_version_micro()ifelse(
@@ -24,7 +24,7 @@
dnl * Initialize autoconf *
dnl ***********************
AC_PREREQ([2.68])
-AC_COPYRIGHT([Copyright (C) 2006-2011 Philip Kovacs <pk...@us...>])
+AC_COPYRIGHT([Copyright (C) 2006-2012 Philip Kovacs <pk...@us...>])
AC_INIT([libdexter],[dexter_version()],[pk...@us...])
AC_CANONICAL_TARGET()
AC_REVISION([$Id$])
@@ -37,7 +37,8 @@
dnl ***********************
dnl * Initialize automake *
dnl ***********************
-AM_INIT_AUTOMAKE
+AM_INIT_AUTOMAKE([1.8 tar-ustar dist-bzip2 no-dist-gzip])
+AM_SILENT_RULES([yes])
AM_MAINTAINER_MODE()
Modified: libdexter/trunk/data/Makefile.am
===================================================================
--- libdexter/trunk/data/Makefile.am 2011-10-04 23:55:16 UTC (rev 392)
+++ libdexter/trunk/data/Makefile.am 2012-03-06 23:36:44 UTC (rev 393)
@@ -1,7 +1,7 @@
# $Id$
#
# libdexter - a plugin-based, distributed sampling library.
-# Copyright (C) 2006-2011 Philip Kovacs <pk...@us...>.
+# Copyright (C) 2006-2012 Philip Kovacs <pk...@us...>.
#
# This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public License
Modified: libdexter/trunk/dexter/Makefile.am
===================================================================
--- libdexter/trunk/dexter/Makefile.am 2011-10-04 23:55:16 UTC (rev 392)
+++ libdexter/trunk/dexter/Makefile.am 2012-03-06 23:36:44 UTC (rev 393)
@@ -1,7 +1,7 @@
# $Id$
#
# libdexter - a plugin-based, distributed sampling library.
-# Copyright (C) 2006-2011 Philip Kovacs <pk...@us...>.
+# Copyright (C) 2006-2012 Philip Kovacs <pk...@us...>.
#
# This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public License
Modified: libdexter/trunk/dexter/abicheck.sh
===================================================================
--- libdexter/trunk/dexter/abicheck.sh 2011-10-04 23:55:16 UTC (rev 392)
+++ libdexter/trunk/dexter/abicheck.sh 2012-03-06 23:36:44 UTC (rev 393)
@@ -3,7 +3,7 @@
# $Id$
#
# Copyright (c) 2004 The GLib Development Team
-# Copyright (C) 2006-2011 Philip Kovacs <pk...@us...>.
+# Copyright (C) 2006-2012 Philip Kovacs <pk...@us...>.
#
# This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public License
Modified: libdexter/trunk/dexter/dexter-channel-internal.h
===================================================================
--- libdexter/trunk/dexter/dexter-channel-internal.h 2011-10-04 23:55:16 UTC (rev 392)
+++ libdexter/trunk/dexter/dexter-channel-internal.h 2012-03-06 23:36:44 UTC (rev 393)
@@ -1,7 +1,7 @@
/* $Id$ */
/*
* libdexter - a plugin-based, distributed sampling library.
- * Copyright (C) 2006-2011 Philip Kovacs <pk...@us...>.
+ * Copyright (C) 2006-2012 Philip Kovacs <pk...@us...>.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public License
Modified: libdexter/trunk/dexter/dexter-channel-object.c
===================================================================
--- libdexter/trunk/dexter/dexter-channel-object.c 2011-10-04 23:55:16 UTC (rev 392)
+++ libdexter/trunk/dexter/dexter-channel-object.c 2012-03-06 23:36:44 UTC (rev 393)
@@ -1,7 +1,7 @@
/* $Id$ */
/*
* libdexter - a plugin-based, distributed sampling library.
- * Copyright (C) 2006-2011 Philip Kovacs <pk...@us...>.
+ * Copyright (C) 2006-2012 Philip Kovacs <pk...@us...>.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public License
Modified: libdexter/trunk/dexter/dexter-channel-object.h
===================================================================
--- libdexter/trunk/dexter/dexter-channel-object.h 2011-10-04 23:55:16 UTC (rev 392)
+++ libdexter/trunk/dexter/dexter-channel-object.h 2012-03-06 23:36:44 UTC (rev 393)
@@ -1,7 +1,7 @@
/* $Id$ */
/*
* libdexter - a plugin-based, distributed sampling library.
- * Copyright (C) 2006-2011 Philip Kovacs <pk...@us...>.
+ * Copyright (C) 2006-2012 Philip Kovacs <pk...@us...>.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public License
Modified: libdexter/trunk/dexter/dexter-channel.c
===================================================================
--- libdexter/trunk/dexter/dexter-channel.c 2011-10-04 23:55:16 UTC (rev 392)
+++ libdexter/trunk/dexter/dexter-channel.c 2012-03-06 23:36:44 UTC (rev 393)
@@ -1,7 +1,7 @@
/* $Id$ */
/*
* libdexter - a plugin-based, distributed sampling library.
- * Copyright (C) 2006-2011 Philip Kovacs <pk...@us...>.
+ * Copyright (C) 2006-2012 Philip Kovacs <pk...@us...>.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public License
Modified: libdexter/trunk/dexter/dexter-channel.h
===================================================================
--- libdexter/trunk/dexter/dexter-channel.h 2011-10-04 23:55:16 UTC (rev 392)
+++ libdexter/trunk/dexter/dexter-channel.h 2012-03-06 23:36:44 UTC (rev 393)
@@ -1,7 +1,7 @@
/* $Id$ */
/*
* libdexter - a plugin-based, distributed sampling library.
- * Copyright (C) 2006-2011 Philip Kovacs <pk...@us...>.
+ * Copyright (C) 2006-2012 Philip Kovacs <pk...@us...>.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public License
Modified: libdexter/trunk/dexter/dexter-config.c
===================================================================
--- libdexter/trunk/dexter/dexter-config.c 2011-10-04 23:55:16 UTC (rev 392)
+++ libdexter/trunk/dexter/dexter-config.c 2012-03-06 23:36:44 UTC (rev 393)
@@ -1,7 +1,7 @@
/* $Id$ */
/*
* libdexter - a plugin-based, distributed sampling library.
- * Copyright (C) 2006-2011 Philip Kovacs <pk...@us...>.
+ * Copyright (C) 2006-2012 Philip Kovacs <pk...@us...>.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public License
Modified: libdexter/trunk/dexter/dexter-config.h
===================================================================
--- libdexter/trunk/dexter/dexter-config.h 2011-10-04 23:55:16 UTC (rev 392)
+++ libdexter/trunk/dexter/dexter-config.h 2012-03-06 23:36:44 UTC (rev 393)
@@ -1,7 +1,7 @@
/* $Id$ */
/*
* libdexter - a plugin-based, distributed sampling library.
- * Copyright (C) 2006-2011 Philip Kovacs <pk...@us...>.
+ * Copyright (C) 2006-2012 Philip Kovacs <pk...@us...>.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public License
Modified: libdexter/trunk/dexter/dexter-event-loop.c
===================================================================
--- libdexter/trunk/dexter/dexter-event-loop.c 2011-10-04 23:55:16 UTC (rev 392)
+++ libdexter/trunk/dexter/dexter-event-loop.c 2012-03-06 23:36:44 UTC (rev 393)
@@ -1,7 +1,7 @@
/* $Id$ */
/*
* libdexter - a plugin-based, distributed sampling library.
- * Copyright (C) 2006-2011 Philip Kovacs <pk...@us...>.
+ * Copyright (C) 2006-2012 Philip Kovacs <pk...@us...>.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public License
Modified: libdexter/trunk/dexter/dexter-event-loop.h
===================================================================
--- libdexter/trunk/dexter/dexter-event-loop.h 2011-10-04 23:55:16 UTC (rev 392)
+++ libdexter/trunk/dexter/dexter-event-loop.h 2012-03-06 23:36:44 UTC (rev 393)
@@ -1,7 +1,7 @@
/* $Id$ */
/*
* libdexter - a plugin-based, distributed sampling library.
- * Copyright (C) 2006-2011 Philip Kovacs <pk...@us...>.
+ * Copyright (C) 2006-2012 Philip Kovacs <pk...@us...>.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public License
Modified: libdexter/trunk/dexter/dexter-factory.c
===================================================================
--- libdexter/trunk/dexter/dexter-factory.c 2011-10-04 23:55:16 UTC (rev 392)
+++ libdexter/trunk/dexter/dexter-factory.c 2012-03-06 23:36:44 UTC (rev 393)
@@ -1,7 +1,7 @@
/* $Id$ */
/*
* libdexter - a plugin-based, distributed sampling library.
- * Copyright (C) 2006-2011 Philip Kovacs <pk...@us...>.
+ * Copyright (C) 2006-2012 Philip Kovacs <pk...@us...>.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public License
Modified: libdexter/trunk/dexter/dexter-factory.h
===================================================================
--- libdexter/trunk/dexter/dexter-factory.h 2011-10-04 23:55:16 UTC (rev 392)
+++ libdexter/trunk/dexter/dexter-factory.h 2012-03-06 23:36:44 UTC (rev 393)
@@ -1,7 +1,7 @@
/* $Id$ */
/*
* libdexter - a plugin-based, distributed sampling library.
- * Copyright (C) 2006-2011 Philip Kovacs <pk...@us...>.
+ * Copyright (C) 2006-2012 Philip Kovacs <pk...@us...>.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public License
Modified: libdexter/trunk/dexter/dexter-hash.c
===================================================================
--- libdexter/trunk/dexter/dexter-hash.c 2011-10-04 23:55:16 UTC (rev 392)
+++ libdexter/trunk/dexter/dexter-hash.c 2012-03-06 23:36:44 UTC (rev 393)
@@ -1,7 +1,7 @@
/* $Id$ */
/*
* libdexter - a plugin-based, distributed sampling library.
- * Copyright (C) 2006-2011 Philip Kovacs <pk...@us...>.
+ * Copyright (C) 2006-2012 Philip Kovacs <pk...@us...>.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public License
Modified: libdexter/trunk/dexter/dexter-hash.h
===================================================================
--- libdexter/trunk/dexter/dexter-hash.h 2011-10-04 23:55:16 UTC (rev 392)
+++ libdexter/trunk/dexter/dexter-hash.h 2012-03-06 23:36:44 UTC (rev 393)
@@ -1,7 +1,7 @@
/* $Id$ */
/*
* libdexter - a plugin-based, distributed sampling library.
- * Copyright (C) 2006-2011 Philip Kovacs <pk...@us...>.
+ * Copyright (C) 2006-2012 Philip Kovacs <pk...@us...>.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public License
Modified: libdexter/trunk/dexter/dexter-log.c
===================================================================
--- libdexter/trunk/dexter/dexter-log.c 2011-10-04 23:55:16 UTC (rev 392)
+++ libdexter/trunk/dexter/dexter-log.c 2012-03-06 23:36:44 UTC (rev 393)
@@ -1,7 +1,7 @@
/* $Id$ */
/*
* libdexter - a plugin-based, distributed sampling library.
- * Copyright (C) 2006-2011 Philip Kovacs <pk...@us...>.
+ * Copyright (C) 2006-2012 Philip Kovacs <pk...@us...>.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public License
Modified: libdexter/trunk/dexter/dexter-log.h
===================================================================
--- libdexter/trunk/dexter/dexter-log.h 2011-10-04 23:55:16 UTC (rev 392)
+++ libdexter/trunk/dexter/dexter-log.h 2012-03-06 23:36:44 UTC (rev 393)
@@ -1,7 +1,7 @@
/* $Id$ */
/*
* libdexter - a plugin-based, distributed sampling library.
- * Copyright (C) 2006-2011 Philip Kovacs <pk...@us...>.
+ * Copyright (C) 2006-2012 Philip Kovacs <pk...@us...>.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public License
Modified: libdexter/trunk/dexter/dexter-messages.c
===================================================================
--- libdexter/trunk/dexter/dexter-messages.c 2011-10-04 23:55:16 UTC (rev 392)
+++ libdexter/trunk/dexter/dexter-messages.c 2012-03-06 23:36:44 UTC (rev 393)
@@ -1,7 +1,7 @@
/* $Id$ */
/*
* libdexter - a plugin-based, distributed sampling library.
- * Copyright (C) 2006-2011 Philip Kovacs <pk...@us...>.
+ * Copyright (C) 2006-2012 Philip Kovacs <pk...@us...>.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public License
Modified: libdexter/trunk/dexter/dexter-messages.h
===================================================================
--- libdexter/trunk/dexter/dexter-messages.h 2011-10-04 23:55:16 UTC (rev 392)
+++ libdexter/trunk/dexter/dexter-messages.h 2012-03-06 23:36:44 UTC (rev 393)
@@ -1,7 +1,7 @@
/* $Id$ */
/*
* libdexter - a plugin-based, distributed sampling library.
- * Copyright (C) 2006-2011 Philip Kovacs <pk...@us...>.
+ * Copyright (C) 2006-2012 Philip Kovacs <pk...@us...>.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public License
Modified: libdexter/trunk/dexter/dexter-module.c
===================================================================
--- libdexter/trunk/dexter/dexter-module.c 2011-10-04 23:55:16 UTC (rev 392)
+++ libdexter/trunk/dexter/dexter-module.c 2012-03-06 23:36:44 UTC (rev 393)
@@ -1,7 +1,7 @@
/* $Id$ */
/*
* libdexter - a plugin-based, distributed sampling library.
- * Copyright (C) 2006-2011 Philip Kovacs <pk...@us...>.
+ * Copyright (C) 2006-2012 Philip Kovacs <pk...@us...>.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public License
Modified: libdexter/trunk/dexter/dexter-module.h
===================================================================
--- libdexter/trunk/dexter/dexter-module.h 2011-10-04 23:55:16 UTC (rev 392)
+++ libdexter/trunk/dexter/dexter-module.h 2012-03-06 23:36:44 UTC (rev 393)
@@ -1,7 +1,7 @@
/* $Id$ */
/*
* libdexter - a plugin-based, distributed sampling library.
- * Copyright (C) 2006-2011 Philip Kovacs <pk...@us...>.
+ * Copyright (C) 2006-2012 Philip Kovacs <pk...@us...>.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public License
Modified: libdexter/trunk/dexter/dexter-msgframer.c
===================================================================
--- libdexter/trunk/dexter/dexter-msgframer.c 2011-10-04 23:55:16 UTC (rev 392)
+++ libdexter/trunk/dexter/dexter-msgframer.c 2012-03-06 23:36:44 UTC (rev 393)
@@ -1,7 +1,7 @@
/* $Id$ */
/*
* libdexter - a plugin-based, distributed sampling library.
- * Copyright (C) 2006-2011 Philip Kovacs <pk...@us...>.
+ * Copyright (C) 2006-2012 Philip Kovacs <pk...@us...>.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public License
Modified: libdexter/trunk/dexter/dexter-msgframer.h
===================================================================
--- libdexter/trunk/dexter/dexter-msgframer.h 2011-10-04 23:55:16 UTC (rev 392)
+++ libdexter/trunk/dexter/dexter-msgframer.h 2012-03-06 23:36:44 UTC (rev 393)
@@ -1,7 +1,7 @@
/* $Id$ */
/*
* libdexter - a plugin-based, distributed sampling library.
- * Copyright (C) 2006-2011 Philip Kovacs <pk...@us...>.
+ * Copyright (C) 2006-2012 Philip Kovacs <pk...@us...>.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public License
Modified: libdexter/trunk/dexter/dexter-network.c
===================================================================
--- libdexter/trunk/dexter/dexter-network.c 2011-10-04 23:55:16 UTC (rev 392)
+++ libdexter/trunk/dexter/dexter-network.c 2012-03-06 23:36:44 UTC (rev 393)
@@ -1,6 +1,6 @@
/*
* libdexter - a plugin-based, distributed sampling library.
- * Copyright (C) 2006-2011 Philip Kovacs <pk...@us...>.
+ * Copyright (C) 2006-2012 Philip Kovacs <pk...@us...>.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public License
Modified: libdexter/trunk/dexter/dexter-network.h
===================================================================
--- libdexter/trunk/dexter/dexter-network.h 2011-10-04 23:55:16 UTC (rev 392)
+++ libdexter/trunk/dexter/dexter-network.h 2012-03-06 23:36:44 UTC (rev 393)
@@ -1,7 +1,7 @@
/* $Id$ */
/*
* libdexter - a plugin-based, distributed sampling library.
- * Copyright (C) 2006-2011 Philip Kovacs <pk...@us...>.
+ * Copyright (C) 2006-2012 Philip Kovacs <pk...@us...>.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public License
Modified: libdexter/trunk/dexter/dexter-private.c
===================================================================
--- libdexter/trunk/dexter/dexter-private.c 2011-10-04 23:55:16 UTC (rev 392)
+++ libdexter/trunk/dexter/dexter-private.c 2012-03-06 23:36:44 UTC (rev 393)
@@ -1,7 +1,7 @@
/* $Id$ */
/*
* libdexter - a plugin-based, distributed sampling library.
- * Copyright (C) 2006-2011 Philip Kovacs <pk...@us...>.
+ * Copyright (C) 2006-2012 Philip Kovacs <pk...@us...>.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public License
Modified: libdexter/trunk/dexter/dexter-private.h
===================================================================
--- libdexter/trunk/dexter/dexter-private.h 2011-10-04 23:55:16 UTC (rev 392)
+++ libdexter/trunk/dexter/dexter-private.h 2012-03-06 23:36:44 UTC (rev 393)
@@ -1,7 +1,7 @@
/* $Id$ */
/*
* libdexter - a plugin-based, distributed sampling library.
- * Copyright (C) 2006-2011 Philip Kovacs <pk...@us...>.
+ * Copyright (C) 2006-2012 Philip Kovacs <pk...@us...>.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public License
Modified: libdexter/trunk/dexter/dexter-sampler-internal.h
===================================================================
--- libdexter/trunk/dexter/dexter-sampler-internal.h 2011-10-04 23:55:16 UTC (rev 392)
+++ libdexter/trunk/dexter/dexter-sampler-internal.h 2012-03-06 23:36:44 UTC (rev 393)
@@ -1,7 +1,7 @@
/* $Id$ */
/*
* libdexter - a plugin-based, distributed sampling library.
- * Copyright (C) 2006-2011 Philip Kovacs <pk...@us...>.
+ * Copyright (C) 2006-2012 Philip Kovacs <pk...@us...>.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public License
Modified: libdexter/trunk/dexter/dexter-sampler.c
===================================================================
--- libdexter/trunk/dexter/dexter-sampler.c 2011-10-04 23:55:16 UTC (rev 392)
+++ libdexter/trunk/dexter/dexter-sampler.c 2012-03-06 23:36:44 UTC (rev 393)
@@ -1,7 +1,7 @@
/* $Id$ */
/*
* libdexter - a plugin-based, distributed sampling library.
- * Copyright (C) 2006-2011 Philip Kovacs <pk...@us...>.
+ * Copyright (C) 2006-2012 Philip Kovacs <pk...@us...>.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public License
Modified: libdexter/trunk/dexter/dexter-sampler.h
===================================================================
--- libdexter/trunk/dexter/dexter-sampler.h 2011-10-04 23:55:16 UTC (rev 392)
+++ libdexter/trunk/dexter/dexter-sampler.h 2012-03-06 23:36:44 UTC (rev 393)
@@ -1,7 +1,7 @@
/* $Id$ */
/*
* libdexter - a plugin-based, distributed sampling library.
- * Copyright (C) 2006-2011 Philip Kovacs <pk...@us...>.
+ * Copyright (C) 2006-2012 Philip Kovacs <pk...@us...>.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public License
Modified: libdexter/trunk/dexter/dexter-server-internal.h
===================================================================
--- libdexter/trunk/dexter/dexter-server-internal.h 2011-10-04 23:55:16 UTC (rev 392)
+++ libdexter/trunk/dexter/dexter-server-internal.h 2012-03-06 23:36:44 UTC (rev 393)
@@ -1,7 +1,7 @@
/* $Id$ */
/*
* libdexter - a plugin-based, distributed sampling library.
- * Copyright (C) 2006-2011 Philip Kovacs <pk...@us...>.
+ * Copyright (C) 2006-2012 Philip Kovacs <pk...@us...>.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public License
Modified: libdexter/trunk/dexter/dexter-server.c
===================================================================
--- libdexter/trunk/dexter/dexter-server.c 2011-10-04 23:55:16 UTC (rev 392)
+++ libdexter/trunk/dexter/dexter-server.c 2012-03-06 23:36:44 UTC (rev 393)
@@ -1,7 +1,7 @@
/* $Id$ */
/*
* libdexter - a plugin-based, distributed sampling library.
- * Copyright (C) 2006-2011 Philip Kovacs <pk...@us...>.
+ * Copyright (C) 2006-2012 Philip Kovacs <pk...@us...>.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public License
Modified: libdexter/trunk/dexter/dexter-server.h
===================================================================
--- libdexter/trunk/dexter/dexter-server.h 2011-10-04 23:55:16 UTC (rev 392)
+++ libdexter/trunk/dexter/dexter-server.h 2012-03-06 23:36:44 UTC (rev 393)
@@ -1,7 +1,7 @@
/* $Id$ */
/*
* libdexter - a plugin-based, distributed sampling library.
- * Copyright (C) 2006-2011 Philip Kovacs <pk...@us...>.
+ * Copyright (C) 2006-2012 Philip Kovacs <pk...@us...>.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public License
Modified: libdexter/trunk/dexter/dexter-servercomm.c
===================================================================
--- libdexter/trunk/dexter/dexter-servercomm.c 2011-10-04 23:55:16 UTC (rev 392)
+++ libdexter/trunk/dexter/dexter-servercomm.c 2012-03-06 23:36:44 UTC (rev 393)
@@ -1,7 +1,7 @@
/* $Id$ */
/*
* libdexter - a plugin-based, distributed sampling library.
- * Copyright (C) 2006-2011 Philip Kovacs <pk...@us...>.
+ * Copyright (C) 2006-2012 Philip Kovacs <pk...@us...>.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public License
Modified: libdexter/trunk/dexter/dexter-servercomm.h
===================================================================
--- libdexter/trunk/dexter/dexter-servercomm.h 2011-10-04 23:55:16 UTC (rev 392)
+++ libdexter/trunk/dexter/dexter-servercomm.h 2012-03-06 23:36:44 UTC (rev 393)
@@ -1,7 +1,7 @@
/* $Id$ */
/*
* libdexter - a plugin-based, distributed sampling library.
- * Copyright (C) 2006-2011 Philip Kovacs <pk...@us...>.
+ * Copyright (C) 2006-2012 Philip Kovacs <pk...@us...>.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public License
Modified: libdexter/trunk/dexter/dexter-service-broker-internal.h
===================================================================
--- libdexter/trunk/dexter/dexter-service-broker-internal.h 2011-10-04 23:55:16 UTC (rev 392)
+++ libdexter/trunk/dexter/dexter-service-broker-internal.h 2012-03-06 23:36:44 UTC (rev 393)
@@ -1,7 +1,7 @@
/* $Id$ */
/*
* libdexter - a plugin-based, distributed sampling library.
- * Copyright (C) 2006-2011 Philip Kovacs <pk...@us...>.
+ * Copyright (C) 2006-2012 Philip Kovacs <pk...@us...>.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public License
Modified: libdexter/trunk/dexter/dexter-service-broker.c
===================================================================
--- libdexter/trunk/dexter/dexter-service-broker.c 2011-10-04 23:55:16 UTC (rev 392)
+++ libdexter/trunk/dexter/dexter-service-broker.c 2012-03-06 23:36:44 UTC (rev 393)
@@ -1,7 +1,7 @@
/* $Id$ */
/*
* libdexter - a plugin-based, distributed sampling library.
- * Copyright (C) 2006-2011 Philip Kovacs <pk...@us...>.
+ * Copyright (C) 2006-2012 Philip Kovacs <pk...@us...>.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public License
Modified: libdexter/trunk/dexter/dexter-service-broker.h
===================================================================
--- libdexter/trunk/dexter/dexter-service-broker.h 2011-10-04 23:55:16 UTC (rev 392)
+++ libdexter/trunk/dexter/dexter-service-broker.h 2012-03-06 23:36:44 UTC (rev 393)
@@ -1,7 +1,7 @@
/* $Id$ */
/*
* libdexter - a plugin-based, distributed sampling library.
- * Copyright (C) 2006-2011 Philip Kovacs <pk...@us...>.
+ * Copyright (C) 2006-2012 Philip Kovacs <pk...@us...>.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public License
Modified: libdexter/trunk/dexter/dexter-threadpool.c
===================================================================
--- libdexter/trunk/dexter/dexter-threadpool.c 2011-10-04 23:55:16 UTC (rev 392)
+++ libdexter/trunk/dexter/dexter-threadpool.c 2012-03-06 23:36:44 UTC (rev 393)
@@ -1,7 +1,7 @@
/* $Id$ */
/*
* libdexter - a plugin-based, distributed sampling library.
- * Copyright (C) 2006-2011 Philip Kovacs <pk...@us...>.
+ * Copyright (C) 2006-2012 Philip Kovacs <pk...@us...>.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public License
Modified: libdexter/trunk/dexter/dexter-threadpool.h
===================================================================
--- libdexter/trunk/dexter/dexter-threadpool.h 2011-10-04 23:55:16 UTC (rev 392)
+++ libdexter/trunk/dexter/dexter-threadpool.h 2012-03-06 23:36:44 UTC (rev 393)
@@ -1,7 +1,7 @@
/* $Id$ */
/*
* libdexter - a plugin-based, distributed sampling library.
- * Copyright (C) 2006-2011 Philip Kovacs <pk...@us...>.
+ * Copyright (C) 2006-2012 Philip Kovacs <pk...@us...>.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public License
Modified: libdexter/trunk/dexter/dexter-timedsampler-internal.h
===================================================================
--- libdexter/trunk/dexter/dexter-timedsampler-internal.h 2011-10-04 23:55:16 UTC (rev 392)
+++ libdexter/trunk/dexter/dexter-timedsampler-internal.h 2012-03-06 23:36:44 UTC (rev 393)
@@ -1,7 +1,7 @@
/* $Id$ */
/*
* libdexter - a plugin-based, distributed sampling library.
- * Copyright (C) 2006-2011 Philip Kovacs <pk...@us...>.
+ * Copyright (C) 2006-2012 Philip Kovacs <pk...@us...>.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public License
Modified: libdexter/trunk/dexter/dexter-timedsampler.c
===================================================================
--- libdexter/trunk/dexter/dexter-timedsampler.c 2011-10-04 23:55:16 UTC (rev 392)
+++ libdexter/trunk/dexter/dexter-timedsampler.c 2012-03-06 23:36:44 UTC (rev 393)
@@ -1,7 +1,7 @@
/* $Id$ */
/*
* libdexter - a plugin-based, distributed sampling library.
- * Copyright (C) 2006-2011 Philip Kovacs <pk...@us...>.
+ * Copyright (C) 2006-2012 Philip Kovacs <pk...@us...>.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public License
Modified: libdexter/trunk/dexter/dexter-timedsampler.h
===================================================================
--- libdexter/trunk/dexter/dexter-timedsampler.h 2011-10-04 23:55:16 UTC (rev 392)
+++ libdexter/trunk/dexter/dexter-timedsampler.h 2012-03-06 23:36:44 UTC (rev 393)
@@ -1,7 +1,7 @@
/* $Id$ */
/*
* libdexter - a plugin-based, distributed sampling library.
- * Copyright (C) 2006-2011 Philip Kovacs <pk...@us...>.
+ * Copyright (C) 2006-2012 Philip Kovacs <pk...@us...>.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public License
Modified: libdexter/trunk/dexter/dexter-tls-common.c
===================================================================
--- libdexter/trunk/dexter/dexter-tls-common.c 2011-10-04 23:55:16 UTC (rev 392)
+++ libdexter/trunk/dexter/dexter-tls-common.c 2012-03-06 23:36:44 UTC (rev 393)
@@ -1,7 +1,7 @@
/* $Id$ */
/*
* libdexter - a plugin-based, distributed sampling library.
- * Copyright (C) 2006-2011 Philip Kovacs <pk...@us...>.
+ * Copyright (C) 2006-2012 Philip Kovacs <pk...@us...>.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public License
Modified: libdexter/trunk/dexter/dexter-tls-gnutls.c
===================================================================
--- libdexter/trunk/dexter/dexter-tls-gnutls.c 2011-10-04 23:55:16 UTC (rev 392)
+++ libdexter/trunk/dexter/dexter-tls-gnutls.c 2012-03-06 23:36:44 UTC (rev 393)
@@ -1,7 +1,7 @@
/* $Id$ */
/*
* libdexter - a plugin-based, distributed sampling library.
- * Copyright (C) 2006-2011 Philip Kovacs <pk...@us...>.
+ * Copyright (C) 2006-2012 Philip Kovacs <pk...@us...>.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public License
Modified: libdexter/trunk/dexter/dexter-tls.h
===================================================================
--- libdexter/trunk/dexter/dexter-tls.h 2011-10-04 23:55:16 UTC (rev 392)
+++ libdexter/trunk/dexter/dexter-tls.h 2012-03-06 23:36:44 UTC (rev 393)
@@ -1,7 +1,7 @@
/* $Id$ */
/*
* libdexter - a plugin-based, distributed sampling library.
- * Copyright (C) 2006-2011 Philip Kovacs <pk...@us...>.
+ * Copyright (C) 2006-2012 Philip Kovacs <pk...@us...>.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public License
Modified: libdexter/trunk/dexter/dexter-version.c
===================================================================
--- libdexter/trunk/dexter/dexter-version.c 2011-10-04 23:55:16 UTC (rev 392)
+++ libdexter/trunk/dexter/dexter-version.c 2012-03-06 23:36:44 UTC (rev 393)
@@ -1,7 +1,7 @@
/* $Id$ */
/*
* libdexter - a plugin-based, distributed sampling library.
- * Copyright (C) 2006-2011 Philip Kovacs <pk...@us...>.
+ * Copyright (C) 2006-2012 Philip Kovacs <pk...@us...>.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public License
Modified: libdexter/trunk/dexter/dexter-version.h
===================================================================
--- libdexter/trunk/dexter/dexter-version.h 2011-10-04 23:55:16 UTC (rev 392)
+++ libdexter/trunk/dexter/dexter-version.h 2012-03-06 23:36:44 UTC (rev 393)
@@ -1,7 +1,7 @@
/* $Id$ */
/*
* libdexter - a plugin-based, distributed sampling library.
- * Copyright (C) 2006-2011 Philip Kovacs <pk...@us...>.
+ * Copyright (C) 2006-2012 Philip Kovacs <pk...@us...>.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public License
Modified: libdexter/trunk/dexter/dexter.c
===================================================================
--- libdexter/trunk/dexter/dexter.c 2011-10-04 23:55:16 UTC (rev 392)
+++ libdexter/trunk/dexter/dexter.c 2012-03-06 23:36:44 UTC (rev 393)
@@ -1,7 +1,7 @@
/* $Id$ */
/*
* libdexter - a plugin-based, distributed sampling library.
- * Copyright (C) 2006-2011 Philip Kovacs <pk...@us...>.
+ * Copyright (C) 2006-2012 Philip Kovacs <pk...@us...>.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public License
Modified: libdexter/trunk/dexter/dexter.h
===================================================================
--- libdexter/trunk/dexter/dexter.h 2011-10-04 23:55:16 UTC (rev 392)
+++ libdexter/trunk/dexter/dexter.h 2012-03-06 23:36:44 UTC (rev 393)
@@ -1,7 +1,7 @@
/* $Id$ */
/*
* libdexter - a plugin-based, distributed sampling library.
- * Copyright (C) 2006-2011 Philip Kovacs <pk...@us...>.
+ * Copyright (C) 2006-2012 Philip Kovacs <pk...@us...>.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public License
Modified: libdexter/trunk/dexter/dexter.symbols
===================================================================
--- libdexter/trunk/dexter/dexter.symbols 2011-10-04 23:55:16 UTC (rev 392)
+++ libdexter/trunk/dexter/dexter.symbols 2012-03-06 23:36:44 UTC (rev 393)
@@ -1,7 +1,7 @@
/* $Id$ */
/*
* libdexter - a plugin-based, distributed sampling library.
- * Copyright (C) 2006-2011 Philip Kovacs <pk...@us...>.
+ * Copyright (C) 2006-2012 Philip Kovacs <pk...@us...>.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public License
Modified: libdexter/trunk/dexter/make-dexter-alias.pl
===================================================================
--- libdexter/trunk/dexter/make-dexter-alias.pl 2011-10-04 23:55:16 UTC (rev 392)
+++ libdexter/trunk/dexter/make-dexter-alias.pl 2012-03-06 23:36:44 UTC (rev 393)
@@ -3,7 +3,7 @@
# $Id$
#
# Copyright (c) 2004 The GLib Development Team
-# Copyright (C) 2006-2011 Philip Kovacs <pk...@us...>.
+# Copyright (C) 2006-2012 Philip Kovacs <pk...@us...>.
#
# This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public License
Modified: libdexter/trunk/dexter/pltcheck.sh
===================================================================
--- libdexter/trunk/dexter/pltcheck.sh 2011-10-04 23:55:16 UTC (rev 392)
+++ libdexter/trunk/dexter/pltcheck.sh 2012-03-06 23:36:44 UTC (rev 393)
@@ -3,7 +3,7 @@
# $Id$
#
# Copyright (c) 2004 The GLib Development Team
-# Copyright (C) 2006-2011 Philip Kovacs <pk...@us...>.
+# Copyright (C) 2006-2012 Philip Kovacs <pk...@us...>.
#
# This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public License
Modified: libdexter/trunk/dexterplugin/Makefile.am
===================================================================
--- libdexter/trunk/dexterplugin/Makefile.am 2011-10-04 23:55:16 UTC (rev 392)
+++ libdexter/trunk/dexterplugin/Makefile.am 2012-03-06 23:36:44 UTC (rev 393)
@@ -1,7 +1,7 @@
# $Id$
#
# libdexter - a plugin-based, distributed sampling library.
-# Copyright (C) 2006-2011 Philip Kovacs <pk...@us...>.
+# Copyright (C) 2006-2012 Philip Kovacs <pk...@us...>.
#
# This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public License
Modified: libdexter/trunk/dexterplugin/abicheck.sh
===================================================================
--- libdexter/trunk/dexterplugin/abicheck.sh 2011-10-04 23:55:16 UTC (rev 392)
+++ libdexter/trunk/dexterplugin/abicheck.sh 2012-03-06 23:36:44 UTC (rev 393)
@@ -3,7 +3,7 @@
# $Id$
#
# Copyright (c) 2004 The GLib Development Team
-# Copyright (C) 2006-2011 Philip Kovacs <pk...@us...>.
+# Copyright (C) 2006-2012 Philip Kovacs <pk...@us...>.
#
# This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public License
Modified: libdexter/trunk/dexterplugin/dexterplugin-iconfig.c
===================================================================
--- libdexter/trunk/dexterplugin/dexterplugin-iconfig.c 2011-10-04 23:55:16 UTC (rev 392)
+++ libdexter/trunk/dexterplugin/dexterplugin-iconfig.c 2012-03-06 23:36:44 UTC (rev 393)
@@ -1,7 +1,7 @@
/* $Id$ */
/*
* libdexter - a plugin-based, distributed sampling library.
- * Copyright (C) 2006-2011 Philip Kovacs <pk...@us...>.
+ * Copyright (C) 2006-2012 Philip Kovacs <pk...@us...>.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public License
Modified: libdexter/trunk/dexterplugin/dexterplugin-iconfig.h
===================================================================
--- libdexter/trunk/dexterplugin/dexterplugin-iconfig.h 2011-10-04 23:55:16 UTC (rev 392)
+++ libdexter/trunk/dexterplugin/dexterplugin-iconfig.h 2012-03-06 23:36:44 UTC (rev 393)
@@ -1,7 +1,7 @@
/* $Id$ */
/*
* libdexter - a plugin-based, distributed sampling library.
- * Copyright (C) 2006-2011 Philip Kovacs <pk...@us...>.
+ * Copyright (C) 2006-2012 Philip Kovacs <pk...@us...>.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public License
Modified: libdexter/trunk/dexterplugin/dexterplugin-imain.h
===================================================================
--- libdexter/trunk/dexterplugin/dexterplugin-imain.h 2011-10-04 23:55:16 UTC (rev 392)
+++ libdexter/trunk/dexterplugin/dexterplugin-imain.h 2012-03-06 23:36:44 UTC (rev 393)
@@ -1,7 +1,7 @@
/* $Id$ */
/*
* libdexter - a plugin-based, distributed sampling library.
- * Copyright (C) 2006-2011 Philip Kovacs <pk...@us...>.
+ * Copyright (C) 2006-2012 Philip Kovacs <pk...@us...>.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public License
Modified: libdexter/trunk/dexterplugin/dexterplugin-isampler.c
===================================================================
--- libdexter/trunk/dexterplugin/dexterplugin-isampler.c 2011-10-04 23:55:16 UTC (rev 392)
+++ libdexter/trunk/dexterplugin/dexterplugin-isampler.c 2012-03-06 23:36:44 UTC (rev 393)
@@ -1,7 +1,7 @@
/* $Id$ */
/*
* libdexter - a plugin-based, distributed sampling library.
- * Copyright (C) 2006-2011 Philip Kovacs <pk...@us...>.
+ * Copyright (C) 2006-2012 Philip Kovacs <pk...@us...>.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public License
Modified: libdexter/trunk/dexterplugin/dexterplugin-isampler.h
===================================================================
--- libdexter/trunk/dexterplugin/dexterplugin-isampler.h 2011-10-04 23:55:16 UTC (rev 392)
+++ libdexter/trunk/dexterplugin/dexterplugin-isampler.h 2012-03-06 23:36:44 UTC (rev 393)
@@ -1,7 +1,7 @@
/* $Id$ */
/*
* libdexter - a plugin-based, distributed sampling library.
- * Copyright (C) 2006-2011 Philip Kovacs <pk...@us...>.
+ * Copyright (C) 2006-2012 Philip Kovacs <pk...@us...>.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public License
Modified: libdexter/trunk/dexterplugin/dexterplugin-ithreadpool.c
===================================================================
--- libdexter/trunk/dexterplugin/dexterplugin-ithreadpool.c 2011-10-04 23:55:16 UTC (rev 392)
+++ libdexter/trunk/dexterplugin/dexterplugin-ithreadpool.c 2012-03-06 23:36:44 UTC (rev 393)
@@ -1,7 +1,7 @@
/* $Id$ */
/*
* libdexter - a plugin-based, distributed sampling library.
- * Copyright (C) 2006-2011 Philip Kovacs <pk...@us...>.
+ * Copyright (C) 2006-2012 Philip Kovacs <pk...@us...>.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public License
Modified: libdexter/trunk/dexterplugin/dexterplugin-ithreadpool.h
===================================================================
--- libdexter/trunk/dexterplugin/dexterplugin-ithreadpool.h 2011-10-04 23:55:16 UTC (rev 392)
+++ libdexter/trunk/dexterplugin/dexterplugin-ithreadpool.h 2012-03-06 23:36:44 UTC (rev 393)
@@ -1,7 +1,7 @@
/* $Id$ */
/*
* libdexter - a plugin-based, distributed sampling library.
- * Copyright (C) 2006-2011 Philip Kovacs <pk...@us...>.
+ * Copyright (C) 2006-2012 Philip Kovacs <pk...@us...>.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public License
Modified: libdexter/trunk/dexterplugin/dexterplugin-iversion.c
===================================================================
--- libdexter/trunk/dexterplugin/dexterplugin-iversion.c 2011-10-04 23:55:16 UTC (rev 392)
+++ libdexter/trunk/dexterplugin/dexterplugin-iversion.c 2012-03-06 23:36:44 UTC (rev 393)
@@ -1,7 +1,7 @@
/* $Id$ */
/*
* libdexter - a plugin-based, distributed sampling library.
- * Copyright (C) 2006-2011 Philip Kovacs <pk...@us...>.
+ * Copyright (C) 2006-2012 Philip Kovacs <pk...@us...>.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public License
Modified: libdexter/trunk/dexterplugin/dexterplugin-iversion.h.in
===================================================================
--- libdexter/trunk/dexterplugin/dexterplugin-iversion.h.in 2011-10-04 23:55:16 UTC (rev 392)
+++ libdexter/trunk/dexterplugin/dexterplugin-iversion.h.in 2012-03-06 23:36:44 UTC (rev 393)
@@ -1,7 +1,7 @@
/* $Id$ */
/*
* libdexter - a plugin-based, distributed sampling library.
- * Copyright (C) 2006-2011 Philip Kovacs <pk...@us...>.
+ * Copyright (C) 2006-2012 Philip Kovacs <pk...@us...>.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public License
Modified: libdexter/trunk/dexterplugin/dexterplugin-macros.h
===================================================================
--- libdexter/trunk/dexterplugin/dexterplugin-macros.h 2011-10-04 23:55:16 UTC (rev 392)
+++ libdexter/trunk/dexterplugin/dexterplugin-macros.h 2012-03-06 23:36:44 UTC (rev 393)
@@ -1,7 +1,7 @@
/* $Id$ */
/*
* libdexter - a plugin-based, distributed sampling library.
- * Copyright (C) 2006-2011 Philip Kovacs <pk...@us...>.
+ * Copyright (C) 2006-2012 Philip Kovacs <pk...@us...>.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public License
Modified: libdexter/trunk/dexterplugin/dexterplugin-main.c
===================================================================
--- libdexter/trunk/dexterplugin/dexterplugin-main.c 2011-10-04 23:55:16 UTC (rev 392)
+++ libdexter/trunk/dexterplugin/dexterplugin-main.c 2012-03-06 23:36:44 UTC (rev 393)
@@ -1,7 +1,7 @@
/* $Id$ */
/*
* libdexter - a plugin-based, distributed sampling library.
- * Copyright (C) 2006-2011 Philip Kovacs <pk...@us...>.
+ * Copyright (C) 2006-2012 Philip Kovacs <pk...@us...>.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public License
Modified: libdexter/trunk/dexterplugin/dexterplugin-main.h
===================================================================
--- libdexter/trunk/dexterplugin/dexterplugin-main.h 2011-10-04 23:55:16 UTC (rev 392)
+++ libdexter/trunk/dexterplugin/dexterplugin-main.h 2012-03-06 23:36:44 UTC (rev 393)
@@ -1,7 +1,7 @@
/* $Id$ */
/*
* libdexter - a plugin-based, distributed sampling library.
- * Copyright (C) 2006-2011 Philip Kovacs <pk...@us...>.
+ * Copyright (C) 2006-2012 Philip Kovacs <pk...@us...>.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public License
Modified: libdexter/trunk/dexterplugin/dexterplugin-sampler.c
===================================================================
--- libdexter/trunk/dexterplugin/dexterplugin-sampler.c 2011-10-04 23:55:16 UTC (rev 392)
+++ libdexter/trunk/dexterplugin/dexterplugin-sampler.c 2012-03-06 23:36:44 UTC (rev 393)
@@ -1,7 +1,7 @@
/* $Id$ */
/*
* libdexter - a plugin-based, distributed sampling library.
- * Copyright (C) 2006-2011 Philip Kovacs <pk...@us...>.
+ * Copyright (C) 2006-2012 Philip Kovacs <pk...@us...>.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public License
Modified: libdexter/trunk/dexterplugin/dexterplugin-sampler.h
===================================================================
--- libdexter/trunk/dexterplugin/dexterplugin-sampler.h 2011-10-04 23:55:16 UTC (rev 392)
+++ libdexter/trunk/dexterplugin/dexterplugin-sampler.h 2012-03-06 23:36:44 UTC (rev 393)
@@ -1,7 +1,7 @@
/* $Id$ */
/*
* libdexter - a plugin-based, distributed sampling library.
- * Copyright (C) 2006-2011 Philip Kovacs <pk...@us...>.
+ * Copyright (C) 2006-2012 Philip Kovacs <pk...@us...>.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public License
Modified: libdexter/trunk/dexterplugin/dexterplugin-serialize.c
===================================================================
--- libdexter/trunk/dexterplugin/dexterplugin-serialize.c 2011-10-04 23:55:16 UTC (rev 392)
+++ libdexter/trunk/dexterplugin/dexterplugin-serialize.c 2012-03-06 23:36:44 UTC (rev 393)
@@ -1,7 +1,7 @@
/* $Id$ */
/*
* libdexter - a plugin-based, distributed sampling library.
- * Copyright (C) 2006-2011 Philip Kovacs <pk...@us...>.
+ * Copyright (C) 2006-2012 Philip Kovacs <pk...@us...>.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public License
Modified: libdexter/trunk/dexterplugin/dexterplugin-serialize.h
===================================================================
--- libdexter/trunk/dexterplugin/dexterplugin-serialize.h 2011-10-04 23:55:16 UTC (rev 392)
+++ libdexter/trunk/dexterplugin/dexterplugin-serialize.h 2012-03-06 23:36:44 UTC (rev 393)
@@ -1,7 +1,7 @@
/* $Id$ */
/*
* libdexter - a plugin-based, distributed sampling library.
- * Copyright (C) 2006-2011 Philip Kovacs <pk...@us...>.
+ * Copyright (C) 2006-2012 Philip Kovacs <pk...@us...>.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public License
Modified: libdexter/trunk/dexterplugin/dexterplugin-service.c
===================================================================
--- libdexter/trunk/dexterplugin/dexterplugin-service.c 2011-10-04 23:55:16 UTC (rev 392)
+++ libdexter/trunk/dexterplugin/dexterplugin-service.c 2012-03-06 23:36:44 UTC (rev 393)
@@ -1,7 +1,7 @@
/* $Id$ */
/*
* libdexter - a plugin-based, distributed sampling library.
- * Copyright (C) 2006-2011 Philip Kovacs <pk...@us...>.
+ * Copyright (C) 2006-2012 Philip Kovacs <pk...@us...>.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public License
Modified: libdexter/trunk/dexterplugin/dexterplugin-service.h
===================================================================
--- libdexter/trunk/dexterplugin/dexterplugin-service.h 2011-10-04 23:55:16 UTC (rev 392)
+++ libdexter/trunk/dexterplugin/dexterplugin-service.h 2012-03-06 23:36:44 UTC (rev 393)
@@ -1,7 +1,7 @@
/* $Id$ */
/*
* libdexter - a plugin-based, distributed sampling library.
- * Copyright (C) 2006-2011 Philip Kovacs <pk...@us...>.
+ * Copyright (C) 2006-2012 Philip Kovacs <pk...@us...>.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public License
Modified: libdexter/trunk/dexterplugin/dexterplugin.h
===================================================================
--- libdexter/trunk/dexterplugin/dexterplugin.h 2011-10-04 23:55:16 UTC (rev 392)
+++ libdexter/trunk/dexterplugin/dexterplugin.h 2012-03-06 23:36:44 UTC (rev 393)
@@ -1,7 +1,7 @@
/* $Id$ */
/*
* libdexter - a plugin-based, distributed sampling library.
- * Copyright (C) 2006-2011 Philip Kovacs <pk...@us...>.
+ * Copyright (C) 2006-2012 Philip Kovacs <pk...@us...>.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public License
Modified: libdexter/trunk/dexterplugin/dexterplugin.symbols
===================================================================
--- libdexter/trunk/dexterplugin/dexterplugin.symbols 2011-10-04 23:55:16 UTC (rev 392)
+++ libdexter/trunk/dexterplugin/dexterplugin.symbols 2012-03-06 23:36:44 UTC (rev 393)
@@ -1,7 +1,7 @@
/* $Id$ */
/*
* libdexter - a plugin-based, distributed sampling library.
- * Copyright (C) 2006-2011 Philip Kovacs <pk...@us...>.
+ * Copyright (C) 2006-2012 Philip Kovacs <pk...@us...>.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public License
Modified: libdexter/trunk/dexterplugin/make-dexterplugin-alias.pl
===================================================================
--- libdexter/trunk/dexterplugin/make-dexterplugin-alias.pl 2011-10-04 23:55:16 UTC (rev 392)
+++ libdexter/trunk/dexterplugin/make-dexterplugin-alias.pl 2012-03-06 23:36:44 UTC (rev 393)
@@ -3,7 +3,7 @@
# $Id$
#
# Copyright (c) 2004 The GLib Development Team
-# Copyright (C) 2006-2011 Philip Kovacs <pk...@us...>.
+# Copyright (C) 2006-2012 Philip Kovacs <pk...@us...>.
#
# This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public License
Modified: libdexter/trunk/dexterplugin/pltcheck.sh
===================================================================
--- libdexter/trunk/dexterplugin/pltcheck.sh 2011-10-04 23:55:16 UTC (rev 392)
+++ libdexter/trunk/dexterplugin/pltcheck.sh 2012-03-06 23:36:44 UTC (rev 393)
@@ -3,7 +3,7 @@
# $Id$
#
# Copyright (c) 2004 The GLib Development Team
-# Copyright (C) 2006-2011 Philip Kovacs <pk...@us...>.
+# Copyright (C) 2006-2012 Philip Kovacs <pk...@us...>.
#
# This library is free software; you can redistribute it and/or
# ...
[truncated message content] |
|
From: <pk...@us...> - 2011-10-04 23:55:23
|
Revision: 392
http://libdexter.svn.sourceforge.net/libdexter/?rev=392&view=rev
Author: pkovacs
Date: 2011-10-04 23:55:16 +0000 (Tue, 04 Oct 2011)
Log Message:
-----------
replace deprecated g_atomic_int_exchange_and_add()
Modified Paths:
--------------
libdexter/trunk/ChangeLog
libdexter/trunk/configure.ac.in
libdexter/trunk/dexter/dexter-channel.c
Modified: libdexter/trunk/ChangeLog
===================================================================
--- libdexter/trunk/ChangeLog 2011-09-15 03:18:18 UTC (rev 391)
+++ libdexter/trunk/ChangeLog 2011-10-04 23:55:16 UTC (rev 392)
@@ -1,3 +1,7 @@
+2911-10-04 pkovacs
+ * Bumped Glib requirement to 2.30, replacing deprecated g_atomic_int_exchange_and_add()
+ with g_atomic_int_add().
+
2011-09-13 pkovacs
* Adjusted configure.ac.in for autoconf 2.68 and newer libtool.
* Removed some obsolete m4 files.
Modified: libdexter/trunk/configure.ac.in
===================================================================
--- libdexter/trunk/configure.ac.in 2011-09-15 03:18:18 UTC (rev 391)
+++ libdexter/trunk/configure.ac.in 2011-10-04 23:55:16 UTC (rev 392)
@@ -200,7 +200,7 @@
dnl *************************************************
dnl * Configure vars for pkg-config-based libraries *
dnl *************************************************
-GLIB_MIN_VERSION=2.10
+GLIB_MIN_VERSION=2.30
AC_SUBST([GLIB_MIN_VERSION])
PKG_CHECK_MODULES(DEXTER, glib-2.0 >= $GLIB_MIN_VERSION gthread-2.0 gobject-2.0 gmodule-no-export-2.0)
PKG_CHECK_MODULES(DEXTERPLUGIN, glib-2.0 >= $GLIB_MIN_VERSION gobject-2.0)
Modified: libdexter/trunk/dexter/dexter-channel.c
===================================================================
--- libdexter/trunk/dexter/dexter-channel.c 2011-09-15 03:18:18 UTC (rev 391)
+++ libdexter/trunk/dexter/dexter-channel.c 2011-10-04 23:55:16 UTC (rev 392)
@@ -1574,7 +1574,7 @@
/* create hash entry for channel object */
hash_entry = g_slice_new0 (ChannelObjectHashEntry);
- hash_entry->id = g_atomic_int_exchange_and_add (&channel->next_id, 1);
+ hash_entry->id = g_atomic_int_add (&channel->next_id, 1);
hash_entry->channel_object = g_object_ref (channel_object);
dexter_hash_table_insert (channel->object_hash, &hash_entry->id, hash_entry);
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <pk...@us...> - 2011-09-15 03:18:24
|
Revision: 391
http://libdexter.svn.sourceforge.net/libdexter/?rev=391&view=rev
Author: pkovacs
Date: 2011-09-15 03:18:18 +0000 (Thu, 15 Sep 2011)
Log Message:
-----------
whitespace warning
Modified Paths:
--------------
libdexter/trunk/docs/reference/dexter/Makefile.am
Modified: libdexter/trunk/docs/reference/dexter/Makefile.am
===================================================================
--- libdexter/trunk/docs/reference/dexter/Makefile.am 2011-09-15 03:14:54 UTC (rev 390)
+++ libdexter/trunk/docs/reference/dexter/Makefile.am 2011-09-15 03:18:18 UTC (rev 391)
@@ -130,7 +130,7 @@
MAINTAINERCLEANFILES = $(man_MANS)
-EXTRA_DIST += \
+EXTRA_DIST += \
$(man_MANS)
# vi:set ts=8 sw=8 noet ai nocindent syntax=automake:
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <pk...@us...> - 2011-09-15 03:15:00
|
Revision: 390
http://libdexter.svn.sourceforge.net/libdexter/?rev=390&view=rev
Author: pkovacs
Date: 2011-09-15 03:14:54 +0000 (Thu, 15 Sep 2011)
Log Message:
-----------
distribute built man pages; update gentoo ebuild for svn
Modified Paths:
--------------
distro/portage/net-libs/libdexter/libdexter-0.999.ebuild
libdexter/trunk/docs/reference/dexter/Makefile.am
Modified: distro/portage/net-libs/libdexter/libdexter-0.999.ebuild
===================================================================
--- distro/portage/net-libs/libdexter/libdexter-0.999.ebuild 2011-09-15 00:46:16 UTC (rev 389)
+++ distro/portage/net-libs/libdexter/libdexter-0.999.ebuild 2011-09-15 03:14:54 UTC (rev 390)
@@ -20,9 +20,9 @@
>=dev-libs/glib-2.10
>=dev-util/gtk-doc-1.6
>=dev-util/pkgconfig-0.16
- >=sys-devel/autoconf-2.59
+ >=sys-devel/autoconf-2.68
>=sys-devel/automake-1.8
- sys-devel/libtool
+ >=sys-devel/libtool-2.2
~app-text/docbook-xml-dtd-4.1.2
app-text/docbook-xsl-stylesheets
dev-libs/libxslt
Modified: libdexter/trunk/docs/reference/dexter/Makefile.am
===================================================================
--- libdexter/trunk/docs/reference/dexter/Makefile.am 2011-09-15 00:46:16 UTC (rev 389)
+++ libdexter/trunk/docs/reference/dexter/Makefile.am 2011-09-15 03:14:54 UTC (rev 390)
@@ -120,23 +120,17 @@
man_MANS = dexterd.1
-dexter_built_mans = $(man_MANS)
-
-dist-hook-local: $(dexter_built_mans)
- files='$(dexter_built_mans)'; \
- for f in $$files; do \
- if test -f $$f; then d=.; else d=$(srcdir); fi; \
- cp $$d/$$f $(distdir) || exit 1; done
-
-EXTRA_DIST += dexterd.1
-
if MAINTAINER_MODE
-# in maintainer mode we build and distclean the built man pages
+# build the man pages only in maintainer mode
%.1 : %.sgml
@XSLTPROC@ -nonet http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl $<
-DISTCLEANFILES = $(dexter_built_mans)
endif
+MAINTAINERCLEANFILES = $(man_MANS)
+
+EXTRA_DIST += \
+ $(man_MANS)
+
# vi:set ts=8 sw=8 noet ai nocindent syntax=automake:
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <pk...@us...> - 2011-09-15 00:46:22
|
Revision: 389
http://libdexter.svn.sourceforge.net/libdexter/?rev=389&view=rev
Author: pkovacs
Date: 2011-09-15 00:46:16 +0000 (Thu, 15 Sep 2011)
Log Message:
-----------
fix documentation links
Modified Paths:
--------------
libdexter/trunk/docs/reference/dexter/dexter-docs.sgml
Modified: libdexter/trunk/docs/reference/dexter/dexter-docs.sgml
===================================================================
--- libdexter/trunk/docs/reference/dexter/dexter-docs.sgml 2011-09-15 00:03:22 UTC (rev 388)
+++ libdexter/trunk/docs/reference/dexter/dexter-docs.sgml 2011-09-15 00:46:16 UTC (rev 389)
@@ -81,9 +81,9 @@
<para>
One of the design goals for Libdexter is to make it easy-to-use, with clear, understandable library
functions and minimal external dependencies. Libdexter was implemented in C using both the
- <ulink url="http://developer.gnome.org/doc/API/2.0/glib/index.html">GLib</ulink> Library
+ <ulink url="http://developer.gnome.org/glib/stable/">GLib</ulink> Library
and the
- <ulink url="http://developer.gnome.org/doc/API/2.0/gobject/index.html">GObject</ulink>
+ <ulink url="http://developer.gnome.org/gobject/stable/gobject-The-Base-Object-Type.html">GObject</ulink>
object system. I wanted to avoid "inflicting" GObject upon users of Libdexter, however,
as that object system does have a learning curve for those completely unfamiliar with it.
Accordingly, all of the GObject implementation details are hidden behind opaque structures.
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <pk...@us...> - 2011-09-15 00:03:28
|
Revision: 388
http://libdexter.svn.sourceforge.net/libdexter/?rev=388&view=rev
Author: pkovacs
Date: 2011-09-15 00:03:22 +0000 (Thu, 15 Sep 2011)
Log Message:
-----------
remove obsolete audacious plugin
Removed Paths:
-------------
plugins/dxt-audacious/
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <pk...@us...> - 2011-09-15 00:02:06
|
Revision: 387
http://libdexter.svn.sourceforge.net/libdexter/?rev=387&view=rev
Author: pkovacs
Date: 2011-09-15 00:01:55 +0000 (Thu, 15 Sep 2011)
Log Message:
-----------
documentation changes
Modified Paths:
--------------
libdexter/trunk/dexterplugin/dexterplugin-service.h
libdexter/trunk/docs/reference/Makefile.am
libdexter/trunk/docs/reference/dexter/building.sgml
libdexter/trunk/docs/reference/dexter/config-example.sgml
libdexter/trunk/docs/reference/dexter/config-structure.sgml
libdexter/trunk/docs/reference/dexter/dexter-docs.sgml
libdexter/trunk/docs/reference/dexter/plugins-current.sgml
libdexter/trunk/docs/reference/dexterplugin/dexterplugin-docs.sgml
Modified: libdexter/trunk/dexterplugin/dexterplugin-service.h
===================================================================
--- libdexter/trunk/dexterplugin/dexterplugin-service.h 2011-09-14 22:07:06 UTC (rev 386)
+++ libdexter/trunk/dexterplugin/dexterplugin-service.h 2011-09-15 00:01:55 UTC (rev 387)
@@ -73,7 +73,6 @@
*
* A collection of plugin service descriptors.
*
- * These collections are typically produced by service brokers with dexter_service_broker_get_services().
**/
typedef struct _dexterplugin_service_group {
/*< public >*/
Modified: libdexter/trunk/docs/reference/Makefile.am
===================================================================
--- libdexter/trunk/docs/reference/Makefile.am 2011-09-14 22:07:06 UTC (rev 386)
+++ libdexter/trunk/docs/reference/Makefile.am 2011-09-15 00:01:55 UTC (rev 387)
@@ -19,6 +19,6 @@
# 02110-1301 USA
#
-SUBDIRS = dexter dexterplugin
+SUBDIRS = dexterplugin dexter
# vi:set ts=8 sw=8 noet ai nocindent syntax=automake:
Modified: libdexter/trunk/docs/reference/dexter/building.sgml
===================================================================
--- libdexter/trunk/docs/reference/dexter/building.sgml 2011-09-14 22:07:06 UTC (rev 386)
+++ libdexter/trunk/docs/reference/dexter/building.sgml 2011-09-15 00:01:55 UTC (rev 387)
@@ -68,7 +68,7 @@
<itemizedlist>
<listitem>
<para>
- <ulink url="http://developer.gnome.org/doc/API/2.0/glib/index.html">GLib</ulink> is
+ <ulink url="http://developer.gnome.org/glib/stable/">GLib</ulink> is
the core library requirement. Your GLib installation must have a thread implementation,
as Libdexter uses threads extensively. GLib must also support dynamic loading of modules
("plug-ins").
Modified: libdexter/trunk/docs/reference/dexter/config-example.sgml
===================================================================
--- libdexter/trunk/docs/reference/dexter/config-example.sgml 2011-09-14 22:07:06 UTC (rev 386)
+++ libdexter/trunk/docs/reference/dexter/config-example.sgml 2011-09-15 00:01:55 UTC (rev 387)
@@ -18,8 +18,8 @@
<programlisting>
[Main]
-LoadPlugins=null;audacious;sysinfo
-AuthorizedServices=null-uuid;audacious-uuid;sysinfo-procraw-uuid
+LoadPlugins=null;sysinfo
+AuthorizedServices=null-uuid;sysinfo-procraw-uuid
ThreadPoolNumThreads=10
ThreadPoolExitWait=true
@@ -50,12 +50,10 @@
[Plugins]
null=/usr/lib/libdexter/dxt-null
-audacious=/usr/lib/libdexter/dxt-audacious
sysinfo=/usr/lib/libdexter/dxt-sysinfo
[Services]
null-uuid=fff385b0-4e80-41e5-983e-fe1be625afa3
-audacious-uuid=c18794da-087e-4db9-9da9-0563793acd25
sysinfo-procraw-uuid=ce975a10-0e52-458a-a4b9-253734760436
# Null Service
Modified: libdexter/trunk/docs/reference/dexter/config-structure.sgml
===================================================================
--- libdexter/trunk/docs/reference/dexter/config-structure.sgml 2011-09-14 22:07:06 UTC (rev 386)
+++ libdexter/trunk/docs/reference/dexter/config-structure.sgml 2011-09-15 00:01:55 UTC (rev 387)
@@ -60,7 +60,7 @@
<para>
<userinput>[IPv4 or IPv6 host, default: 127.0.0.1]</userinput> Indicates the default server
host to be used when
- <ulink url="libdexter-Servers.html#dexter-server-new">dexter_server_new()</ulink>
+ <ulink url="dexter-Servers.html#dexter-server-new">dexter_server_new()</ulink>
is called with NULL host indicated.
</para>
</listitem>
@@ -71,7 +71,7 @@
<para>
<userinput>[service name or port number, default: 3663]</userinput> Indicates the default server
service or port to be used when
- <ulink url="libdexter-Servers.html#dexter-server-new">dexter_server_new()</ulink>
+ <ulink url="dexter-Servers.html#dexter-server-new">dexter_server_new()</ulink>
is called with NULL service indicated.
</para>
</listitem>
@@ -139,7 +139,7 @@
<listitem>
<para>
<userinput>[n=0,1 or 2, default: 0]</userinput> Flag indicating server support for TLS.
- See <ulink url="libdexter-Servers.html#DexterServerTLSSupportFlag">
+ See <ulink url="dexter-Servers.html#DexterServerTLSSupportFlag">
DexterServerTLSSupportFlag</ulink>.
</para>
</listitem>
@@ -149,7 +149,7 @@
<listitem>
<para>
<userinput>[n=0,1 or 2, default: 1]</userinput> Flag indicating server requirements
- for client certificates. See <ulink url="libdexter-Servers.html#DexterServerTLSClientCertFlag">
+ for client certificates. See <ulink url="dexter-Servers.html#DexterServerTLSClientCertFlag">
DexterServerTLSClientCertFlag</ulink>.
</para>
</listitem>
@@ -205,7 +205,7 @@
<para>
<userinput>[IPv4 or IPv6 host, default: 127.0.0.1]</userinput> Indicates the default channel host
to be used when
- <ulink url="libdexter-Channels.html#dexter-channel-new">dexter_channel_new()</ulink>
+ <ulink url="dexter-Channels.html#dexter-channel-new">dexter_channel_new()</ulink>
is called with NULL host indicated.
</para>
</listitem>
@@ -216,7 +216,7 @@
<para>
<userinput>[service name or port number, default: 3663]</userinput> Indicates the default
channel service or port to be used when
- <ulink url="libdexter-Channels.html#dexter-channel-new">dexter_channel_new()</ulink>
+ <ulink url="dexter-Channels.html#dexter-channel-new">dexter_channel_new()</ulink>
is called with NULL service indicated.
</para>
</listitem>
@@ -345,7 +345,7 @@
This section is reserved for service-specific settings and/or keys that the plugin may
require to initialize itself on your platform. This is distinguished from the <emphasis>
instance initialization</emphasis> that users perform, e.g. on samplers, with
- <ulink url="libdexter-Samplers.html#dexter-sampler-initialize">dexter_sampler_initialize()</ulink>.
+ <ulink url="dexter-Samplers.html#dexter-sampler-initialize">dexter_sampler_initialize()</ulink>.
</para>
</refsect1>
</refentry>
Modified: libdexter/trunk/docs/reference/dexter/dexter-docs.sgml
===================================================================
--- libdexter/trunk/docs/reference/dexter/dexter-docs.sgml 2011-09-14 22:07:06 UTC (rev 386)
+++ libdexter/trunk/docs/reference/dexter/dexter-docs.sgml 2011-09-15 00:01:55 UTC (rev 387)
@@ -122,7 +122,7 @@
threading system; the behavior of Libdexter channels and servers, and other important items.
</para>
<para>
- The Libdexter api <ulink url="libdexter-Initialization.html#dexter-init">dexter_init()</ulink>
+ The Libdexter api <ulink url="dexter-Initialization.html#dexter-init">dexter_init()</ulink>
is used to load the desired configuration file. If none is specified, Libdexter will attempt
to use <filename>$HOME/.dexterrc</filename> and, if not found:
<filename>/etc/libdexter/dexter.conf</filename>.
Modified: libdexter/trunk/docs/reference/dexter/plugins-current.sgml
===================================================================
--- libdexter/trunk/docs/reference/dexter/plugins-current.sgml 2011-09-14 22:07:06 UTC (rev 386)
+++ libdexter/trunk/docs/reference/dexter/plugins-current.sgml 2011-09-15 00:01:55 UTC (rev 387)
@@ -35,9 +35,7 @@
<entry><userinput>fff385b0-4e80-41e5-983e-fe1be625afa3</userinput></entry>
<entry><userinput>Null Service</userinput></entry>
<entry><userinput>Reference plugin that does nothing</userinput></entry>
- <entry><userinput>
- <ulink url="http://svn.sourceforge.net/viewvc/libdexter/libdexter/trunk/plugins/">Link</ulink>
- </userinput></entry>
+ <entry><userinput>Included</userinput></entry>
</row>
<row>
<entry><userinput>dxt-sysinfo</userinput></entry>
@@ -45,7 +43,7 @@
<entry><userinput>Procraw Service</userinput></entry>
<entry><userinput>Raw information from Linux /proc</userinput></entry>
<entry><userinput>
- <ulink url="http://svn.sourceforge.net/viewvc/libdexter/plugins/">Link</ulink>
+ <ulink url="http://libdexter.svn.sourceforge.net/viewvc/libdexter/plugins/">Link</ulink>
</userinput></entry>
</row>
</tbody>
Modified: libdexter/trunk/docs/reference/dexterplugin/dexterplugin-docs.sgml
===================================================================
--- libdexter/trunk/docs/reference/dexterplugin/dexterplugin-docs.sgml 2011-09-14 22:07:06 UTC (rev 386)
+++ libdexter/trunk/docs/reference/dexterplugin/dexterplugin-docs.sgml 2011-09-15 00:01:55 UTC (rev 387)
@@ -65,9 +65,9 @@
</para>
<para>
Plugin writers need a working knowledge of the
- <ulink url="http://developer.gnome.org/doc/API/2.0/gobject/index.html">GObject</ulink> object system.
+ <ulink url="http://developer.gnome.org/gobject/stable/gobject-The-Base-Object-Type.html">GObject</ulink> object system.
It is recommended that you review the GObject tutorial before proceeding. Libdexter plugins are
- <ulink url="http://developer.gnome.org/doc/API/2.0/gobject/GTypeModule.html">GTypeModule</ulink>'s
+ <ulink url="http://developer.gnome.org/gobject/stable/GTypeModule.html">GTypeModule</ulink>'s
that load "on-demand" instead of staying resident forever. When a GTypeModule is first loaded
(during Libdexter initialization) it registers its GObject-based types with the GType system and then
unloads. Whenever one of its registered types is instantiated, the type module reloads automatically
@@ -86,7 +86,7 @@
<para>
Plugin writers must also provide one or more public headers with their plugins so that programmers
using Libdexter may manipulate the data that the plugin produces. Refer to the
- <ulink url="libdexterplugin-guidelines.html">Guidelines</ulink> section for information on naming
+ <ulink url="dexterplugin-guidelines.html">Guidelines</ulink> section for information on naming
conventions and locations for plugin public headers. Adhering to the guidelines is
<emphasis>highly</emphasis> recommended in order to provide programmers and end-users an
organized, consistent view of all Libdexter-packaged and third-party plugins.
@@ -129,7 +129,7 @@
<listitem><userinput>dexter_plugin_exit ()</userinput> - performs any cleanup that may be required
when the module unloads.</listitem>
<listitem><userinput>dexter_plugin_get_services ()</userinput> - returns a
- <ulink url="libdexterplugin-DexterPluginService.html#DexterPluginServiceGroup">
+ <ulink url="dexterplugin-DexterPluginService.html#DexterPluginServiceGroup">
DexterPluginServiceGroup</ulink> describing all services that this plugin registers.
</listitem>
</itemizedlist>
@@ -137,8 +137,8 @@
</listitem>
<listitem>
Each service implemented by the plugin must be a
- <ulink url="http://developer.gnome.org/doc/API/2.0/gobject/index.html">GObject</ulink> derived from
- <ulink url="DexterPluginSampler.html">DexterPluginSampler</ulink>.
+ <ulink url="http://developer.gnome.org/gobject/stable/gobject-The-Base-Object-Type.html">GObject</ulink> derived from
+ <ulink url="DexterPluginSampler.html">DexterPluginSampler</ulink>
</listitem>
<listitem>
Each service implemented by the plugin must provide an implementation of the
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <pk...@us...> - 2011-09-14 05:57:08
|
Revision: 385
http://libdexter.svn.sourceforge.net/libdexter/?rev=385&view=rev
Author: pkovacs
Date: 2011-09-14 05:57:01 +0000 (Wed, 14 Sep 2011)
Log Message:
-----------
Add built man pages to EXTRA_DIST.
Modified Paths:
--------------
libdexter/trunk/docs/reference/dexter/Makefile.am
libdexter/trunk/docs/reference/dexterplugin/Makefile.am
Modified: libdexter/trunk/docs/reference/dexter/Makefile.am
===================================================================
--- libdexter/trunk/docs/reference/dexter/Makefile.am 2011-09-14 04:05:01 UTC (rev 384)
+++ libdexter/trunk/docs/reference/dexter/Makefile.am 2011-09-14 05:57:01 UTC (rev 385)
@@ -113,7 +113,6 @@
include $(top_srcdir)/gtk-doc.make
# Other files to distribute
-# e.g. EXTRA_DIST += version.xml.in
EXTRA_DIST += \
version.xml.in
@@ -129,15 +128,15 @@
if test -f $$f; then d=.; else d=$(srcdir); fi; \
cp $$d/$$f $(distdir) || exit 1; done
-if MAINTAINER_MODE
+EXTRA_DIST += dexterd.1
+if MAINTAINER_MODE
# in maintainer mode we build and distclean the built man pages
%.1 : %.sgml
@XSLTPROC@ -nonet http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl $<
DISTCLEANFILES = $(dexter_built_mans)
-
endif
# vi:set ts=8 sw=8 noet ai nocindent syntax=automake:
Modified: libdexter/trunk/docs/reference/dexterplugin/Makefile.am
===================================================================
--- libdexter/trunk/docs/reference/dexterplugin/Makefile.am 2011-09-14 04:05:01 UTC (rev 384)
+++ libdexter/trunk/docs/reference/dexterplugin/Makefile.am 2011-09-14 05:57:01 UTC (rev 385)
@@ -94,7 +94,6 @@
include $(top_srcdir)/gtk-doc.make
# Other files to distribute
-# e.g. EXTRA_DIST += version.xml.in
EXTRA_DIST += \
version.xml.in
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <pk...@us...> - 2011-09-14 04:05:07
|
Revision: 384
http://libdexter.svn.sourceforge.net/libdexter/?rev=384&view=rev
Author: pkovacs
Date: 2011-09-14 04:05:01 +0000 (Wed, 14 Sep 2011)
Log Message:
-----------
Cleaned up minor gtk-doc warnings.
Modified Paths:
--------------
libdexter/trunk/dexter/dexter-service-broker.h
libdexter/trunk/dexterplugin/dexterplugin-iversion.c
libdexter/trunk/docs/reference/dexter/Makefile.am
libdexter/trunk/docs/reference/dexter/plugins-current.sgml
libdexter/trunk/docs/reference/dexterplugin/Makefile.am
Modified: libdexter/trunk/dexter/dexter-service-broker.h
===================================================================
--- libdexter/trunk/dexter/dexter-service-broker.h 2011-09-14 01:05:58 UTC (rev 383)
+++ libdexter/trunk/dexter/dexter-service-broker.h 2011-09-14 04:05:01 UTC (rev 384)
@@ -61,7 +61,7 @@
* DexterServiceType:
* @DEXTER_SERVICE_SAMPLER: flag for requesting sampler services.
*
- * Or-able flags used in service_type parameter of the dexter_service_broker_list_services() api.
+ * Or-able flags used in service_type parameter of the dexter_service_broker_get_services() api.
* <para>(At present only one service type is implemented).</para>
**/
typedef enum
Modified: libdexter/trunk/dexterplugin/dexterplugin-iversion.c
===================================================================
--- libdexter/trunk/dexterplugin/dexterplugin-iversion.c 2011-09-14 01:05:58 UTC (rev 383)
+++ libdexter/trunk/dexterplugin/dexterplugin-iversion.c 2011-09-14 04:05:01 UTC (rev 384)
@@ -28,8 +28,8 @@
*
* Plugins can access version information using this interface.
*
- * During dexter_plugin_init() the plugin should use this interface to verify
- * that it is being loaded by a version of Libdexter that is compatible with
+ * The plugin should use this interface during initialization to verify that
+ * it is being loaded by a version of Libdexter that is compatible with
* the version with which the plugin was compiled.
*
* <informalexample>
Modified: libdexter/trunk/docs/reference/dexter/Makefile.am
===================================================================
--- libdexter/trunk/docs/reference/dexter/Makefile.am 2011-09-14 01:05:58 UTC (rev 383)
+++ libdexter/trunk/docs/reference/dexter/Makefile.am 2011-09-14 04:05:01 UTC (rev 384)
@@ -1,32 +1,36 @@
# $Id$
+#
+# libdexter - a plugin-based, distributed sampling library.
+# Copyright (C) 2006-2011 Philip Kovacs <pk...@us...>.
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public License
+# as published by the Free Software Foundation; either version 2.1
+# of the License, or (at your option) any later version.
+#
+# This library is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this library; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+# 02110-1301 USA
+#
-## Process this file with automake to produce Makefile.in
-
-# We require automake 1.6 at least.
AUTOMAKE_OPTIONS = 1.6
-# This is a blank Makefile.am for using gtk-doc.
-# Copy this to your project's API docs directory and modify the variables to
-# suit your project. See the GTK+ Makefiles in gtk+/docs/reference for examples
-# of using the various options.
-
-# The name of the module, e.g. 'glib'.
+# The name of the module.
DOC_MODULE=libdexter
-# The top-level SGML file. You can change this if you want to.
+# The top-level SGML file.
DOC_MAIN_SGML_FILE=$(DOC_MODULE)-docs.sgml
-# The directory containing the source code. Relative to $(srcdir).
-# gtk-doc will search all .c & .h files beneath here for inline comments
-# documenting the functions and macros.
-# e.g. DOC_SOURCE_DIR=../../../gtk
+# The directory containing the source code. Relative to $(srcdir)
DOC_SOURCE_DIR=../../../dexter
-# Extra options to pass to gtkdoc-scangobj. Not normally needed.
-SCANGOBJ_OPTIONS=
-
# Extra options to supply to gtkdoc-scan.
-# e.g. SCAN_OPTIONS=--deprecated-guards="GTK_DISABLE_DEPRECATED"
SCAN_OPTIONS=
# Extra options to supply to gtkdoc-mkdb.
@@ -39,7 +43,7 @@
# Extra options to supply to gtkdoc-fixref. Not normally needed.
# e.g. FIXXREF_OPTIONS=--extra-dir=../gdk-pixbuf/html --extra-dir=../gdk/html
-FIXXREF_OPTIONS=
+FIXXREF_OPTIONS==--extra-dir=../dexterplugin/html
# Used for dependencies. The docs will be rebuilt if any of these change.
# e.g. HFILE_GLOB=$(top_srcdir)/gtk/*.h
@@ -48,7 +52,6 @@
CFILE_GLOB=$(top_srcdir)/dexter/*.c
# Header files to ignore when scanning.
-# e.g. IGNORE_HFILES=gtkdebug.h gtkintl.h
IGNORE_HFILES= \
dexter-alias.h \
dexter-channel-internal.h \
Modified: libdexter/trunk/docs/reference/dexter/plugins-current.sgml
===================================================================
--- libdexter/trunk/docs/reference/dexter/plugins-current.sgml 2011-09-14 01:05:58 UTC (rev 383)
+++ libdexter/trunk/docs/reference/dexter/plugins-current.sgml 2011-09-14 04:05:01 UTC (rev 384)
@@ -40,15 +40,6 @@
</userinput></entry>
</row>
<row>
- <entry><userinput>dxt-audacious</userinput></entry>
- <entry><userinput>c18794da-087e-4db9-9da9-0563793acd25</userinput></entry>
- <entry><userinput>Audacious Service</userinput></entry>
- <entry><userinput>Audacious Music player status</userinput></entry>
- <entry><userinput>
- <ulink url="http://svn.sourceforge.net/viewvc/libdexter/plugins/">Link</ulink>
- </userinput></entry>
- </row>
- <row>
<entry><userinput>dxt-sysinfo</userinput></entry>
<entry><userinput>ce975a10-0e52-458a-a4b9-253734760436</userinput></entry>
<entry><userinput>Procraw Service</userinput></entry>
Modified: libdexter/trunk/docs/reference/dexterplugin/Makefile.am
===================================================================
--- libdexter/trunk/docs/reference/dexterplugin/Makefile.am 2011-09-14 01:05:58 UTC (rev 383)
+++ libdexter/trunk/docs/reference/dexterplugin/Makefile.am 2011-09-14 04:05:01 UTC (rev 384)
@@ -1,30 +1,35 @@
# $Id$
+#
+# libdexter - a plugin-based, distributed sampling library.
+# Copyright (C) 2006-2011 Philip Kovacs <pk...@us...>.
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public License
+# as published by the Free Software Foundation; either version 2.1
+# of the License, or (at your option) any later version.
+#
+# This library is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this library; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+# 02110-1301 USA
+#
-## Process this file with automake to produce Makefile.in
-
-# We require automake 1.6 at least.
AUTOMAKE_OPTIONS = 1.6
-# This is a blank Makefile.am for using gtk-doc.
-# Copy this to your project's API docs directory and modify the variables to
-# suit your project. See the GTK+ Makefiles in gtk+/docs/reference for examples
-# of using the various options.
-
-# The name of the module, e.g. 'glib'.
+# The name of the module.
DOC_MODULE=libdexterplugin
# The top-level SGML file. You can change this if you want to.
DOC_MAIN_SGML_FILE=$(DOC_MODULE)-docs.sgml
# The directory containing the source code. Relative to $(srcdir).
-# gtk-doc will search all .c & .h files beneath here for inline comments
-# documenting the functions and macros.
-# e.g. DOC_SOURCE_DIR=../../../gtk
DOC_SOURCE_DIR=../../../dexterplugin
-# Extra options to pass to gtkdoc-scangobj. Not normally needed.
-SCANGOBJ_OPTIONS=
-
# Extra options to supply to gtkdoc-scan.
# e.g. SCAN_OPTIONS=--deprecated-guards="GTK_DISABLE_DEPRECATED"
SCAN_OPTIONS=
@@ -39,7 +44,7 @@
# Extra options to supply to gtkdoc-fixref. Not normally needed.
# e.g. FIXXREF_OPTIONS=--extra-dir=../gdk-pixbuf/html --extra-dir=../gdk/html
-FIXXREF_OPTIONS=
+FIXXREF_OPTIONS=--extra-dir=../dexter/html
# Used for dependencies. The docs will be rebuilt if any of these change.
# e.g. HFILE_GLOB=$(top_srcdir)/gtk/*.h
@@ -74,15 +79,15 @@
# signals and properties.
# e.g. INCLUDES=-I$(top_srcdir) -I$(top_builddir) $(GTK_DEBUG_FLAGS)
# e.g. GTKDOC_LIBS=$(top_builddir)/gtk/$(gtktargetlib)
-INCLUDES= \
- -I$(top_srcdir) \
- -I$(top_builddir) \
+INCLUDES= \
+ -I$(top_srcdir) \
+ -I$(top_builddir) \
-I$(top_srcdir)/dexterplugin \
-I$(top_builddir)/dexterplugin \
$(DEXTERPLUGIN_CFLAGS)
GTKDOC_LIBS= \
- $(top_builddir)/dexter/libdexter.la \
+ $(top_builddir)/dexter/libdexter.la \
$(top_builddir)/dexterplugin/libdexterplugin.la
# This includes the standard gtk-doc make rules, copied by gtkdocize.
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <pk...@us...> - 2011-09-14 01:06:05
|
Revision: 383
http://libdexter.svn.sourceforge.net/libdexter/?rev=383&view=rev
Author: pkovacs
Date: 2011-09-14 01:05:58 +0000 (Wed, 14 Sep 2011)
Log Message:
-----------
Removed Paths:
-------------
libdexter/trunk/m4/libgnutls.m4
Deleted: libdexter/trunk/m4/libgnutls.m4
===================================================================
--- libdexter/trunk/m4/libgnutls.m4 2011-09-14 01:02:14 UTC (rev 382)
+++ libdexter/trunk/m4/libgnutls.m4 2011-09-14 01:05:58 UTC (rev 383)
@@ -1,160 +0,0 @@
-dnl Autoconf macros for libgnutls
-dnl $id$
-
-# Modified for LIBGNUTLS -- nmav
-# Configure paths for LIBGCRYPT
-# Shamelessly stolen from the one of XDELTA by Owen Taylor
-# Werner Koch 99-12-09
-
-dnl AM_PATH_LIBGNUTLS([MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND ]]])
-dnl Test for libgnutls, and define LIBGNUTLS_CFLAGS and LIBGNUTLS_LIBS
-dnl
-AC_DEFUN([AM_PATH_LIBGNUTLS],
-[dnl
-dnl Get the cflags and libraries from the libgnutls-config script
-dnl
-AC_ARG_WITH(libgnutls-prefix,
- [ --with-libgnutls-prefix=PFX Prefix where libgnutls is installed (optional)],
- libgnutls_config_prefix="$withval", libgnutls_config_prefix="")
-
- if test x$libgnutls_config_prefix != x ; then
- if test x${LIBGNUTLS_CONFIG+set} != xset ; then
- LIBGNUTLS_CONFIG=$libgnutls_config_prefix/bin/libgnutls-config
- fi
- fi
-
- AC_PATH_PROG(LIBGNUTLS_CONFIG, libgnutls-config, no)
- min_libgnutls_version=ifelse([$1], ,0.1.0,$1)
- AC_MSG_CHECKING(for libgnutls - version >= $min_libgnutls_version)
- no_libgnutls=""
- if test "$LIBGNUTLS_CONFIG" = "no" ; then
- no_libgnutls=yes
- else
- LIBGNUTLS_CFLAGS=`$LIBGNUTLS_CONFIG $libgnutls_config_args --cflags`
- LIBGNUTLS_LIBS=`$LIBGNUTLS_CONFIG $libgnutls_config_args --libs`
- libgnutls_config_version=`$LIBGNUTLS_CONFIG $libgnutls_config_args --version`
-
-
- ac_save_CFLAGS="$CFLAGS"
- ac_save_LIBS="$LIBS"
- CFLAGS="$CFLAGS $LIBGNUTLS_CFLAGS"
- LIBS="$LIBS $LIBGNUTLS_LIBS"
-dnl
-dnl Now check if the installed libgnutls is sufficiently new. Also sanity
-dnl checks the results of libgnutls-config to some extent
-dnl
- rm -f conf.libgnutlstest
- AC_TRY_RUN([
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <gnutls/gnutls.h>
-
-int
-main ()
-{
- system ("touch conf.libgnutlstest");
-
- if( strcmp( gnutls_check_version(NULL), "$libgnutls_config_version" ) )
- {
- printf("\n*** 'libgnutls-config --version' returned %s, but LIBGNUTLS (%s)\n",
- "$libgnutls_config_version", gnutls_check_version(NULL) );
- printf("*** was found! If libgnutls-config was correct, then it is best\n");
- printf("*** to remove the old version of LIBGNUTLS. You may also be able to fix the error\n");
- printf("*** by modifying your LD_LIBRARY_PATH enviroment variable, or by editing\n");
- printf("*** /etc/ld.so.conf. Make sure you have run ldconfig if that is\n");
- printf("*** required on your system.\n");
- printf("*** If libgnutls-config was wrong, set the environment variable LIBGNUTLS_CONFIG\n");
- printf("*** to point to the correct copy of libgnutls-config, and remove the file config.cache\n");
- printf("*** before re-running configure\n");
- }
- else if ( strcmp(gnutls_check_version(NULL), LIBGNUTLS_VERSION ) )
- {
- printf("\n*** LIBGNUTLS header file (version %s) does not match\n", LIBGNUTLS_VERSION);
- printf("*** library (version %s)\n", gnutls_check_version(NULL) );
- }
- else
- {
- if ( gnutls_check_version( "$min_libgnutls_version" ) )
- {
- return 0;
- }
- else
- {
- printf("no\n*** An old version of LIBGNUTLS (%s) was found.\n",
- gnutls_check_version(NULL) );
- printf("*** You need a version of LIBGNUTLS newer than %s. The latest version of\n",
- "$min_libgnutls_version" );
- printf("*** LIBGNUTLS is always available from ftp://gnutls.hellug.gr/pub/gnutls.\n");
- printf("*** \n");
- printf("*** If you have already installed a sufficiently new version, this error\n");
- printf("*** probably means that the wrong copy of the libgnutls-config shell script is\n");
- printf("*** being found. The easiest way to fix this is to remove the old version\n");
- printf("*** of LIBGNUTLS, but you can also set the LIBGNUTLS_CONFIG environment to point to the\n");
- printf("*** correct copy of libgnutls-config. (In this case, you will have to\n");
- printf("*** modify your LD_LIBRARY_PATH enviroment variable, or edit /etc/ld.so.conf\n");
- printf("*** so that the correct libraries are found at run-time))\n");
- }
- }
- return 1;
-}
-],, no_libgnutls=yes,[echo $ac_n "cross compiling; assumed OK... $ac_c"])
- CFLAGS="$ac_save_CFLAGS"
- LIBS="$ac_save_LIBS"
- fi
-
- if test "x$no_libgnutls" = x ; then
- AC_MSG_RESULT(yes)
- ifelse([$2], , :, [$2])
- else
- if test -f conf.libgnutlstest ; then
- :
- else
- AC_MSG_RESULT(no)
- fi
- if test "$LIBGNUTLS_CONFIG" = "no" ; then
- echo "*** The libgnutls-config script installed by LIBGNUTLS could not be found"
- echo "*** If LIBGNUTLS was installed in PREFIX, make sure PREFIX/bin is in"
- echo "*** your path, or set the LIBGNUTLS_CONFIG environment variable to the"
- echo "*** full path to libgnutls-config."
- else
- if test -f conf.libgnutlstest ; then
- :
- else
- echo "*** Could not run libgnutls test program, checking why..."
- CFLAGS="$CFLAGS $LIBGNUTLS_CFLAGS"
- LIBS="$LIBS $LIBGNUTLS_LIBS"
- AC_TRY_LINK([
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <gnutls/gnutls.h>
-], [ return !!gnutls_check_version(NULL); ],
- [ echo "*** The test program compiled, but did not run. This usually means"
- echo "*** that the run-time linker is not finding LIBGNUTLS or finding the wrong"
- echo "*** version of LIBGNUTLS. If it is not finding LIBGNUTLS, you'll need to set your"
- echo "*** LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.conf to point"
- echo "*** to the installed location Also, make sure you have run ldconfig if that"
- echo "*** is required on your system"
- echo "***"
- echo "*** If you have an old version installed, it is best to remove it, although"
- echo "*** you may also be able to get things to work by modifying LD_LIBRARY_PATH"
- echo "***" ],
- [ echo "*** The test program failed to compile or link. See the file config.log for the"
- echo "*** exact error that occured. This usually means LIBGNUTLS was incorrectly installed"
- echo "*** or that you have moved LIBGNUTLS since it was installed. In the latter case, you"
- echo "*** may want to edit the libgnutls-config script: $LIBGNUTLS_CONFIG" ])
- CFLAGS="$ac_save_CFLAGS"
- LIBS="$ac_save_LIBS"
- fi
- fi
- LIBGNUTLS_CFLAGS=""
- LIBGNUTLS_LIBS=""
- ifelse([$3], , :, [$3])
- fi
- rm -f conf.libgnutlstest
- AC_SUBST(LIBGNUTLS_CFLAGS)
- AC_SUBST(LIBGNUTLS_LIBS)
-])
-
-dnl *-*wedit:notab*-* Please keep this as the last line.
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <pk...@us...> - 2007-07-13 20:03:42
|
Revision: 381
http://svn.sourceforge.net/libdexter/?rev=381&view=rev
Author: pkovacs
Date: 2007-07-13 13:03:41 -0700 (Fri, 13 Jul 2007)
Log Message:
-----------
update docs/sample config
Modified Paths:
--------------
libdexter/trunk/data/dexter.conf
libdexter/trunk/docs/reference/dexter/config-example.sgml
Modified: libdexter/trunk/data/dexter.conf
===================================================================
--- libdexter/trunk/data/dexter.conf 2007-07-13 19:14:46 UTC (rev 380)
+++ libdexter/trunk/data/dexter.conf 2007-07-13 20:03:41 UTC (rev 381)
@@ -11,16 +11,28 @@
ServerHost=127.0.0.1
ServerService=3663
-ServerSocketOptions=
-ServerMaxDataBacklog=16
+ServerSocketOptions=IPTOS_LOWDELAY SO_RCVBUF=4096 SO_SNDBUF=4096
+ServerMaxBacklog=16
ServerMaxClients=5
-ServerRecvBufferSize=512
+ServerRecvBufferSize=4096
+ServerTLSSupportFlag=1
+ServerTLSClientCertFlag=1
+ServerTLSCertFile=/etc/ssl/libdexter/server-cert.pem
+ServerTLSKeyFile=/etc/ssl/libdexter/server-key.pem
+ServerTLSTrustFile=/etc/ssl/libdexter/server-trust.pem
+ServerTLSCrlFile=/etc/ssl/libdexter/server-crl.pem
+ServerTLSVerifyHostname=false
ChannelHost=127.0.0.1
ChannelService=3663
-ChannelSocketOptions=
-ChannelRecvBufferSize=2048
+ChannelSocketOptions=IPTOS_LOWDELAY SO_RCVBUF=4096 SO_SNDBUF=4096
+ChannelRecvBufferSize=4096
ChannelTimeoutMsecs=30000
+ChannelTLSCertFile=/etc/ssl/libdexter/channel-cert.pem
+ChannelTLSKeyFile=/etc/ssl/libdexter/channel-key.pem
+ChannelTLSTrustFile=/etc/ssl/libdexter/channel-trust.pem
+ChannelTLSCrlFile=/etc/ssl/libdexter/channel-crl.pem
+ChannelTLSVerifyHostname=true
[Plugins]
null=/usr/lib/libdexter/dxt-null
Modified: libdexter/trunk/docs/reference/dexter/config-example.sgml
===================================================================
--- libdexter/trunk/docs/reference/dexter/config-example.sgml 2007-07-13 19:14:46 UTC (rev 380)
+++ libdexter/trunk/docs/reference/dexter/config-example.sgml 2007-07-13 20:03:41 UTC (rev 381)
@@ -51,7 +51,7 @@
[Plugins]
null=/usr/lib/libdexter/dxt-null
audacious=/usr/lib/libdexter/dxt-audacious
-sysinfo-procraw=/usr/lib/libdexter/dxt-sysinfo
+sysinfo=/usr/lib/libdexter/dxt-sysinfo
[Services]
null-uuid=fff385b0-4e80-41e5-983e-fe1be625afa3
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <pk...@us...> - 2007-07-13 19:14:49
|
Revision: 380
http://svn.sourceforge.net/libdexter/?rev=380&view=rev
Author: pkovacs
Date: 2007-07-13 12:14:46 -0700 (Fri, 13 Jul 2007)
Log Message:
-----------
update docs
Modified Paths:
--------------
libdexter/trunk/TODO
libdexter/trunk/dexter/dexter-channel.h
libdexter/trunk/dexter/dexter-server.h
Modified: libdexter/trunk/TODO
===================================================================
--- libdexter/trunk/TODO 2007-06-30 03:24:43 UTC (rev 379)
+++ libdexter/trunk/TODO 2007-07-13 19:14:46 UTC (rev 380)
@@ -4,8 +4,10 @@
- servercomm changes to *require* tls when that is indicated.
- dexter_tls_recv: 'A TLS packet with unexpected length was received'
when breaking off client or server. There should not be any error.
-- syslog certificate failures.
+- syslog handshake/certificate failures.
- add DEXTER_NETWORK_ERROR_CERTIFICATE.
+- eliminate internal use of GError.
+- pass plugin_sampler properties as a single struct instead of 4 properties.
- improve msgframer. perhaps add sscanf for complete protocol message on start
state and if \n in buffer.
Modified: libdexter/trunk/dexter/dexter-channel.h
===================================================================
--- libdexter/trunk/dexter/dexter-channel.h 2007-06-30 03:24:43 UTC (rev 379)
+++ libdexter/trunk/dexter/dexter-channel.h 2007-07-13 19:14:46 UTC (rev 380)
@@ -155,7 +155,8 @@
* @server_salen: length of server socket address.
* @tls_settings: #DexterChannelTLSSettings of TLS settings.
*
- * Signature of callback function used to override default parameters as TLS starts.
+ * Signature of callback function used to adjust TLS settings, as needed for this server address,
+ * as TLS starts.
*
* If specificed in dexter_channel_starttls(), this callback allows you to inspect the server
* socket address and adjust your channel TLS parameters as needed. In this manner you can decide
Modified: libdexter/trunk/dexter/dexter-server.h
===================================================================
--- libdexter/trunk/dexter/dexter-server.h 2007-06-30 03:24:43 UTC (rev 379)
+++ libdexter/trunk/dexter/dexter-server.h 2007-07-13 19:14:46 UTC (rev 380)
@@ -163,7 +163,8 @@
* @client_salen: length of client socket address.
* @tls_settings: #DexterServerTLSSettings of TLS settings.
*
- * Signature of callback function used to override TLS settings, on a per-connection basis, as TLS starts.
+ * Signature of callback function used to adjust TLS settings, as needed for this client address,
+ * as TLS starts.
*
* If specificed in #DexterServerTLSSettings, this callback allows you to inspect the client
* socket address and adjust your server TLS settings as needed for that client connection.
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <pk...@us...> - 2007-06-30 03:24:44
|
Revision: 379
http://svn.sourceforge.net/libdexter/?rev=379&view=rev
Author: pkovacs
Date: 2007-06-29 20:24:43 -0700 (Fri, 29 Jun 2007)
Log Message:
-----------
add missing gnulib file
Added Paths:
-----------
libdexter/trunk/libgnu/m4/include_next.m4
Added: libdexter/trunk/libgnu/m4/include_next.m4
===================================================================
--- libdexter/trunk/libgnu/m4/include_next.m4 (rev 0)
+++ libdexter/trunk/libgnu/m4/include_next.m4 2007-06-30 03:24:43 UTC (rev 379)
@@ -0,0 +1,85 @@
+# include_next.m4 serial 3
+dnl Copyright (C) 2006, 2007 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+dnl From Paul Eggert and Derek Price.
+
+AC_DEFUN([gl_INCLUDE_NEXT],
+[
+ AC_LANG_PREPROC_REQUIRE()
+ AC_CACHE_CHECK([whether the preprocessor supports include_next],
+ [gl_cv_have_include_next],
+ [AC_PREPROC_IFELSE([#include_next <stddef.h>],
+ [gl_cv_have_include_next=yes],
+ [gl_cv_have_include_next=no])])
+ if test $gl_cv_have_include_next = yes; then
+
+ dnl FIXME: Remove HAVE_INCLUDE_NEXT and update everything that uses it
+ dnl to use @INCLUDE_NEXT@ instead.
+ AC_DEFINE([HAVE_INCLUDE_NEXT], 1,
+ [Define if your compiler supports the #include_next directive.])
+
+ INCLUDE_NEXT=include_next
+ else
+ INCLUDE_NEXT=include
+ fi
+ AC_SUBST([INCLUDE_NEXT])
+])
+
+# gl_CHECK_NEXT_HEADERS(HEADER1 HEADER2 ...)
+# ------------------------------------------
+# For each arg foo.h, if #include_next works, define NEXT_FOO_H to be
+# '<foo.h>'; otherwise define it to be
+# '"///usr/include/foo.h"', or whatever other absolute file name is suitable.
+# That way, a header file with the following line:
+# #@INCLUDE_NEXT@ @NEXT_FOO_H@
+# behaves (after sed substitution) as if it contained
+# #include_next <foo.h>
+# even if the compiler does not support include_next.
+# The three "///" are to pacify Sun C 5.8, which otherwise would say
+# "warning: #include of /usr/include/... may be non-portable".
+# Use `""', not `<>', so that the /// cannot be confused with a C99 comment.
+AC_DEFUN([gl_CHECK_NEXT_HEADERS],
+[
+ AC_REQUIRE([gl_INCLUDE_NEXT])
+ AC_CHECK_HEADERS_ONCE([$1])
+
+ AC_FOREACH([gl_HEADER_NAME], [$1],
+ [AS_VAR_PUSHDEF([gl_next_header],
+ [gl_cv_next_]m4_quote(m4_defn([gl_HEADER_NAME])))
+ if test $gl_cv_have_include_next = yes; then
+ AS_VAR_SET([gl_next_header], ['<'gl_HEADER_NAME'>'])
+ else
+ AC_CACHE_CHECK(
+ [absolute name of <]m4_quote(m4_defn([gl_HEADER_NAME]))[>],
+ m4_quote(m4_defn([gl_next_header])),
+ [AS_VAR_PUSHDEF([gl_header_exists],
+ [ac_cv_header_]m4_quote(m4_defn([gl_HEADER_NAME])))
+ if test AS_VAR_GET(gl_header_exists) = yes; then
+ AC_LANG_CONFTEST(
+ [AC_LANG_SOURCE(
+ [[#include <]]m4_dquote(m4_defn([gl_HEADER_NAME]))[[>]]
+ )])
+ dnl eval is necessary to expand ac_cpp.
+ dnl Ultrix and Pyramid sh refuse to redirect output of eval,
+ dnl so use subshell.
+ AS_VAR_SET([gl_next_header],
+ ['"'`(eval "$ac_cpp conftest.$ac_ext") 2>&AS_MESSAGE_LOG_FD |
+ sed -n '\#/]m4_quote(m4_defn([gl_HEADER_NAME]))[#{
+ s#.*"\(.*/]m4_quote(m4_defn([gl_HEADER_NAME]))[\)".*#\1#
+ s#^/[^/]#//&#
+ p
+ q
+ }'`'"'])
+ else
+ AS_VAR_SET([gl_next_header], ['<'gl_HEADER_NAME'>'])
+ fi
+ AS_VAR_POPDEF([gl_header_exists])])
+ fi
+ AC_SUBST(
+ AS_TR_CPP([NEXT_]m4_quote(m4_defn([gl_HEADER_NAME]))),
+ [AS_VAR_GET([gl_next_header])])
+ AS_VAR_POPDEF([gl_next_header])])
+])
Property changes on: libdexter/trunk/libgnu/m4/include_next.m4
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Name: svn:keywords
+ Id
Name: svn:eol-style
+ native
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <pk...@us...> - 2007-06-30 02:57:36
|
Revision: 377
http://svn.sourceforge.net/libdexter/?rev=377&view=rev
Author: pkovacs
Date: 2007-06-29 19:57:33 -0700 (Fri, 29 Jun 2007)
Log Message:
-----------
API changes for DexterChannel;
Gentoo ebuild changes
Modified Paths:
--------------
distro/portage/net-libs/dxt-plugins-audacious/dxt-plugins-audacious-0.999.ebuild
distro/portage/net-libs/dxt-plugins-sysinfo/dxt-plugins-sysinfo-0.999.ebuild
distro/portage/net-libs/libdexter/libdexter-0.999.ebuild
libdexter/trunk/dexter/dexter-channel-internal.h
libdexter/trunk/dexter/dexter-channel-object.c
libdexter/trunk/dexter/dexter-channel.c
libdexter/trunk/dexter/dexter-channel.h
libdexter/trunk/dexter/dexter-sampler.c
libdexter/trunk/dexter/dexter-timedsampler.c
Modified: distro/portage/net-libs/dxt-plugins-audacious/dxt-plugins-audacious-0.999.ebuild
===================================================================
--- distro/portage/net-libs/dxt-plugins-audacious/dxt-plugins-audacious-0.999.ebuild 2007-06-29 04:06:29 UTC (rev 376)
+++ distro/portage/net-libs/dxt-plugins-audacious/dxt-plugins-audacious-0.999.ebuild 2007-06-30 02:57:33 UTC (rev 377)
@@ -3,7 +3,7 @@
# Distributed under the terms of the GNU Lesser General Public License v2.1
# $Header:
-inherit flag-o-matic subversion
+inherit subversion
DESCRIPTION="dxt-plugins-audacious is an Audacious plugin for the libdexter distributed sampling library"
HOMEPAGE="http://www.libdexter.org"
Modified: distro/portage/net-libs/dxt-plugins-sysinfo/dxt-plugins-sysinfo-0.999.ebuild
===================================================================
--- distro/portage/net-libs/dxt-plugins-sysinfo/dxt-plugins-sysinfo-0.999.ebuild 2007-06-29 04:06:29 UTC (rev 376)
+++ distro/portage/net-libs/dxt-plugins-sysinfo/dxt-plugins-sysinfo-0.999.ebuild 2007-06-30 02:57:33 UTC (rev 377)
@@ -3,7 +3,7 @@
# Distributed under the terms of the GNU Lesser General Public License v2.1
# $Header:
-inherit flag-o-matic subversion
+inherit subversion
DESCRIPTION="dxt-plugins-sysinfo is an Audacious plugin for the libdexter distributed sampling library"
HOMEPAGE="http://www.libdexter.org"
Modified: distro/portage/net-libs/libdexter/libdexter-0.999.ebuild
===================================================================
--- distro/portage/net-libs/libdexter/libdexter-0.999.ebuild 2007-06-29 04:06:29 UTC (rev 376)
+++ distro/portage/net-libs/libdexter/libdexter-0.999.ebuild 2007-06-30 02:57:33 UTC (rev 377)
@@ -2,7 +2,7 @@
# Distributed under the terms of the GNU Lesser General Public License v2.1
# $Id$
-inherit flag-o-matic subversion
+inherit subversion
DESCRIPTION="Libdexter is a plugin-based, distributed sampling library"
HOMEPAGE="http://www.libdexter.org"
Modified: libdexter/trunk/dexter/dexter-channel-internal.h
===================================================================
--- libdexter/trunk/dexter/dexter-channel-internal.h 2007-06-29 04:06:29 UTC (rev 376)
+++ libdexter/trunk/dexter/dexter-channel-internal.h 2007-06-30 02:57:33 UTC (rev 377)
@@ -56,6 +56,9 @@
GType dexter_channel_get_type (void) G_GNUC_INTERNAL G_GNUC_CONST;
+const DexterChannelSettings
+ *dexter_channel_get_settings (DexterChannel *channel) G_GNUC_INTERNAL;
+
gboolean dexter_channel_register_channel_object (DexterChannel *channel,
DexterChannelObject *channel_object,
gint wait_types) G_GNUC_INTERNAL;
Modified: libdexter/trunk/dexter/dexter-channel-object.c
===================================================================
--- libdexter/trunk/dexter/dexter-channel-object.c 2007-06-29 04:06:29 UTC (rev 376)
+++ libdexter/trunk/dexter/dexter-channel-object.c 2007-06-30 02:57:33 UTC (rev 377)
@@ -65,8 +65,6 @@
static void
dexter_channel_object_init (DexterChannelObject *channel_object)
{
- gint timeout;
-
#ifdef G_ENABLE_DEBUG
g_message (G_STRFUNC);
#endif
@@ -76,19 +74,7 @@
channel_object->id = 0;
channel_object->mbox = NULL;
channel_object->wait_types = 0;
-
- if (!dexter_config_get_integer (__ICONFIG, "Main", "ChannelTimeoutMsecs",
- &timeout, NULL))
- {
- timeout = DEFAULT_CHANNEL_OBJECT_TIMEOUT_MSECS;
- }
- if (timeout <= 0)
- {
- timeout = DEFAULT_CHANNEL_OBJECT_TIMEOUT_MSECS;
- g_warning ("%s: ChannelTimeoutMsecs must be > 0. Using default %d msecs.", G_STRFUNC, timeout);
- }
-
- channel_object->wait_timeout = (glong)(1000 * timeout);
+ channel_object->wait_timeout = 0;
}
Modified: libdexter/trunk/dexter/dexter-channel.c
===================================================================
--- libdexter/trunk/dexter/dexter-channel.c 2007-06-29 04:06:29 UTC (rev 376)
+++ libdexter/trunk/dexter/dexter-channel.c 2007-06-30 02:57:33 UTC (rev 377)
@@ -108,14 +108,12 @@
static void dexter_channel_settings_prepare (DexterChannelSettings *settings);
#ifdef HAVE_TLS
-#if 0
static DexterChannelTLSSettings
*dexter_channel_tls_settings_new (const gchar *cert_file,
const gchar *key_file,
const gchar *trust_file,
const gchar *crl_file,
gboolean verify_hostname);
-#endif
static void dexter_channel_tls_settings_free (DexterChannelTLSSettings *tls_settings);
#endif /* HAVE_TLS */
@@ -151,10 +149,6 @@
GAsyncQueue *cmd_queue; /* channel commands are queued up here */
DexterHashTable *object_hash; /* channel object hash by (peer) id */
-
-#ifdef HAVE_TLS
- DexterChannelTLSSettings *tls_settings; /* TLS settings */
-#endif
};
struct _DexterChannelClass
@@ -271,9 +265,6 @@
channel->cmd_queue = g_async_queue_new ();
channel->object_hash = dexter_hash_table_new_full (g_int_hash, g_int_equal,
NULL, (GDestroyNotify) _destroy_object_hash_entry);
-#ifdef HAVE_TLS
- channel->tls_settings = NULL;
-#endif
}
@@ -302,10 +293,6 @@
dexter_hash_table_destroy (channel->object_hash);
-#ifdef HAVE_TLS
- dexter_channel_tls_settings_free (channel->tls_settings);
-#endif
-
/* chain up */
G_OBJECT_CLASS (dexter_channel_parent_class)->finalize (object);
}
@@ -615,15 +602,54 @@
}
else
{
+#ifndef HAVE_TLS
+ /* TLS not enabled */
+ g_set_error (error,
+ DEXTER_CHANNEL_ERROR, DEXTER_CHANNEL_ERROR_TLS_NOT_ENABLED,
+ "%s: TLS not enabled", G_STRFUNC);
+#else
DexterChannel *channel = DEXTER_CHANNEL (channel_object);
- /* start TLS handshake, with default parameters */
- dexter_network_session_client_starttls (channel->session,
- channel->tls_settings->cert_file,
- channel->tls_settings->key_file,
- channel->tls_settings->trust_file,
- channel->tls_settings->crl_file,
- channel->tls_settings->verify_hostname,
- error);
+
+ /* if specified, issue callback to finalize TLS parameters */
+ if (channel->settings->tls_start_callback)
+ {
+ /* copy TLS parameters */
+ DexterChannelTLSSettings *tls_settings =
+ dexter_channel_tls_settings_new (channel->settings->tls_cert_file,
+ channel->settings->tls_key_file,
+ channel->settings->tls_trust_file,
+ channel->settings->tls_crl_file,
+ channel->settings->tls_verify_hostname);
+
+ /* perform the callback */
+ (*channel->settings->tls_start_callback) (channel,
+ dexter_network_session_peer_addr (channel->session),
+ dexter_network_session_peer_addrlen (channel->session),
+ tls_settings);
+
+ /* start TLS handshake, with adjusted parameters */
+ dexter_network_session_client_starttls (channel->session,
+ tls_settings->cert_file,
+ tls_settings->key_file,
+ tls_settings->trust_file,
+ tls_settings->crl_file,
+ tls_settings->verify_hostname,
+ error);
+
+ dexter_channel_tls_settings_free (tls_settings);
+ }
+ else
+ {
+ /* start TLS handshake, with default parameters */
+ dexter_network_session_client_starttls (channel->session,
+ channel->settings->tls_cert_file,
+ channel->settings->tls_key_file,
+ channel->settings->tls_trust_file,
+ channel->settings->tls_crl_file,
+ channel->settings->tls_verify_hostname,
+ error);
+ }
+#endif
}
break;
}
@@ -869,7 +895,6 @@
#ifdef HAVE_TLS
-#if 0
static DexterChannelTLSSettings *
dexter_channel_tls_settings_new (const gchar *cert_file,
const gchar *key_file,
@@ -887,8 +912,8 @@
return tls_settings;
}
-#endif
+
static void
dexter_channel_tls_settings_free (DexterChannelTLSSettings *tls_settings)
{
@@ -1070,12 +1095,14 @@
dexter_channel_new (const DexterChannelSettings *settings)
{
DexterChannel *channel;
+ DexterChannelObject *channel_object;
#ifdef G_ENABLE_DEBUG
g_message (G_STRFUNC);
#endif
channel = g_object_new (DEXTER_TYPE_CHANNEL, NULL);
+ channel_object = DEXTER_CHANNEL_OBJECT (channel);
if (settings)
{
@@ -1089,7 +1116,8 @@
dexter_channel_settings_prepare (channel->settings);
/* register the channel as an object capable of receiving server messages */
- dexter_channel_register_channel_object (channel, DEXTER_CHANNEL_OBJECT (channel), DEXTER_MESSAGE_REPLY);
+ channel_object->wait_timeout = (glong)(1000 * channel->settings->timeout_msecs);
+ dexter_channel_register_channel_object (channel, channel_object, DEXTER_MESSAGE_REPLY);
return channel;
}
@@ -1413,51 +1441,6 @@
return FALSE;
}
- /* if specified, issue callback to finalize TLS parameters
- if (starttls_callback)
- {
- / copy default TLS parameters
- DexterChannelTLSParameters *tls_parameters =
- dexter_channel_tls_parameters_dup (channel->tls_parameters);
-
- / perform the callback
- (*starttls_callback) (channel,
- dexter_network_session_peer_addr (channel->session),
- dexter_network_session_peer_addrlen (channel->session),
- tls_parameters);
-
- / check the parameters
- dexter_channel_tls_parameters_check (tls_parameters);
-
- / start TLS handshake, with adjusted parameters
- dexter_network_session_client_starttls (channel->session,
- tls_parameters->cert_file,
- tls_parameters->key_file,
- tls_parameters->trust_file,
- tls_parameters->crl_file,
- tls_parameters->verify_hostname,
- &local_error);
- dexter_channel_tls_parameters_free (tls_parameters);
- }
- else
- {
- / start TLS handshake, with default parameters
- dexter_network_session_client_starttls (channel->session,
- channel->tls_parameters->cert_file,
- channel->tls_parameters->key_file,
- channel->tls_parameters->trust_file,
- channel->tls_parameters->crl_file,
- channel->tls_parameters->verify_hostname,
- &local_error);
- }
- if (local_error)
- {
- g_propagate_error (error, local_error);
- g_object_unref (channel);
- return FALSE;
- }
- */
-
g_object_unref (channel);
return TRUE;
@@ -1555,6 +1538,23 @@
}
+const DexterChannelSettings *
+dexter_channel_get_settings (DexterChannel *channel)
+{
+ const DexterChannelSettings *settings;
+
+ g_return_val_if_fail (DEXTER_IS_CHANNEL (channel), FALSE);
+
+ g_object_ref (channel);
+
+ settings = channel->settings;
+
+ g_object_unref (channel);
+
+ return settings;
+}
+
+
gboolean
dexter_channel_register_channel_object (DexterChannel *channel,
DexterChannelObject *channel_object,
Modified: libdexter/trunk/dexter/dexter-channel.h
===================================================================
--- libdexter/trunk/dexter/dexter-channel.h 2007-06-29 04:06:29 UTC (rev 376)
+++ libdexter/trunk/dexter/dexter-channel.h 2007-06-30 02:57:33 UTC (rev 377)
@@ -126,8 +126,8 @@
* @crl_file: full path to X.509 certificate revocation list file in PEM format.
* @verify_hostname: verify that the hostname of server matches its X.509 certificate.
*
- * Parameters that the channel will use when starting TLS. The config file is used to specify
- * default values.
+ * TLS settings that the channel will use when starting TLS. They are copied from the
+ * #DexterChannelSettings structure provided to dexter_channel_new ().
*
* When this structure is seen within the context of a #DexterChannelTLSStartCallback,
* you may change the elements as needed. For any non-%NULL %gchar elements that you want
Modified: libdexter/trunk/dexter/dexter-sampler.c
===================================================================
--- libdexter/trunk/dexter/dexter-sampler.c 2007-06-29 04:06:29 UTC (rev 376)
+++ libdexter/trunk/dexter/dexter-sampler.c 2007-06-30 02:57:33 UTC (rev 377)
@@ -336,9 +336,11 @@
if (channel)
{
+ DexterChannelObject *channel_object = DEXTER_CHANNEL_OBJECT (sampler);
+
/* register sampler as an object capable of receiving server messages */
- dexter_channel_register_channel_object (channel, DEXTER_CHANNEL_OBJECT (sampler),
- DEXTER_MESSAGE_REPLY | DEXTER_MESSAGE_DATA);
+ channel_object->wait_timeout = (glong)(1000 * dexter_channel_get_settings (channel) -> timeout_msecs);
+ dexter_channel_register_channel_object (channel, channel_object, DEXTER_MESSAGE_REPLY|DEXTER_MESSAGE_DATA);
g_object_unref (channel);
}
return sampler;
Modified: libdexter/trunk/dexter/dexter-timedsampler.c
===================================================================
--- libdexter/trunk/dexter/dexter-timedsampler.c 2007-06-29 04:06:29 UTC (rev 376)
+++ libdexter/trunk/dexter/dexter-timedsampler.c 2007-06-30 02:57:33 UTC (rev 377)
@@ -435,9 +435,11 @@
if (channel)
{
+ DexterChannelObject *channel_object = DEXTER_CHANNEL_OBJECT (timed_sampler);
+
/* register sampler as an object capable of receiving server messages */
- dexter_channel_register_channel_object (channel, DEXTER_CHANNEL_OBJECT (timed_sampler),
- DEXTER_MESSAGE_REPLY);
+ channel_object->wait_timeout = (glong)(1000 * dexter_channel_get_settings (channel) -> timeout_msecs);
+ dexter_channel_register_channel_object (channel, channel_object, DEXTER_MESSAGE_REPLY);
g_object_unref (channel);
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <pk...@us...> - 2007-06-11 06:28:07
|
Revision: 374
http://svn.sourceforge.net/libdexter/?rev=374&view=rev
Author: pkovacs
Date: 2007-06-10 23:28:05 -0700 (Sun, 10 Jun 2007)
Log Message:
-----------
fix build errors with --disable-tls
Modified Paths:
--------------
libdexter/trunk/dexter/dexter-network.c
Modified: libdexter/trunk/dexter/dexter-network.c
===================================================================
--- libdexter/trunk/dexter/dexter-network.c 2007-06-11 06:21:15 UTC (rev 373)
+++ libdexter/trunk/dexter/dexter-network.c 2007-06-11 06:28:05 UTC (rev 374)
@@ -842,6 +842,7 @@
g_return_val_if_fail (bufsize > 0, -1);
g_return_val_if_fail (error == NULL || *error == NULL, -1);
+#ifdef HAVE_TLS
/* use TLS api if active */
if (session->tls)
{
@@ -885,10 +886,13 @@
}
}
}
- }
+ } /* if (session->tls) */
+ else
+#endif /* HAVE_TLS */
+
/* use ordinary network api */
- else if ((n = recv (session->sockfd, buffer, bufsize, flags)) == -1)
+ if ((n = recv (session->sockfd, buffer, bufsize, flags)) == -1)
{
if (errno == EINTR)
{
@@ -938,6 +942,7 @@
while (total < remaining)
{
+#ifdef HAVE_TLS
/* use TLS api if active */
if (session->tls)
{
@@ -962,10 +967,12 @@
return -1;
}
}
- }
+ } /* if (session->tls) */
+ else
+#endif
/* use ordinary network api */
- else if ((n = send (session->sockfd, buffer+total, bufsize, flags)) == -1)
+ if ((n = send (session->sockfd, buffer+total, bufsize, flags)) == -1)
{
if ((errno == EINTR) || (errno == EAGAIN))
continue;
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <pk...@us...> - 2007-06-11 06:21:17
|
Revision: 373
http://svn.sourceforge.net/libdexter/?rev=373&view=rev
Author: pkovacs
Date: 2007-06-10 23:21:15 -0700 (Sun, 10 Jun 2007)
Log Message:
-----------
Committing intermediate work on TLS.
Modified Paths:
--------------
libdexter/trunk/ChangeLog
libdexter/trunk/TODO
libdexter/trunk/dexter/dexter-channel-internal.h
libdexter/trunk/dexter/dexter-channel.c
libdexter/trunk/dexter/dexter-channel.h
libdexter/trunk/dexter/dexter-network.c
libdexter/trunk/dexter/dexter-network.h
libdexter/trunk/dexter/dexter-server.c
libdexter/trunk/dexter/dexter-server.h
libdexter/trunk/dexter/dexter-servercomm.c
libdexter/trunk/dexter/dexter-servercomm.h
libdexter/trunk/dexter/dexter-tls-gnutls.c
libdexter/trunk/dexter/dexter-tls.h
libdexter/trunk/docs/reference/dexter/config-example.sgml
libdexter/trunk/docs/reference/dexter/config-structure.sgml
libdexter/trunk/docs/reference/dexter/tmpl/dexter-channel.sgml
libdexter/trunk/docs/reference/dexter/tmpl/dexter-server.sgml
Modified: libdexter/trunk/ChangeLog
===================================================================
--- libdexter/trunk/ChangeLog 2007-06-11 02:30:30 UTC (rev 372)
+++ libdexter/trunk/ChangeLog 2007-06-11 06:21:15 UTC (rev 373)
@@ -1,3 +1,6 @@
+2007-06-11 pkovacs
+ * Committing intermediate work on TLS.
+
2007-06-09 pkovacs
* Committing intermediate work on TLS.
Modified: libdexter/trunk/TODO
===================================================================
--- libdexter/trunk/TODO 2007-06-11 02:30:30 UTC (rev 372)
+++ libdexter/trunk/TODO 2007-06-11 06:21:15 UTC (rev 373)
@@ -1,9 +1,6 @@
TLS work in progress
refs: RFC 2246 (TLS protcol), RFC 2487 (STARTTLS extention to SMTP)
-- create new config items: ChannelTLSVerifyServerHostname/ServerTLSVerifyClientHostname
- to optionally verify hostname on first cert in the chain. Useful for situations
- where the peer does not have a reliable DNS entry.
- servercomm changes to *require* tls when that is indicated.
- dexter_tls_recv: 'A TLS packet with unexpected length was received'
when breaking off client or server. There should not be any error.
Modified: libdexter/trunk/dexter/dexter-channel-internal.h
===================================================================
--- libdexter/trunk/dexter/dexter-channel-internal.h 2007-06-11 02:30:30 UTC (rev 372)
+++ libdexter/trunk/dexter/dexter-channel-internal.h 2007-06-11 06:21:15 UTC (rev 373)
@@ -29,15 +29,16 @@
G_BEGIN_DECLS
-#define DEFAULT_CHANNEL_HOST "127.0.0.1"
-#define DEFAULT_CHANNEL_SERVICE "3663"
-#define DEFAULT_CHANNEL_SOCKET_OPTIONS NULL
-#define DEFAULT_CHANNEL_RECV_BUFFER_SIZE 2048
+#define DEFAULT_CHANNEL_HOST "127.0.0.1"
+#define DEFAULT_CHANNEL_SERVICE "3663"
+#define DEFAULT_CHANNEL_SOCKET_OPTIONS NULL
+#define DEFAULT_CHANNEL_RECV_BUFFER_SIZE 2048
#ifdef HAVE_TLS
-#define DEFAULT_CHANNEL_TLS_CERT_FILE "/etc/ssl/libdexter/channel-cert.pem"
-#define DEFAULT_CHANNEL_TLS_KEY_FILE "/etc/ssl/libdexter/channel-key.pem"
-#define DEFAULT_CHANNEL_TLS_TRUST_FILE "/etc/ssl/libdexter/channel-trust.pem"
-#define DEFAULT_CHANNEL_TLS_CRL_FILE "/etc/ssl/libdexter/channel-crl.pem"
+#define DEFAULT_CHANNEL_TLS_CERT_FILE "/etc/ssl/libdexter/channel-cert.pem"
+#define DEFAULT_CHANNEL_TLS_KEY_FILE "/etc/ssl/libdexter/channel-key.pem"
+#define DEFAULT_CHANNEL_TLS_TRUST_FILE "/etc/ssl/libdexter/channel-trust.pem"
+#define DEFAULT_CHANNEL_TLS_CRL_FILE "/etc/ssl/libdexter/channel-crl.pem"
+#define DEFAULT_CHANNEL_TLS_VERIFY_HOSTNAME TRUE
#endif
#define DEXTER_TYPE_CHANNEL (dexter_channel_get_type ())
Modified: libdexter/trunk/dexter/dexter-channel.c
===================================================================
--- libdexter/trunk/dexter/dexter-channel.c 2007-06-11 02:30:30 UTC (rev 372)
+++ libdexter/trunk/dexter/dexter-channel.c 2007-06-11 06:21:15 UTC (rev 373)
@@ -106,10 +106,12 @@
*dexter_channel_tls_parameters_new (const gchar *cert_file,
const gchar *key_file,
const gchar *trust_file,
- const gchar *crl_file);
+ const gchar *crl_file,
+ gboolean verify_hostname);
static DexterChannelTLSParameters
*dexter_channel_tls_parameters_dup (const DexterChannelTLSParameters *source);
static void dexter_channel_tls_parameters_free (DexterChannelTLSParameters *tls_parameters);
+static void dexter_channel_tls_parameters_check (DexterChannelTLSParameters *tls_parameters);
#endif /* HAVE_TLS */
/* GDestroyNotify to destroy channel hash entries */
@@ -244,7 +246,7 @@
channel->object_hash = dexter_hash_table_new_full (g_int_hash, g_int_equal,
NULL, (GDestroyNotify) _destroy_object_hash_entry);
#ifdef HAVE_TLS
- channel->tls_parameters = dexter_channel_tls_parameters_new (NULL, NULL, NULL, NULL);
+ channel->tls_parameters = dexter_channel_tls_parameters_new (NULL, NULL, NULL, NULL, TRUE);
/* fetch TLS parameters from config file */
if (!dexter_config_get_string (__ICONFIG,
@@ -252,37 +254,32 @@
&channel->tls_parameters->cert_file, NULL))
{
channel->tls_parameters->cert_file = g_strdup (DEFAULT_CHANNEL_TLS_CERT_FILE);
-#ifdef G_ENABLE_DEBUG
- g_message ("%s: using default %s for TLS cert file", G_STRFUNC, channel->tls_parameters->cert_file);
-#endif
}
if (!dexter_config_get_string (__ICONFIG,
"Main", "ChannelTLSKeyFile",
&channel->tls_parameters->key_file, NULL))
{
channel->tls_parameters->key_file = g_strdup (DEFAULT_CHANNEL_TLS_KEY_FILE);
-#ifdef G_ENABLE_DEBUG
- g_message ("%s: using default %s for TLS key file", G_STRFUNC, channel->tls_parameters->key_file);
-#endif
}
if (!dexter_config_get_string (__ICONFIG,
"Main", "ChannelTLSTrustFile",
&channel->tls_parameters->trust_file, NULL))
{
channel->tls_parameters->trust_file = g_strdup (DEFAULT_CHANNEL_TLS_TRUST_FILE);
-#ifdef G_ENABLE_DEBUG
- g_message ("%s: using default %s for TLS trust file", G_STRFUNC, channel->tls_parameters->trust_file);
-#endif
}
if (!dexter_config_get_string (__ICONFIG,
"Main", "ChannelTLSCrlFile",
&channel->tls_parameters->crl_file, NULL))
{
channel->tls_parameters->crl_file = g_strdup (DEFAULT_CHANNEL_TLS_CRL_FILE);
-#ifdef G_ENABLE_DEBUG
- g_message ("%s: using default %s for TLS crl file", G_STRFUNC, channel->tls_parameters->crl_file);
-#endif
}
+ if (!dexter_config_get_boolean (__ICONFIG,
+ "Main", "ChannelTLSVerifyHostname",
+ &channel->tls_parameters->verify_hostname, NULL))
+ {
+ channel->tls_parameters->verify_hostname = DEFAULT_CHANNEL_TLS_VERIFY_HOSTNAME;
+ }
+ dexter_channel_tls_parameters_check (channel->tls_parameters);
#endif /* HAVE_TLS */
}
@@ -713,7 +710,8 @@
dexter_channel_tls_parameters_new (const gchar *cert_file,
const gchar *key_file,
const gchar *trust_file,
- const gchar *crl_file)
+ const gchar *crl_file,
+ gboolean verify_hostname)
{
DexterChannelTLSParameters *tls_parameters = g_slice_new0 (DexterChannelTLSParameters);
@@ -721,6 +719,7 @@
tls_parameters->key_file = g_strdup (key_file);
tls_parameters->trust_file = g_strdup (trust_file);
tls_parameters->crl_file = g_strdup (crl_file);
+ tls_parameters->verify_hostname = verify_hostname;
return tls_parameters;
}
@@ -735,7 +734,8 @@
return dexter_channel_tls_parameters_new (source->cert_file,
source->key_file,
source->trust_file,
- source->crl_file);
+ source->crl_file,
+ source->verify_hostname);
}
@@ -751,6 +751,13 @@
g_free (tls_parameters->crl_file);
g_slice_free (DexterChannelTLSParameters, tls_parameters);
}
+
+
+static void
+dexter_channel_tls_parameters_check (DexterChannelTLSParameters *tls_parameters)
+{
+ /* no checks */
+}
#endif
@@ -941,9 +948,6 @@
"Main", "ChannelHost", &tmp_host, NULL))
{
tmp_host = g_strdup (DEFAULT_CHANNEL_HOST);
-#ifdef G_ENABLE_DEBUG
- g_message ("%s: using default %s for channel host", G_STRFUNC, tmp_host);
-#endif
}
}
@@ -954,9 +958,6 @@
&tmp_service, NULL))
{
tmp_service = g_strdup (DEFAULT_CHANNEL_SERVICE);
-#ifdef G_ENABLE_DEBUG
- g_message ("%s: using default %s for channel service", G_STRFUNC, tmp_service);
-#endif
}
}
@@ -967,9 +968,6 @@
&tmp_socket_options, NULL))
{
tmp_socket_options = g_strdup (DEFAULT_CHANNEL_SOCKET_OPTIONS);
-#ifdef G_ENABLE_DEBUG
- g_message ("%s: using default %s for channel socket options", G_STRFUNC, tmp_socket_options);
-#endif
}
}
@@ -1322,12 +1320,16 @@
dexter_network_session_peer_addrlen (channel->session),
tls_parameters);
+ /* check the parameters */
+ dexter_channel_tls_parameters_check (tls_parameters);
+
/* start TLS handshake, with adjusted parameters */
dexter_network_session_client_starttls (channel->session,
tls_parameters->cert_file,
tls_parameters->key_file,
tls_parameters->trust_file,
tls_parameters->crl_file,
+ tls_parameters->verify_hostname,
&local_error);
dexter_channel_tls_parameters_free (tls_parameters);
}
@@ -1339,6 +1341,7 @@
channel->tls_parameters->key_file,
channel->tls_parameters->trust_file,
channel->tls_parameters->crl_file,
+ channel->tls_parameters->verify_hostname,
&local_error);
}
if (local_error)
Modified: libdexter/trunk/dexter/dexter-channel.h
===================================================================
--- libdexter/trunk/dexter/dexter-channel.h 2007-06-11 02:30:30 UTC (rev 372)
+++ libdexter/trunk/dexter/dexter-channel.h 2007-06-11 06:21:15 UTC (rev 373)
@@ -137,6 +137,7 @@
* @key_file: full path to X.509 certificate private key file in PEM format.
* @trust_file: full path to X.509 trust file in PEM format.
* @crl_file: full path to X.509 certificate revocation list file in PEM format.
+ * @verify_hostname: verify that hostname of server matches its X.509 certificate.
*
* Parameters that the channel will use when starting TLS. The config file is used to specify
* default values.
@@ -152,10 +153,11 @@
struct _DexterChannelTLSParameters
{
/*< public >*/
- gchar *cert_file; /* ChannelTLSCertFile */
- gchar *key_file; /* ChannelTLSKeyFile */
- gchar *trust_file; /* ChannelTLSTrustFile */
- gchar *crl_file; /* ChannelTLSCrlFile */
+ gchar *cert_file; /* ChannelTLSCertFile */
+ gchar *key_file; /* ChannelTLSKeyFile */
+ gchar *trust_file; /* ChannelTLSTrustFile */
+ gchar *crl_file; /* ChannelTLSCrlFile */
+ gboolean verify_hostname; /* ChannelTLSVerifyHostname */
};
Modified: libdexter/trunk/dexter/dexter-network.c
===================================================================
--- libdexter/trunk/dexter/dexter-network.c 2007-06-11 02:30:30 UTC (rev 372)
+++ libdexter/trunk/dexter/dexter-network.c 2007-06-11 06:21:15 UTC (rev 373)
@@ -390,9 +390,31 @@
}
/* verify peer */
- dexter_tls_verify_peer (session->tls,
- "localhost",
- &local_error);
+ if (flags & DEXTER_TLS_VERIFY_HOSTNAME)
+ {
+ /* resolve peer's hostname */
+ char hbuf[NI_MAXHOST];
+ if (getnameinfo ((const struct sockaddr *)&session->addr,
+ session->addrlen, hbuf, sizeof(hbuf), NULL, 0, NI_NAMEREQD))
+ {
+ g_set_error (error,
+ DEXTER_NETWORK_ERROR,
+ DEXTER_NETWORK_ERROR_FAILED,
+ "%s: could not resolve peer hostname", G_STRFUNC);
+ return FALSE;
+ }
+ /* verify peer with hostname check */
+ dexter_tls_verify_peer (session->tls,
+ hbuf,
+ &local_error);
+ }
+ else
+ {
+ /* verify peer without hostname check */
+ dexter_tls_verify_peer (session->tls,
+ NULL,
+ &local_error);
+ }
if (local_error)
{
g_set_error (error,
@@ -701,6 +723,7 @@
const gchar *key_file,
const gchar *trust_file,
const gchar *crl_file,
+ gboolean verify_hostname,
GError **error)
{
#ifndef HAVE_TLS
@@ -716,7 +739,7 @@
key_file,
trust_file,
crl_file,
- 0,
+ verify_hostname ? DEXTER_TLS_VERIFY_HOSTNAME : 0,
error);
#endif
}
@@ -728,6 +751,7 @@
const gchar *trust_file,
const gchar *crl_file,
guint client_cert_flag,
+ gboolean verify_hostname,
GError **error)
{
#ifndef HAVE_TLS
@@ -743,7 +767,8 @@
key_file,
trust_file,
crl_file,
- 1<<client_cert_flag,
+ (1<<client_cert_flag) |
+ (verify_hostname ? DEXTER_TLS_VERIFY_HOSTNAME : 0),
error);
#endif
}
Modified: libdexter/trunk/dexter/dexter-network.h
===================================================================
--- libdexter/trunk/dexter/dexter-network.h 2007-06-11 02:30:30 UTC (rev 372)
+++ libdexter/trunk/dexter/dexter-network.h 2007-06-11 06:21:15 UTC (rev 373)
@@ -78,6 +78,7 @@
const gchar *key_file,
const gchar *trust_file,
const gchar *crl_file,
+ gboolean verify_hostname,
GError **error) G_GNUC_INTERNAL;
gboolean dexter_network_session_server_starttls
@@ -87,6 +88,7 @@
const gchar *trust_file,
const gchar *crl_file,
guint client_cert_flag,
+ gboolean verify_hostname,
GError **error) G_GNUC_INTERNAL;
gboolean dexter_network_session_tls_running (dexter_network_session_t *session) G_GNUC_INTERNAL;
Modified: libdexter/trunk/dexter/dexter-server.c
===================================================================
--- libdexter/trunk/dexter/dexter-server.c 2007-06-11 02:30:30 UTC (rev 372)
+++ libdexter/trunk/dexter/dexter-server.c 2007-06-11 06:21:15 UTC (rev 373)
@@ -796,9 +796,8 @@
* <informalexample><programlisting>
* DexterServer *server1 = dexter_server_new ("192.168.0.3", "3663", NULL);
* DexterServer *server2 = dexter_server_new ("0:ffff::192.168.0.3", "3663", NULL);
- * DexterServer *server3 = dexter_server_new ("0::0", "3663", NULL);
+ * DexterServer *server3 = dexter_server_new ("0::0", "3663", "IPTOS_LOWDELAY SO_RCVBUF=2048 SO_SNDBUF=2048");
* DexterServer *server4 = dexter_server_new ("0.0.0.0", "3663", NULL);
- * DexterServer *server5 = dexter_server_new ("privatehost.lan.net", "mysql", NULL);
* DexterServer *server6 = dexter_server_new (NULL, NULL, NULL);
* </programlisting></informalexample>
*
@@ -823,9 +822,6 @@
if (!dexter_config_get_string (__ICONFIG, "Main", "ServerHost", &tmp_host, NULL))
{
tmp_host = g_strdup (DEFAULT_SERVER_HOST);
-#ifdef G_ENABLE_DEBUG
- g_message ("%s: using default %s for server host", G_STRFUNC, tmp_host);
-#endif
}
}
@@ -835,9 +831,6 @@
&tmp_service, NULL))
{
tmp_service = g_strdup (DEFAULT_SERVER_SERVICE);
-#ifdef G_ENABLE_DEBUG
- g_message ("%s: using default %s for server service", G_STRFUNC, tmp_service);
-#endif
}
}
@@ -848,9 +841,6 @@
&tmp_socket_options, NULL))
{
tmp_socket_options = g_strdup (DEFAULT_SERVER_SOCKET_OPTIONS);
-#ifdef G_ENABLE_DEBUG
- g_message ("%s: using default %s for server socket options", G_STRFUNC, tmp_socket_options);
-#endif
}
}
@@ -900,33 +890,22 @@
g_return_val_if_fail (DEXTER_IS_SERVER (server), FALSE);
g_return_val_if_fail (error == NULL || *error == NULL, FALSE);
- g_return_val_if_fail (tls_settings == NULL
-#ifdef HAVE_TLS
- || tls_settings->support_flag == DEXTER_SERVER_TLS_SUPPORT_NONE
- || tls_settings->support_flag == DEXTER_SERVER_TLS_SUPPORT_AVAILABLE
- || tls_settings->support_flag == DEXTER_SERVER_TLS_SUPPORT_REQUIRED
-#endif
- , FALSE);
#ifdef HAVE_TLS
dexter_server_tls_settings_free (server->tls_settings);
if (tls_settings)
{
server->tls_settings = dexter_server_tls_settings_dup (tls_settings);
-
}
else /* if (tls_settings) */
{
/* grab default support flag from config */
gint tmp_support_flag;
-
server->tls_settings = dexter_server_tls_settings_new (DEXTER_SERVER_TLS_SUPPORT_NONE, NULL);
if (!dexter_config_get_integer (__ICONFIG, "Main", "ServerTLSSupportFlag",
&tmp_support_flag, NULL))
{
server->tls_settings->support_flag = DEFAULT_SERVER_TLS_SUPPORT_FLAG;
- g_warning ("%s: using default %d for ServerTLSSupportFlag",
- G_STRFUNC, server->tls_settings->support_flag);
}
else
{
@@ -934,6 +913,17 @@
}
}
+ /* Verify DexterServerTLSSupportFlag sanity */
+ if ((server->tls_settings->support_flag != DEXTER_SERVER_TLS_SUPPORT_NONE) &&
+ (server->tls_settings->support_flag != DEXTER_SERVER_TLS_SUPPORT_AVAILABLE) &&
+ (server->tls_settings->support_flag != DEXTER_SERVER_TLS_SUPPORT_REQUIRED))
+ {
+ server->tls_settings->support_flag = DEFAULT_SERVER_TLS_SUPPORT_FLAG;
+ g_warning ("%s: invalid ServerTLSSupportFlag. Using default %d.",
+ G_STRFUNC, server->tls_settings->support_flag);
+ }
+
+ /* Possibly seed TLS parameters for first time */
if ((server->tls_settings->support_flag == DEXTER_SERVER_TLS_SUPPORT_AVAILABLE) ||
(server->tls_settings->support_flag == DEXTER_SERVER_TLS_SUPPORT_REQUIRED))
{
Modified: libdexter/trunk/dexter/dexter-server.h
===================================================================
--- libdexter/trunk/dexter/dexter-server.h 2007-06-11 02:30:30 UTC (rev 372)
+++ libdexter/trunk/dexter/dexter-server.h 2007-06-11 06:21:15 UTC (rev 373)
@@ -106,6 +106,7 @@
* @trust_file: full path to X.509 trust file in PEM format.
* @crl_file: full path to X.509 certificate revocation list file in PEM format.
* @client_cert_flag: server requirements for client certificates.
+ * @verify_hostname: verify that hostname of client matches its X.509 certificate.
*
* Parameters that the server will use when starting TLS. The config file is used to specify
* default values.
@@ -127,6 +128,7 @@
gchar *crl_file; /* ServerTLSCrlFile */
DexterServerTLSClientCertFlag
client_cert_flag; /* ServerTLSClientCertFlag */
+ gboolean verify_hostname; /* ServerTLSVerifyHostname */
};
Modified: libdexter/trunk/dexter/dexter-servercomm.c
===================================================================
--- libdexter/trunk/dexter/dexter-servercomm.c 2007-06-11 02:30:30 UTC (rev 372)
+++ libdexter/trunk/dexter/dexter-servercomm.c 2007-06-11 06:21:15 UTC (rev 373)
@@ -71,17 +71,19 @@
GError **error);
#ifdef HAVE_TLS
static DexterServerTLSParameters
- *dexter_servercomm_tls_parameters_new (const gchar *cert_file,
- const gchar *key_file,
- const gchar *trust_file,
- const gchar *crl_file,
- DexterServerTLSClientCertFlag client_cert_flag);
+ *dexter_servercomm_tls_parameters_new (const gchar *cert_file,
+ const gchar *key_file,
+ const gchar *trust_file,
+ const gchar *crl_file,
+ DexterServerTLSClientCertFlag client_cert_flag,
+ gboolean verify_hostname);
static DexterServerTLSParameters
- *dexter_servercomm_tls_parameters_dup (const DexterServerTLSParameters *source);
-static void dexter_servercomm_tls_parameters_free (DexterServerTLSParameters *tls_parameters);
-static void dexter_servercomm_starttls (DexterServerComm *servercomm,
- const DexterChannelMessage *msg,
- GError **error);
+ *dexter_servercomm_tls_parameters_dup (const DexterServerTLSParameters *source);
+static void dexter_servercomm_tls_parameters_free (DexterServerTLSParameters *tls_parameters);
+static void dexter_servercomm_tls_parameters_check (DexterServerTLSParameters *tls_parameters);
+static void dexter_servercomm_starttls (DexterServerComm *servercomm,
+ const DexterChannelMessage *msg,
+ GError **error);
#endif
/* function to destroy [timed]sampler when removed from sampler hash */
@@ -142,7 +144,7 @@
#ifdef HAVE_TLS
servercomm->tls_parameters =
- dexter_servercomm_tls_parameters_new (NULL, NULL, NULL, NULL, DEXTER_SERVER_TLS_CLIENT_CERT_NONE);
+ dexter_servercomm_tls_parameters_new (NULL, NULL, NULL, NULL, DEXTER_SERVER_TLS_CLIENT_CERT_NONE, FALSE);
/* fetch TLS parameters from config file */
if (!dexter_config_get_string (__ICONFIG,
@@ -150,56 +152,46 @@
&servercomm->tls_parameters->cert_file, NULL))
{
servercomm->tls_parameters->cert_file = g_strdup (DEFAULT_SERVERCOMM_TLS_CERT_FILE);
-#ifdef G_ENABLE_DEBUG
- g_message ("%s: using default %s for TLS cert file", G_STRFUNC, servercomm->tls_parameters->cert_file);
-#endif
}
if (!dexter_config_get_string (__ICONFIG,
"Main", "ServerTLSKeyFile",
&servercomm->tls_parameters->key_file, NULL))
{
servercomm->tls_parameters->key_file = g_strdup (DEFAULT_SERVERCOMM_TLS_KEY_FILE);
-#ifdef G_ENABLE_DEBUG
- g_message ("%s: using default %s for TLS key file", G_STRFUNC, servercomm->tls_parameters->key_file);
-#endif
}
if (!dexter_config_get_string (__ICONFIG,
"Main", "ServerTLSTrustFile",
&servercomm->tls_parameters->trust_file, NULL))
{
servercomm->tls_parameters->trust_file = g_strdup (DEFAULT_SERVERCOMM_TLS_TRUST_FILE);
-#ifdef G_ENABLE_DEBUG
- g_message ("%s: using default %s for TLS trust file", G_STRFUNC, servercomm->tls_parameters->trust_file);
-#endif
}
if (!dexter_config_get_string (__ICONFIG,
"Main", "ServerTLSCrlFile",
&servercomm->tls_parameters->crl_file, NULL))
{
servercomm->tls_parameters->crl_file = g_strdup (DEFAULT_SERVERCOMM_TLS_CRL_FILE);
-#ifdef G_ENABLE_DEBUG
- g_message ("%s: using default %s for TLS crl file", G_STRFUNC, servercomm->tls_parameters->crl_file);
-#endif
}
{
gint tmp_client_cert_flag;
-
if (!dexter_config_get_integer (__ICONFIG,
"Main", "ServerTLSClientCertFlag",
&tmp_client_cert_flag, NULL))
{
servercomm->tls_parameters->client_cert_flag = DEFAULT_SERVERCOMM_TLS_CLIENT_CERT_FLAG;
-#ifdef G_ENABLE_DEBUG
- g_message ("%s: using default %d for TLS client cert flag",
- G_STRFUNC, servercomm->tls_parameters->client_cert_flag);
-#endif
}
else
{
servercomm->tls_parameters->client_cert_flag = (DexterServerTLSClientCertFlag) tmp_client_cert_flag;
}
}
+ if (!dexter_config_get_boolean (__ICONFIG,
+ "Main", "ServerTLSVerifyHostname",
+ &servercomm->tls_parameters->verify_hostname, NULL))
+ {
+ servercomm->tls_parameters->verify_hostname = DEFAULT_SERVERCOMM_TLS_VERIFY_HOSTNAME;
+ }
+ dexter_servercomm_tls_parameters_check (servercomm->tls_parameters);
servercomm->tls_settings = NULL;
#endif /* HAVE_TLS */
}
@@ -278,7 +270,8 @@
const gchar *key_file,
const gchar *trust_file,
const gchar *crl_file,
- DexterServerTLSClientCertFlag client_cert_flag)
+ DexterServerTLSClientCertFlag client_cert_flag,
+ gboolean verify_hostname)
{
DexterServerTLSParameters *tls_parameters;
@@ -292,6 +285,7 @@
tls_parameters->trust_file = g_strdup (trust_file);
tls_parameters->crl_file = g_strdup (crl_file);
tls_parameters->client_cert_flag = client_cert_flag;
+ tls_parameters->verify_hostname = verify_hostname;
return tls_parameters;
}
@@ -307,7 +301,8 @@
source->key_file,
source->trust_file,
source->crl_file,
- source->client_cert_flag);
+ source->client_cert_flag,
+ source->verify_hostname);
}
@@ -325,6 +320,23 @@
}
+static void
+dexter_servercomm_tls_parameters_check (DexterServerTLSParameters *tls_parameters)
+{
+ g_return_if_fail (tls_parameters != NULL);
+
+ /* Verify sanity of client_cert_flag */
+ if ((tls_parameters->client_cert_flag != DEXTER_SERVER_TLS_CLIENT_CERT_NONE) &&
+ (tls_parameters->client_cert_flag != DEXTER_SERVER_TLS_CLIENT_CERT_REQUESTED) &&
+ (tls_parameters->client_cert_flag != DEXTER_SERVER_TLS_CLIENT_CERT_REQUIRED))
+ {
+ tls_parameters->client_cert_flag = DEFAULT_SERVERCOMM_TLS_CLIENT_CERT_FLAG;
+ g_warning ("%s: invalid ServerTLSClientCertFlag. Using default %d.",
+ G_STRFUNC, tls_parameters->client_cert_flag);
+ }
+}
+
+
static void
dexter_servercomm_starttls (DexterServerComm *servercomm,
const DexterChannelMessage *msg,
@@ -371,6 +383,9 @@
dexter_network_session_peer_addrlen (servercomm->session),
tls_parameters);
+ /* check parameters */
+ dexter_servercomm_tls_parameters_check (tls_parameters);
+
/* start TLS handshake, with adjusted parameters */
dexter_network_session_server_starttls (servercomm->session,
tls_parameters->cert_file,
@@ -378,6 +393,7 @@
tls_parameters->trust_file,
tls_parameters->crl_file,
tls_parameters->client_cert_flag,
+ tls_parameters->verify_hostname,
&local_error);
dexter_servercomm_tls_parameters_free (tls_parameters);
}
@@ -390,6 +406,7 @@
servercomm->tls_parameters->trust_file,
servercomm->tls_parameters->crl_file,
servercomm->tls_parameters->client_cert_flag,
+ servercomm->tls_parameters->verify_hostname,
&local_error);
}
Modified: libdexter/trunk/dexter/dexter-servercomm.h
===================================================================
--- libdexter/trunk/dexter/dexter-servercomm.h 2007-06-11 02:30:30 UTC (rev 372)
+++ libdexter/trunk/dexter/dexter-servercomm.h 2007-06-11 06:21:15 UTC (rev 373)
@@ -37,6 +37,7 @@
#define DEFAULT_SERVERCOMM_TLS_TRUST_FILE "/etc/ssl/libdexter/server-trust.pem"
#define DEFAULT_SERVERCOMM_TLS_CRL_FILE "/etc/ssl/libdexter/server-crl.pem"
#define DEFAULT_SERVERCOMM_TLS_CLIENT_CERT_FLAG 1
+#define DEFAULT_SERVERCOMM_TLS_VERIFY_HOSTNAME FALSE
#endif
Modified: libdexter/trunk/dexter/dexter-tls-gnutls.c
===================================================================
--- libdexter/trunk/dexter/dexter-tls-gnutls.c 2007-06-11 02:30:30 UTC (rev 372)
+++ libdexter/trunk/dexter/dexter-tls-gnutls.c 2007-06-11 06:21:15 UTC (rev 373)
@@ -381,7 +381,6 @@
#endif
g_return_val_if_fail (tls != NULL, FALSE);
- g_return_val_if_fail (canonical_hostname != NULL, FALSE);
g_return_val_if_fail (error == NULL || *error == NULL, FALSE);
/* Get peer's cert list */
@@ -489,8 +488,9 @@
}
- /* Check hostname on first cert
- if ((iter==0) && (gnutls_x509_crt_check_hostname (cert, canonical_hostname) != 0))
+ /* If canonical_hostname supplied, check hostname on first certificate. */
+ if (canonical_hostname && (iter==0) &&
+ (gnutls_x509_crt_check_hostname (cert, canonical_hostname) == 0))
{
g_set_error (error,
DEXTER_TLS_ERROR,
@@ -501,7 +501,6 @@
gnutls_x509_crt_deinit (cert);
return FALSE;
}
- */
/* Fetch cert activation time */
if ((activation_time = gnutls_x509_crt_get_activation_time (cert)) < 0)
Modified: libdexter/trunk/dexter/dexter-tls.h
===================================================================
--- libdexter/trunk/dexter/dexter-tls.h 2007-06-11 02:30:30 UTC (rev 372)
+++ libdexter/trunk/dexter/dexter-tls.h 2007-06-11 06:21:15 UTC (rev 373)
@@ -33,9 +33,10 @@
typedef enum
{
- DEXTER_TLS_CERT_NONE = 1<<0, /* for server use only: if not asking for client cert */
- DEXTER_TLS_CERT_REQUEST = 1<<1, /* for server use only: if requesting client cert */
- DEXTER_TLS_CERT_REQUIRE = 1<<2 /* for server use only: if requiring client cert */
+ DEXTER_TLS_CERT_NONE = 1<<0, /* for server use only: if not asking for client cert */
+ DEXTER_TLS_CERT_REQUEST = 1<<1, /* for server use only: if requesting client cert */
+ DEXTER_TLS_CERT_REQUIRE = 1<<2, /* for server use only: if requiring client cert */
+ DEXTER_TLS_VERIFY_HOSTNAME = 1<<3 /* check if dns name matches certificate */
} DexterTLSFlags;
typedef enum
Modified: libdexter/trunk/docs/reference/dexter/config-example.sgml
===================================================================
--- libdexter/trunk/docs/reference/dexter/config-example.sgml 2007-06-11 02:30:30 UTC (rev 372)
+++ libdexter/trunk/docs/reference/dexter/config-example.sgml 2007-06-11 06:21:15 UTC (rev 373)
@@ -35,6 +35,7 @@
ServerTLSCrlFile=/etc/ssl/libdexter/server-crl.pem
ServerTLSClientCertFlag=1
ServerTLSSupportFlag=1
+ServerTLSVerifyHostname=false
ChannelHost=0.0.0.0
ChannelService=3663
@@ -45,6 +46,7 @@
ChannelTLSKeyFile=/etc/ssl/libdexter/channel-key.pem
ChannelTLSTrustFile=/etc/ssl/libdexter/channel-trust.pem
ChannelTLSCrlFile=/etc/ssl/libdexter/channel-crl.pem
+ChannelTLSVerifyHostname=true
[Plugins]
null=/usr/lib/libdexter/dxt-null
Modified: libdexter/trunk/docs/reference/dexter/config-structure.sgml
===================================================================
--- libdexter/trunk/docs/reference/dexter/config-structure.sgml 2007-06-11 02:30:30 UTC (rev 372)
+++ libdexter/trunk/docs/reference/dexter/config-structure.sgml 2007-06-11 06:21:15 UTC (rev 373)
@@ -191,6 +191,15 @@
</listitem>
</varlistentry>
<varlistentry>
+ <term><emphasis role="bold">ServerTLSVerifyHostname</emphasis></term>
+ <listitem>
+ <para>
+ <userinput>[true|1 or false|0, default: false]</userinput> Indicates whether or not the server
+ requires the client's DNS hostname to match its X.509 certificate.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
<term><emphasis role="bold">ChannelHost</emphasis></term>
<listitem>
<para>
@@ -276,6 +285,15 @@
</listitem>
</varlistentry>
<varlistentry>
+ <term><emphasis role="bold">ChannelTLSVerifyHostname</emphasis></term>
+ <listitem>
+ <para>
+ <userinput>[true|1 or false|0, default: true]</userinput> Indicates whether or not the client
+ requires the server's DNS hostname to match its X.509 certificate.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
<term><emphasis role="bold">ThreadPoolNumThreads</emphasis></term>
<listitem>
<para>
Modified: libdexter/trunk/docs/reference/dexter/tmpl/dexter-channel.sgml
===================================================================
--- libdexter/trunk/docs/reference/dexter/tmpl/dexter-channel.sgml 2007-06-11 02:30:30 UTC (rev 372)
+++ libdexter/trunk/docs/reference/dexter/tmpl/dexter-channel.sgml 2007-06-11 06:21:15 UTC (rev 373)
@@ -90,6 +90,7 @@
@key_file:
@trust_file:
@crl_file:
+@verify_hostname:
<!-- ##### USER_FUNCTION DexterChannelTLSStartCallback ##### -->
<para>
Modified: libdexter/trunk/docs/reference/dexter/tmpl/dexter-server.sgml
===================================================================
--- libdexter/trunk/docs/reference/dexter/tmpl/dexter-server.sgml 2007-06-11 02:30:30 UTC (rev 372)
+++ libdexter/trunk/docs/reference/dexter/tmpl/dexter-server.sgml 2007-06-11 06:21:15 UTC (rev 373)
@@ -69,6 +69,7 @@
@trust_file:
@crl_file:
@client_cert_flag:
+@verify_hostname:
<!-- ##### USER_FUNCTION DexterServerTLSStartCallback ##### -->
<para>
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <pk...@us...> - 2007-06-11 02:30:34
|
Revision: 372
http://svn.sourceforge.net/libdexter/?rev=372&view=rev
Author: pkovacs
Date: 2007-06-10 19:30:30 -0700 (Sun, 10 Jun 2007)
Log Message:
-----------
Committing intermediate work on TLS.
Modified Paths:
--------------
libdexter/trunk/TODO
libdexter/trunk/dexter/dexter-channel.c
libdexter/trunk/dexter/dexter-network.c
libdexter/trunk/dexter/dexter-network.h
libdexter/trunk/dexter/dexter-server-internal.h
libdexter/trunk/dexter/dexter-server.c
libdexter/trunk/dexter/dexter-tls-gnutls.c
libdexter/trunk/dexter/dexter-tls.h
libdexter/trunk/docs/reference/dexter/config-example.sgml
libdexter/trunk/docs/reference/dexter/config-structure.sgml
libdexter/trunk/programs/dexterd/dexterd.c
Modified: libdexter/trunk/TODO
===================================================================
--- libdexter/trunk/TODO 2007-06-10 03:36:38 UTC (rev 371)
+++ libdexter/trunk/TODO 2007-06-11 02:30:30 UTC (rev 372)
@@ -1,17 +1,14 @@
TLS work in progress
refs: RFC 2246 (TLS protcol), RFC 2487 (STARTTLS extention to SMTP)
-- when server starts with tls permitted, seed the tls params *then*
- and not during deter_tls_new () as client is connecting for first time.
-- create daily event that discards/updates tls seed params, completely
- eliminating the seeding and client connecting association.
- create new config items: ChannelTLSVerifyServerHostname/ServerTLSVerifyClientHostname
to optionally verify hostname on first cert in the chain. Useful for situations
where the peer does not have a reliable DNS entry.
-- during TLS handshake/verify, loop on EAGAIN/EINTR network errors
- servercomm changes to *require* tls when that is indicated.
- dexter_tls_recv: 'A TLS packet with unexpected length was received'
when breaking off client or server. There should not be any error.
+- syslog certificate failures.
+- add DEXTER_NETWORK_ERROR_CERTIFICATE.
- improve msgframer. perhaps add sscanf for complete protocol message on start
state and if \n in buffer.
Modified: libdexter/trunk/dexter/dexter-channel.c
===================================================================
--- libdexter/trunk/dexter/dexter-channel.c 2007-06-10 03:36:38 UTC (rev 371)
+++ libdexter/trunk/dexter/dexter-channel.c 2007-06-11 02:30:30 UTC (rev 372)
@@ -807,9 +807,11 @@
{
/* read bytes from server and frame them into dexter messages */
msgbytes=dexter_network_session_recv (channel->session, recvbuf, channel->recvbufsize, 0, &local_error);
- if (local_error && local_error->code==DEXTER_NETWORK_ERROR_EINTR)
+ if (local_error &&
+ ((local_error->code==DEXTER_NETWORK_ERROR_EINTR) ||
+ (local_error->code==DEXTER_NETWORK_ERROR_EAGAIN)))
{
- /* non-fatal EINTR */
+ /* non-fatal EINTR/EAGAIN */
g_clear_error (&local_error);
continue;
}
@@ -1117,7 +1119,7 @@
channel->thread = NULL;
}
- dexter_network_session_close (channel->session, NULL);
+ dexter_network_session_close (channel->session);
dexter_channel_event (channel, DEXTER_CHANNEL_EVENT_CLOSED);
g_object_unref (channel);
Modified: libdexter/trunk/dexter/dexter-network.c
===================================================================
--- libdexter/trunk/dexter/dexter-network.c 2007-06-10 03:36:38 UTC (rev 371)
+++ libdexter/trunk/dexter/dexter-network.c 2007-06-11 02:30:30 UTC (rev 372)
@@ -963,44 +963,19 @@
}
-gboolean
-dexter_network_session_close (dexter_network_session_t *session,
- GError **error)
+void
+dexter_network_session_close (dexter_network_session_t *session)
{
- int ret;
+ g_return_if_fail (session != NULL);
+ g_return_if_fail (session->sockfd > 0);
- g_return_val_if_fail (session != NULL, FALSE);
- g_return_val_if_fail (session->sockfd > 0, FALSE);
- g_return_val_if_fail (error == NULL || *error == NULL, FALSE);
-
#ifdef HAVE_TLS
if (session->tls)
dexter_tls_close (session->tls);
#endif
- if ((ret = close (session->sockfd)) == -1)
- {
- if (errno == EINTR)
- {
- g_set_error (error,
- DEXTER_NETWORK_ERROR,
- DEXTER_NETWORK_ERROR_EINTR,
- "%s: close operation was interrupted by a signal",
- G_STRFUNC);
- return FALSE;
- }
- else
- {
- g_set_error (error,
- DEXTER_NETWORK_ERROR,
- DEXTER_NETWORK_ERROR_FAILED,
- "%s: %s",
- G_STRFUNC, g_strerror (errno));
- return FALSE;
- }
- }
-
- return TRUE;
+ shutdown (session->sockfd, SHUT_RDWR);
+ close (session->sockfd);
}
Modified: libdexter/trunk/dexter/dexter-network.h
===================================================================
--- libdexter/trunk/dexter/dexter-network.h 2007-06-10 03:36:38 UTC (rev 371)
+++ libdexter/trunk/dexter/dexter-network.h 2007-06-11 02:30:30 UTC (rev 372)
@@ -111,8 +111,7 @@
int flags,
GError **error) G_GNUC_INTERNAL;
-gboolean dexter_network_session_close (dexter_network_session_t *session,
- GError **error) G_GNUC_INTERNAL;
+void dexter_network_session_close (dexter_network_session_t *session) G_GNUC_INTERNAL;
void dexter_network_session_free (dexter_network_session_t *session) G_GNUC_INTERNAL;
Modified: libdexter/trunk/dexter/dexter-server-internal.h
===================================================================
--- libdexter/trunk/dexter/dexter-server-internal.h 2007-06-10 03:36:38 UTC (rev 371)
+++ libdexter/trunk/dexter/dexter-server-internal.h 2007-06-11 02:30:30 UTC (rev 372)
@@ -33,6 +33,9 @@
#define DEFAULT_SERVER_SOCKET_OPTIONS NULL
#define DEFAULT_SERVER_MAX_CLIENTS 5
#define DEFAULT_SERVER_RECV_BUFFER_SIZE 512
+#ifdef HAVE_TLS
+#define DEFAULT_SERVER_TLS_SUPPORT_FLAG DEXTER_SERVER_TLS_SUPPORT_NONE
+#endif
#define DEXTER_TYPE_SERVER (dexter_server_get_type ())
Modified: libdexter/trunk/dexter/dexter-server.c
===================================================================
--- libdexter/trunk/dexter/dexter-server.c 2007-06-10 03:36:38 UTC (rev 371)
+++ libdexter/trunk/dexter/dexter-server.c 2007-06-11 02:30:30 UTC (rev 372)
@@ -41,7 +41,7 @@
*
* Several settings in the configuration file control the default behavior of
* Libdexter server objects, including default host name/ip, listening service/port,
- * socket options, etc.
+ * socket options, TLS settings, etc.
*
* Applications should stop any running servers when done with dexter_server_stop().
* You should then free the server objects as a last step with dexter_server_free().
@@ -70,6 +70,9 @@
#include <dexter-network.h>
#include <dexter-msgframer.h>
#include <dexter-servercomm.h>
+#ifdef HAVE_TLS
+#include <dexter-tls.h>
+#endif
#include <dexter-private.h>
#include <dexter-alias.h>
@@ -87,11 +90,13 @@
static GError *dexter_server_convert_network_error (GError **network_error);
#ifdef HAVE_TLS
static DexterServerTLSSettings
- *dexter_server_tls_settings_new (DexterServerTLSSupportFlag support_flag,
+ *dexter_server_tls_settings_new (DexterServerTLSSupportFlag support_flag,
DexterServerTLSStartCallback starttls_callback);
static DexterServerTLSSettings
*dexter_server_tls_settings_dup (const DexterServerTLSSettings *source);
static void dexter_server_tls_settings_free (DexterServerTLSSettings *tls_settings);
+ /* refresh tls seed in event loop */
+static gboolean _tls_seed_refresh_func (gpointer unused);
#endif
/* accept loop runs in a thread */
@@ -102,11 +107,17 @@
#ifdef HAVE_LIBWRAP
-static struct request_info _request; /* client request for libwrap */
+static struct request_info _request; /* client request for libwrap */
static gboolean _request_initialized = FALSE;
-G_LOCK_DEFINE_STATIC (_request); /* assume libwrap is not thread-safe */
+G_LOCK_DEFINE_STATIC (_request); /* assume libwrap is not thread-safe */
#endif
+#ifdef HAVE_TLS
+static GSource *tls_seed_refresh_source = NULL; /* event source to refresh tls seed periodically */
+G_LOCK_DEFINE_STATIC (_tls_seed_refresh_mutex); /* mutex for tls seed refresh operations */
+static volatile int tls_server_count = 0; /* tls seed refresh source destroyed when count 0 */
+#endif
+
struct _DexterServer
{
GObject parent;
@@ -131,7 +142,7 @@
gint max_clients; /* max number of simultaneous client connections */
int recvbufsize; /* receive buffer size for service sockets */
-#if HAVE_TLS
+#ifdef HAVE_TLS
DexterServerTLSSettings
*tls_settings; /* TLS settings from dexter_server_start () */
#endif
@@ -428,9 +439,22 @@
g_slice_free (DexterServerTLSSettings, tls_settings);
}
+
+
+static gboolean
+_tls_seed_refresh_func (gpointer unused)
+{
+#ifdef G_ENABLE_DEBUG
+ g_message (G_STRFUNC);
#endif
+ /* seed the TLS parameters for certificate servers */
+ dexter_tls_server_seed ();
+ return TRUE;
+}
+#endif
+
static void
_server_thread_func (DexterServer *server)
{
@@ -667,9 +691,11 @@
{
/* read bytes from client and frame them into dexter messages */
msgbytes=dexter_network_session_recv (session, recvbuf, sd->recvbufsize, 0, &local_error);
- if (local_error && local_error->code==DEXTER_NETWORK_ERROR_EINTR)
+ if (local_error &&
+ ((local_error->code==DEXTER_NETWORK_ERROR_EINTR) ||
+ (local_error->code==DEXTER_NETWORK_ERROR_EAGAIN)))
{
- /* non-fatal EINTR */
+ /* non-fatal EINTR/EAGAIN */
g_clear_error (&local_error);
continue;
}
@@ -729,7 +755,7 @@
}
while ((!done) && (dexter_get_state () == DEXTER_STATE_UP));
- dexter_network_session_close (session, NULL);
+ dexter_network_session_close (session);
dexter_network_session_free (session);
/* decrement client count. thread that decrements count to zero frees the counter. */
@@ -852,9 +878,13 @@
* program. The server will accept connections immediately and continue to accept connections
* until dexter_server_stop() is called.
*
- * If @tls_settings is supplied, those settings will be used to control how the server runs TLS.
- * If %NULL, the server will not support TLS services.
+ * On TLS-enabled installations, @tls_settings may be supplied to control how the server support TLS.
+ * If %NULL is indicated, the server will use settings from the config file, e.g. ServerTLSSupportFlag,
+ * to determine the level of TLS support.
*
+ * On non-TLS installations, you <emphasis>must</emphasis> specify %NULL for @tls_settings,
+ * otherwise @error will be set to @DEXTER_SERVER_ERROR_TLS_NOT_ENABLED.
+ *
* Returns: #gboolean indicating success or failure.
**/
gboolean
@@ -870,23 +900,60 @@
g_return_val_if_fail (DEXTER_IS_SERVER (server), FALSE);
g_return_val_if_fail (error == NULL || *error == NULL, FALSE);
+ g_return_val_if_fail (tls_settings == NULL
#ifdef HAVE_TLS
- g_return_val_if_fail (tls_settings == NULL ||
- tls_settings->support_flag == DEXTER_SERVER_TLS_SUPPORT_NONE ||
- tls_settings->support_flag == DEXTER_SERVER_TLS_SUPPORT_AVAILABLE ||
- tls_settings->support_flag == DEXTER_SERVER_TLS_SUPPORT_REQUIRED, FALSE);
-#else
- g_return_val_if_fail (tls_settings == NULL, FALSE);
+ || tls_settings->support_flag == DEXTER_SERVER_TLS_SUPPORT_NONE
+ || tls_settings->support_flag == DEXTER_SERVER_TLS_SUPPORT_AVAILABLE
+ || tls_settings->support_flag == DEXTER_SERVER_TLS_SUPPORT_REQUIRED
#endif
+ , FALSE);
+#ifdef HAVE_TLS
+ dexter_server_tls_settings_free (server->tls_settings);
if (tls_settings)
-#ifdef HAVE_TLS
{
- dexter_server_tls_settings_free (server->tls_settings);
server->tls_settings = dexter_server_tls_settings_dup (tls_settings);
+
}
+ else /* if (tls_settings) */
+ {
+ /* grab default support flag from config */
+ gint tmp_support_flag;
+
+ server->tls_settings = dexter_server_tls_settings_new (DEXTER_SERVER_TLS_SUPPORT_NONE, NULL);
+ if (!dexter_config_get_integer (__ICONFIG, "Main", "ServerTLSSupportFlag",
+ &tmp_support_flag, NULL))
+ {
+ server->tls_settings->support_flag = DEFAULT_SERVER_TLS_SUPPORT_FLAG;
+ g_warning ("%s: using default %d for ServerTLSSupportFlag",
+ G_STRFUNC, server->tls_settings->support_flag);
+ }
+ else
+ {
+ server->tls_settings->support_flag = (DexterServerTLSSupportFlag) tmp_support_flag;
+ }
+ }
+
+ if ((server->tls_settings->support_flag == DEXTER_SERVER_TLS_SUPPORT_AVAILABLE) ||
+ (server->tls_settings->support_flag == DEXTER_SERVER_TLS_SUPPORT_REQUIRED))
+ {
+ G_LOCK (_tls_seed_refresh_mutex);
+
+ if (!tls_seed_refresh_source)
+ {
+ /* no refresh source is running in the event loop, so we know the the TLS parameters
+ * have never yet been seeded, i.e. this is the first TLS-enabled server to be started.
+ * seed the parameters for the first time now. */
+ dexter_tls_server_seed ();
+ }
+
+ G_UNLOCK (_tls_seed_refresh_mutex);
+ }
#else
+
+ if (tls_settings)
{
+ /* specifying tls_settings parameter on installations without TLS is not permitted */
g_set_error (error,
DEXTER_SERVER_ERROR,
DEXTER_SERVER_ERROR_TLS_NOT_ENABLED,
@@ -940,6 +1007,34 @@
dexter_server_set_state (server, DEXTER_SERVER_STATE_STARTED);
+#ifdef HAVE_TLS
+ if ((server->tls_settings->support_flag == DEXTER_SERVER_TLS_SUPPORT_AVAILABLE) ||
+ (server->tls_settings->support_flag == DEXTER_SERVER_TLS_SUPPORT_REQUIRED))
+ {
+ G_LOCK (_tls_seed_refresh_mutex);
+
+ /* if not yet started, start a refresh source func to reseed TLS parameters daily */
+ if (!tls_seed_refresh_source)
+ {
+ tls_seed_refresh_source = g_timeout_source_new (1000 /* millisec/sec */ *
+ 60 /* sec/min */ *
+ 60 /* min/hour */ *
+ 24 /* hour/day */); /* millisec/day */
+ g_source_set_callback (tls_seed_refresh_source,
+ (GSourceFunc) _tls_seed_refresh_func,
+ NULL,
+ NULL);
+ g_source_set_can_recurse (tls_seed_refresh_source, FALSE);
+ dexter_event_loop_source_attach (__EVENTLOOP, tls_seed_refresh_source);
+ }
+
+ G_UNLOCK (_tls_seed_refresh_mutex);
+
+ /* increment count of TLS-enabled servers */
+ g_atomic_int_add (&tls_server_count, 1);
+ }
+#endif /* HAVE_TLS */
+
g_object_unref (server);
return TRUE;
@@ -992,6 +1087,18 @@
}
dexter_server_set_state (server, DEXTER_SERVER_STATE_STOPPED);
+#ifdef HAVE_TLS
+ if (g_atomic_int_dec_and_test (&tls_server_count))
+ {
+ /* no more TLS servers running, so stop the TLS parameter refresh source */
+ G_LOCK (_tls_seed_refresh_mutex);
+ g_source_destroy (tls_seed_refresh_source);
+ g_source_unref (tls_seed_refresh_source);
+ tls_seed_refresh_source=NULL;
+ G_UNLOCK (_tls_seed_refresh_mutex);
+ }
+#endif
+
g_object_unref (server);
return TRUE;
Modified: libdexter/trunk/dexter/dexter-tls-gnutls.c
===================================================================
--- libdexter/trunk/dexter/dexter-tls-gnutls.c 2007-06-10 03:36:38 UTC (rev 371)
+++ libdexter/trunk/dexter/dexter-tls-gnutls.c 2007-06-11 02:30:30 UTC (rev 372)
@@ -35,11 +35,8 @@
#define DH_BITS 1024
-static void test_and_generate_dh_params (void);
-
/* We will discard and regenerate the dh_params once a day */
static gnutls_dh_params_t _dh_params;
-static GDate _dh_params_date;
static gboolean _dh_params_initialized = FALSE;
G_LOCK_DEFINE_STATIC (_dh_params_mutex);
G_LOCK_DEFINE_STATIC (_tls_lib_mutex);
@@ -60,34 +57,6 @@
};
-void test_and_generate_dh_params (void)
-{
- /* Generate static dh params, or regenerate them if one day has since past */
- GTimeVal current_time;
- GDate current_date;
-
- g_get_current_time (¤t_time);
- g_date_set_time_val (¤t_date, ¤t_time);
-
- G_LOCK (_dh_params_mutex);
-
- if (!_dh_params_initialized)
- {
- g_date_clear (&_dh_params_date, 1);
- gnutls_dh_params_init (&_dh_params);
- _dh_params_initialized=TRUE;
- }
-
- if (!g_date_valid (&_dh_params_date) || g_date_days_between (&_dh_params_date, ¤t_date) > 0)
- {
- gnutls_dh_params_generate2 (_dh_params, DH_BITS);
- g_date_set_time_val (&_dh_params_date, ¤t_time);
- }
-
- G_UNLOCK (_dh_params_mutex);
-}
-
-
gboolean
dexter_tls_library_init (GError **error)
{
@@ -140,6 +109,27 @@
}
+void
+dexter_tls_server_seed (void)
+{
+#ifdef G_ENABLE_DEBUG
+ g_message (G_STRFUNC);
+#endif
+ /* Generate dh params for certificate servers */
+ G_LOCK (_dh_params_mutex);
+
+ if (!_dh_params_initialized)
+ {
+ gnutls_dh_params_init (&_dh_params);
+ _dh_params_initialized=TRUE;
+ }
+
+ gnutls_dh_params_generate2 (_dh_params, DH_BITS);
+
+ G_UNLOCK (_dh_params_mutex);
+}
+
+
dexter_tls_t *
dexter_tls_new (gboolean role,
const gchar *cert_file,
@@ -315,9 +305,6 @@
/* Server-side only */
if (role==DEXTER_TLS_ROLE_SERVER)
{
- /* Check for possible regeneration of dh params */
- test_and_generate_dh_params ();
-
/* Set up cert request from client */
if (flags & DEXTER_TLS_CERT_REQUEST)
gnutls_certificate_server_set_request (tls->session, GNUTLS_CERT_REQUEST);
@@ -354,25 +341,14 @@
g_return_val_if_fail (error == NULL || *error == NULL, FALSE);
gnutls_transport_set_ptr (tls->session, (gnutls_transport_ptr_t) sockfd);
- gnutls_error = gnutls_handshake (tls->session);
- if (gnutls_error == GNUTLS_E_INTERRUPTED)
+
+ do
{
- g_set_error (error,
- DEXTER_TLS_ERROR,
- DEXTER_TLS_ERROR_EINTR,
- "%s: a signal occurred during handshake",
- G_STRFUNC);
- return FALSE;
+ gnutls_error = gnutls_handshake (tls->session);
+ g_usleep (20); /* avoid tight loop */
}
- if (gnutls_error == GNUTLS_E_AGAIN)
- {
- g_set_error (error,
- DEXTER_TLS_ERROR,
- DEXTER_TLS_ERROR_EAGAIN,
- "%s: operation would block",
- G_STRFUNC);
- return FALSE;
- }
+ while ((gnutls_error == GNUTLS_E_AGAIN) || (gnutls_error == GNUTLS_E_INTERRUPTED));
+
if (gnutls_error < 0)
{
g_set_error (error,
@@ -702,7 +678,7 @@
g_message (G_STRFUNC);
#endif
- gnutls_bye (tls->session, GNUTLS_SHUT_WR);
+ gnutls_bye (tls->session, GNUTLS_SHUT_RDWR);
}
Modified: libdexter/trunk/dexter/dexter-tls.h
===================================================================
--- libdexter/trunk/dexter/dexter-tls.h 2007-06-10 03:36:38 UTC (rev 371)
+++ libdexter/trunk/dexter/dexter-tls.h 2007-06-11 02:30:30 UTC (rev 372)
@@ -56,6 +56,8 @@
gboolean dexter_tls_library_init (GError **error) G_GNUC_INTERNAL;
+void dexter_tls_server_seed (void) G_GNUC_INTERNAL;
+
dexter_tls_t *dexter_tls_new (gboolean role,
const gchar *cert_file,
const gchar *key_file,
Modified: libdexter/trunk/docs/reference/dexter/config-example.sgml
===================================================================
--- libdexter/trunk/docs/reference/dexter/config-example.sgml 2007-06-10 03:36:38 UTC (rev 371)
+++ libdexter/trunk/docs/reference/dexter/config-example.sgml 2007-06-11 02:30:30 UTC (rev 372)
@@ -34,6 +34,7 @@
ServerTLSTrustFile=/etc/ssl/libdexter/server-trust.pem
ServerTLSCrlFile=/etc/ssl/libdexter/server-crl.pem
ServerTLSClientCertFlag=1
+ServerTLSSupportFlag=1
ChannelHost=0.0.0.0
ChannelService=3663
Modified: libdexter/trunk/docs/reference/dexter/config-structure.sgml
===================================================================
--- libdexter/trunk/docs/reference/dexter/config-structure.sgml 2007-06-10 03:36:38 UTC (rev 371)
+++ libdexter/trunk/docs/reference/dexter/config-structure.sgml 2007-06-11 02:30:30 UTC (rev 372)
@@ -181,6 +181,16 @@
</listitem>
</varlistentry>
<varlistentry>
+ <term><emphasis role="bold">ServerTLSSupportFlag</emphasis></term>
+ <listitem>
+ <para>
+ <userinput>[n=0,1 or 2, default: 0]</userinput> Flag indicating server support for TLS.
+ See <ulink url="libdexter-Servers.html#DexterServerTLSSupportFlag">
+ DexterServerTLSSupportFlag</ulink>.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
<term><emphasis role="bold">ChannelHost</emphasis></term>
<listitem>
<para>
Modified: libdexter/trunk/programs/dexterd/dexterd.c
===================================================================
--- libdexter/trunk/programs/dexterd/dexterd.c 2007-06-10 03:36:38 UTC (rev 371)
+++ libdexter/trunk/programs/dexterd/dexterd.c 2007-06-11 02:30:30 UTC (rev 372)
@@ -72,7 +72,6 @@
{
GOptionContext *context;
DexterServer *server;
- DexterServerTLSSettings tls_settings;
GError *err = NULL;
/* Abort on any warning within this program's domain */
@@ -163,14 +162,7 @@
if (!(server = dexter_server_new (NULL, NULL, NULL)))
g_warning ("unable to create server");
- tls_settings.starttls_callback = NULL;
-#ifdef HAVE_TLS
- tls_settings.support_flag = DEXTER_SERVER_TLS_SUPPORT_AVAILABLE;
- tls_settings.starttls_callback = NULL;
- dexter_server_start (server, &tls_settings, &err);
-#else
dexter_server_start (server, NULL, &err);
-#endif
if (err)
g_warning (err->message);
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <pk...@us...> - 2007-06-10 03:36:40
|
Revision: 371
http://svn.sourceforge.net/libdexter/?rev=371&view=rev
Author: pkovacs
Date: 2007-06-09 20:36:38 -0700 (Sat, 09 Jun 2007)
Log Message:
-----------
Committing intermediate work on TLS.
Modified Paths:
--------------
libdexter/trunk/TODO
libdexter/trunk/dexter/dexter-network.c
libdexter/trunk/dexter/dexter-threadpool.h
libdexter/trunk/dexter/dexter-tls-gnutls.c
libdexter/trunk/dexter/dexter-tls.h
libdexter/trunk/programs/dexterd/dexterd.c
Modified: libdexter/trunk/TODO
===================================================================
--- libdexter/trunk/TODO 2007-06-09 22:29:28 UTC (rev 370)
+++ libdexter/trunk/TODO 2007-06-10 03:36:38 UTC (rev 371)
@@ -1,8 +1,17 @@
TLS work in progress
refs: RFC 2246 (TLS protcol), RFC 2487 (STARTTLS extention to SMTP)
-Libdexter will implement upward negociation for TLS, using a method similar to SMTP STARTTLS.
-Libdexter will use abstracted TLS commands to hide gnutls/openssl implementations.
+- when server starts with tls permitted, seed the tls params *then*
+ and not during deter_tls_new () as client is connecting for first time.
+- create daily event that discards/updates tls seed params, completely
+ eliminating the seeding and client connecting association.
+- create new config items: ChannelTLSVerifyServerHostname/ServerTLSVerifyClientHostname
+ to optionally verify hostname on first cert in the chain. Useful for situations
+ where the peer does not have a reliable DNS entry.
+- during TLS handshake/verify, loop on EAGAIN/EINTR network errors
+- servercomm changes to *require* tls when that is indicated.
+- dexter_tls_recv: 'A TLS packet with unexpected length was received'
+ when breaking off client or server. There should not be any error.
- improve msgframer. perhaps add sscanf for complete protocol message on start
state and if \n in buffer.
Modified: libdexter/trunk/dexter/dexter-network.c
===================================================================
--- libdexter/trunk/dexter/dexter-network.c 2007-06-09 22:29:28 UTC (rev 370)
+++ libdexter/trunk/dexter/dexter-network.c 2007-06-10 03:36:38 UTC (rev 371)
@@ -333,6 +333,11 @@
guint flags,
GError **error)
{
+ GError *local_error = NULL;
+
+ g_return_val_if_fail (session != NULL, FALSE);
+ g_return_val_if_fail (error == NULL || *error == NULL, FALSE);
+
#ifdef G_ENABLE_DEBUG
g_message (G_STRFUNC);
g_message ("TLS cert file = %s", cert_file);
@@ -342,6 +347,62 @@
g_message ("TLS flags = %d", flags);
#endif
+ /* check if TLS already started */
+ if (session->tls)
+ {
+ g_set_error (error,
+ DEXTER_NETWORK_ERROR,
+ DEXTER_NETWORK_ERROR_FAILED,
+ "%s: TLS alreayd started", G_STRFUNC);
+ return FALSE;
+ }
+
+ /* create session TLS data */
+ session->tls = dexter_tls_new (role,
+ cert_file,
+ key_file,
+ trust_file,
+ crl_file,
+ flags,
+ &local_error);
+ if (local_error)
+ {
+ g_set_error (error,
+ DEXTER_NETWORK_ERROR,
+ DEXTER_NETWORK_ERROR_FAILED,
+ "%s: error creating TLS session: %s", G_STRFUNC, local_error->message);
+ g_clear_error (&local_error);
+ return FALSE;
+ }
+
+ /* TLS handshake */
+ dexter_tls_handshake (session->tls,
+ session->sockfd,
+ &local_error);
+ if (local_error)
+ {
+ g_set_error (error,
+ DEXTER_NETWORK_ERROR,
+ DEXTER_NETWORK_ERROR_FAILED,
+ "%s: error during TLS handshake: %s", G_STRFUNC, local_error->message);
+ g_clear_error (&local_error);
+ return FALSE;
+ }
+
+ /* verify peer */
+ dexter_tls_verify_peer (session->tls,
+ "localhost",
+ &local_error);
+ if (local_error)
+ {
+ g_set_error (error,
+ DEXTER_NETWORK_ERROR,
+ DEXTER_NETWORK_ERROR_FAILED,
+ "%s: error verifying TLS peer: %s", G_STRFUNC, local_error->message);
+ g_clear_error (&local_error);
+ return FALSE;
+ }
+
return TRUE;
}
#endif
@@ -651,8 +712,8 @@
#else
return _dexter_network_session_starttls (session,
DEXTER_TLS_ROLE_CLIENT,
+ cert_file,
key_file,
- cert_file,
trust_file,
crl_file,
0,
@@ -678,8 +739,8 @@
#else
return _dexter_network_session_starttls (session,
DEXTER_TLS_ROLE_SERVER,
+ cert_file,
key_file,
- cert_file,
trust_file,
crl_file,
1<<client_cert_flag,
@@ -756,8 +817,54 @@
g_return_val_if_fail (bufsize > 0, -1);
g_return_val_if_fail (error == NULL || *error == NULL, -1);
- if ((n = recv (session->sockfd, buffer, bufsize, flags)) == -1)
+ /* use TLS api if active */
+ if (session->tls)
{
+ GError *local_error = NULL;
+
+ n = dexter_tls_recv (session->tls, buffer, bufsize, &local_error);
+ if (local_error)
+ {
+ n = -1;
+ switch (local_error->code)
+ {
+ case DEXTER_TLS_ERROR_EINTR:
+ {
+ g_set_error (error,
+ DEXTER_NETWORK_ERROR,
+ DEXTER_NETWORK_ERROR_EINTR,
+ "%s: a signal occurred before any data was delivered",
+ G_STRFUNC);
+ g_clear_error (&local_error);
+ break;
+ }
+ case DEXTER_TLS_ERROR_EAGAIN:
+ {
+ g_set_error (error,
+ DEXTER_NETWORK_ERROR,
+ DEXTER_NETWORK_ERROR_EINTR,
+ "%s: operation would block",
+ G_STRFUNC);
+ g_clear_error (&local_error);
+ break;
+ }
+ default:
+ {
+ g_set_error (error,
+ DEXTER_NETWORK_ERROR,
+ DEXTER_NETWORK_ERROR_FAILED,
+ "%s: %s",
+ G_STRFUNC, local_error->message);
+ g_clear_error (&local_error);
+ break;
+ }
+ }
+ }
+ }
+
+ /* use ordinary network api */
+ else if ((n = recv (session->sockfd, buffer, bufsize, flags)) == -1)
+ {
if (errno == EINTR)
{
g_set_error (error,
@@ -806,8 +913,35 @@
while (total < remaining)
{
- if ((n = send (session->sockfd, buffer+total, bufsize, flags)) == -1)
+ /* use TLS api if active */
+ if (session->tls)
{
+ GError *local_error = NULL;
+ n = dexter_tls_send (session->tls, buffer+total, bufsize, &local_error);
+ if (local_error)
+ {
+ if ((local_error->code == DEXTER_TLS_ERROR_EINTR) ||
+ (local_error->code == DEXTER_TLS_ERROR_EAGAIN))
+ {
+ g_clear_error (&local_error);
+ continue;
+ }
+ else
+ {
+ g_set_error (error,
+ DEXTER_NETWORK_ERROR,
+ DEXTER_NETWORK_ERROR_FAILED,
+ "%s: %s",
+ G_STRFUNC, local_error->message);
+ g_clear_error (&local_error);
+ return -1;
+ }
+ }
+ }
+
+ /* use ordinary network api */
+ else if ((n = send (session->sockfd, buffer+total, bufsize, flags)) == -1)
+ {
if ((errno == EINTR) || (errno == EAGAIN))
continue;
else
@@ -839,6 +973,11 @@
g_return_val_if_fail (session->sockfd > 0, FALSE);
g_return_val_if_fail (error == NULL || *error == NULL, FALSE);
+#ifdef HAVE_TLS
+ if (session->tls)
+ dexter_tls_close (session->tls);
+#endif
+
if ((ret = close (session->sockfd)) == -1)
{
if (errno == EINTR)
Modified: libdexter/trunk/dexter/dexter-threadpool.h
===================================================================
--- libdexter/trunk/dexter/dexter-threadpool.h 2007-06-09 22:29:28 UTC (rev 370)
+++ libdexter/trunk/dexter/dexter-threadpool.h 2007-06-10 03:36:38 UTC (rev 371)
@@ -31,8 +31,14 @@
/* defaults for g_thread_pool_new () */
#define DEFAULT_THREADPOOL_INIT_EXCLUSIVE TRUE
#define DEFAULT_THREADPOOL_INIT_MAX_THREADS 10 /* "ThreadPoolNumThreads" */
-/* defaults for g_thread_pool_exit () */
-#define DEFAULT_THREADPOOL_EXIT_IMMEDIATE TRUE
+/* defaults for g_thread_pool_exit ()
+ * Note: EXIT_IMMEDIATE changed to FALSE to allow all pending tasks to be processed
+ * before shutting down thread pool. The reason for doing this is to allow asynchronous
+ * callbacks to run and unref the objects they belong to, e.g. channels or servers.
+ * If we free the threadpool immediately with pending callbacks that are not run as
+ * a consequence, those object refs are not unwound and the objects do not finalize.
+ */
+#define DEFAULT_THREADPOOL_EXIT_IMMEDIATE FALSE
#define DEFAULT_THREADPOOL_EXIT_WAIT TRUE /* "ThreadPoolExitWait" */
Modified: libdexter/trunk/dexter/dexter-tls-gnutls.c
===================================================================
--- libdexter/trunk/dexter/dexter-tls-gnutls.c 2007-06-09 22:29:28 UTC (rev 370)
+++ libdexter/trunk/dexter/dexter-tls-gnutls.c 2007-06-10 03:36:38 UTC (rev 371)
@@ -142,8 +142,8 @@
dexter_tls_t *
dexter_tls_new (gboolean role,
+ const gchar *cert_file,
const gchar *key_file,
- const gchar *cert_file,
const gchar *trust_file,
const gchar *crl_file,
guint flags,
@@ -159,25 +159,25 @@
g_return_val_if_fail (error == NULL || *error == NULL, FALSE);
/* Require absolute paths on any files specified. */
- if (key_file && !g_path_is_absolute (key_file))
+ if (cert_file && *cert_file && !g_path_is_absolute (cert_file))
{
g_set_error (error,
DEXTER_TLS_ERROR,
DEXTER_TLS_ERROR_FILE,
"%s: %s is not an absolute path",
- G_STRFUNC, key_file);
+ G_STRFUNC, cert_file);
return NULL;
}
- if (cert_file && !g_path_is_absolute (cert_file))
+ if (key_file && *key_file && !g_path_is_absolute (key_file))
{
g_set_error (error,
DEXTER_TLS_ERROR,
DEXTER_TLS_ERROR_FILE,
"%s: %s is not an absolute path",
- G_STRFUNC, cert_file);
+ G_STRFUNC, key_file);
return NULL;
}
- if (trust_file && !g_path_is_absolute (trust_file))
+ if (trust_file && *trust_file && !g_path_is_absolute (trust_file))
{
g_set_error (error,
DEXTER_TLS_ERROR,
@@ -186,13 +186,14 @@
G_STRFUNC, trust_file);
return NULL;
}
- if (crl_file && !g_path_is_absolute (crl_file))
+ if (crl_file && *crl_file && !g_path_is_absolute (crl_file))
{
g_set_error (error,
DEXTER_TLS_ERROR,
DEXTER_TLS_ERROR_FILE,
"%s: %s is not an absolute path",
G_STRFUNC, crl_file);
+ return NULL;
}
tls = g_slice_new0 (dexter_tls_t);
@@ -242,7 +243,7 @@
}
/* Set x509 trust file */
- if (trust_file)
+ if (trust_file && *trust_file)
{
/* On success, returns number of certs processed, so we want a non-negative back */
if ((gnutls_error =
@@ -261,7 +262,7 @@
}
/* Set x509 cert revocation list file */
- if (crl_file)
+ if (crl_file && *crl_file)
{
/* On success, returns number of certs processed, so we want a non-negative back */
if ((gnutls_error =
@@ -280,7 +281,7 @@
}
/* Set x509 key and cert files */
- if (key_file && cert_file)
+ if (key_file && *key_file && cert_file && *cert_file)
{
if ((gnutls_error =
gnutls_certificate_set_x509_key_file (tls->cred, cert_file, key_file, GNUTLS_X509_FMT_PEM)) < 0)
@@ -512,7 +513,7 @@
}
- /* Check hostname on first cert */
+ /* Check hostname on first cert
if ((iter==0) && (gnutls_x509_crt_check_hostname (cert, canonical_hostname) != 0))
{
g_set_error (error,
@@ -524,6 +525,7 @@
gnutls_x509_crt_deinit (cert);
return FALSE;
}
+ */
/* Fetch cert activation time */
if ((activation_time = gnutls_x509_crt_get_activation_time (cert)) < 0)
@@ -620,7 +622,7 @@
DEXTER_TLS_ERROR_EINTR,
"%s: a signal occurred before any data was delivered",
G_STRFUNC);
- return DEXTER_TLS_ERROR_EINTR;
+ return -1;
}
if (sz == GNUTLS_E_AGAIN)
{
@@ -629,7 +631,7 @@
DEXTER_TLS_ERROR_EAGAIN,
"%s: operation would block",
G_STRFUNC);
- return DEXTER_TLS_ERROR_EAGAIN;
+ return -1;
}
if (sz < 0)
{
@@ -638,6 +640,7 @@
DEXTER_TLS_ERROR_FAILED,
"%s: error occurred during recv: %s",
G_STRFUNC, gnutls_strerror (sz));
+ return -1;
}
return sz;
@@ -665,7 +668,7 @@
DEXTER_TLS_ERROR_EINTR,
"%s: a signal occurred before any data was transmitted",
G_STRFUNC);
- return DEXTER_TLS_ERROR_EINTR;
+ return -1;
}
if (sz == GNUTLS_E_AGAIN)
{
@@ -674,7 +677,7 @@
DEXTER_TLS_ERROR_EAGAIN,
"%s: operation would block",
G_STRFUNC);
- return DEXTER_TLS_ERROR_EAGAIN;
+ return -1;
}
if (sz < 0)
{
@@ -683,12 +686,26 @@
DEXTER_TLS_ERROR_FAILED,
"%s: error occurred during send: %s",
G_STRFUNC, gnutls_strerror (sz));
+ return -1;
}
return sz;
}
+void
+dexter_tls_close (dexter_tls_t *tls)
+{
+ g_return_if_fail (tls != NULL);
+
+#ifdef G_ENABLE_DEBUG
+ g_message (G_STRFUNC);
+#endif
+
+ gnutls_bye (tls->session, GNUTLS_SHUT_WR);
+}
+
+
void
dexter_tls_free (dexter_tls_t *tls)
{
Modified: libdexter/trunk/dexter/dexter-tls.h
===================================================================
--- libdexter/trunk/dexter/dexter-tls.h 2007-06-09 22:29:28 UTC (rev 370)
+++ libdexter/trunk/dexter/dexter-tls.h 2007-06-10 03:36:38 UTC (rev 371)
@@ -57,8 +57,8 @@
gboolean dexter_tls_library_init (GError **error) G_GNUC_INTERNAL;
dexter_tls_t *dexter_tls_new (gboolean role,
+ const gchar *cert_file,
const gchar *key_file,
- const gchar *cert_file,
const gchar *trust_file,
const gchar *crl_file,
guint flags,
@@ -82,6 +82,8 @@
size_t bufsize,
GError **error) G_GNUC_INTERNAL;
+void dexter_tls_close (dexter_tls_t *tls) G_GNUC_INTERNAL;
+
void dexter_tls_free (dexter_tls_t *tls) G_GNUC_INTERNAL;
void dexter_tls_library_exit (void) G_GNUC_INTERNAL;
Modified: libdexter/trunk/programs/dexterd/dexterd.c
===================================================================
--- libdexter/trunk/programs/dexterd/dexterd.c 2007-06-09 22:29:28 UTC (rev 370)
+++ libdexter/trunk/programs/dexterd/dexterd.c 2007-06-10 03:36:38 UTC (rev 371)
@@ -166,6 +166,7 @@
tls_settings.starttls_callback = NULL;
#ifdef HAVE_TLS
tls_settings.support_flag = DEXTER_SERVER_TLS_SUPPORT_AVAILABLE;
+ tls_settings.starttls_callback = NULL;
dexter_server_start (server, &tls_settings, &err);
#else
dexter_server_start (server, NULL, &err);
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <pk...@us...> - 2007-06-09 22:29:30
|
Revision: 370
http://svn.sourceforge.net/libdexter/?rev=370&view=rev
Author: pkovacs
Date: 2007-06-09 15:29:28 -0700 (Sat, 09 Jun 2007)
Log Message:
-----------
Committing intermediate work on TLS.
Modified Paths:
--------------
libdexter/trunk/dexter/dexter-channel.c
libdexter/trunk/dexter/dexter-network.c
libdexter/trunk/dexter/dexter-server-internal.h
libdexter/trunk/dexter/dexter-server.c
libdexter/trunk/dexter/dexter-servercomm.c
libdexter/trunk/dexter/dexter-servercomm.h
Modified: libdexter/trunk/dexter/dexter-channel.c
===================================================================
--- libdexter/trunk/dexter/dexter-channel.c 2007-06-09 07:17:19 UTC (rev 369)
+++ libdexter/trunk/dexter/dexter-channel.c 2007-06-09 22:29:28 UTC (rev 370)
@@ -103,12 +103,14 @@
static GError *dexter_channel_convert_network_error (GError **network_error);
#ifdef HAVE_TLS
static DexterChannelTLSParameters
- *dexter_channel_tls_parameters_new0 (void);
-
-static void dexter_channel_tls_parameters_copy (DexterChannelTLSParameters *dest,
- const DexterChannelTLSParameters *source);
+ *dexter_channel_tls_parameters_new (const gchar *cert_file,
+ const gchar *key_file,
+ const gchar *trust_file,
+ const gchar *crl_file);
+static DexterChannelTLSParameters
+ *dexter_channel_tls_parameters_dup (const DexterChannelTLSParameters *source);
static void dexter_channel_tls_parameters_free (DexterChannelTLSParameters *tls_parameters);
-#endif
+#endif /* HAVE_TLS */
/* GDestroyNotify to destroy channel hash entries */
static void _destroy_object_hash_entry (ChannelObjectHashEntry *hash_entry);
@@ -242,7 +244,7 @@
channel->object_hash = dexter_hash_table_new_full (g_int_hash, g_int_equal,
NULL, (GDestroyNotify) _destroy_object_hash_entry);
#ifdef HAVE_TLS
- channel->tls_parameters = dexter_channel_tls_parameters_new0 ();
+ channel->tls_parameters = dexter_channel_tls_parameters_new (NULL, NULL, NULL, NULL);
/* fetch TLS parameters from config file */
if (!dexter_config_get_string (__ICONFIG,
@@ -708,23 +710,32 @@
#ifdef HAVE_TLS
static DexterChannelTLSParameters *
-dexter_channel_tls_parameters_new0 (void)
+dexter_channel_tls_parameters_new (const gchar *cert_file,
+ const gchar *key_file,
+ const gchar *trust_file,
+ const gchar *crl_file)
{
- return g_slice_new0 (DexterChannelTLSParameters);
+ DexterChannelTLSParameters *tls_parameters = g_slice_new0 (DexterChannelTLSParameters);
+
+ tls_parameters->cert_file = g_strdup (cert_file);
+ tls_parameters->key_file = g_strdup (key_file);
+ tls_parameters->trust_file = g_strdup (trust_file);
+ tls_parameters->crl_file = g_strdup (crl_file);
+
+ return tls_parameters;
}
-static void
-dexter_channel_tls_parameters_copy (DexterChannelTLSParameters *dest,
- const DexterChannelTLSParameters *source)
+static DexterChannelTLSParameters *
+dexter_channel_tls_parameters_dup (const DexterChannelTLSParameters *source)
{
- g_return_if_fail (dest != NULL);
- g_return_if_fail (source != NULL);
+ if (!source)
+ return NULL;
- dest->cert_file = g_strdup (source->cert_file);
- dest->key_file = g_strdup (source->key_file);
- dest->trust_file = g_strdup (source->trust_file);
- dest->crl_file = g_strdup (source->crl_file);
+ return dexter_channel_tls_parameters_new (source->cert_file,
+ source->key_file,
+ source->trust_file,
+ source->crl_file);
}
@@ -1243,9 +1254,8 @@
GError **error)
{
#ifdef HAVE_TLS
- DexterChannelObject *channel_object;
- DexterChannelTLSParameters *tls_parameters;
- GError *local_error = NULL;
+ DexterChannelObject *channel_object;
+ GError *local_error = NULL;
#endif
#ifdef G_ENABLE_DEBUG
@@ -1255,17 +1265,17 @@
g_return_val_if_fail (DEXTER_IS_CHANNEL (channel), FALSE);
g_return_val_if_fail (error == NULL || *error == NULL, FALSE);
- g_object_ref (channel);
-
#ifndef HAVE_TLS
/* TLS not enabled */
g_set_error (error,
DEXTER_CHANNEL_ERROR, DEXTER_CHANNEL_ERROR_TLS_NOT_ENABLED,
"%s: TLS not enabled", G_STRFUNC);
- g_object_unref (channel);
return FALSE;
#else
/* TLS enabled, continue */
+
+ g_object_ref (channel);
+
channel_object = DEXTER_CHANNEL_OBJECT (channel);
/* check if channel not open */
@@ -1288,7 +1298,7 @@
return FALSE;
}
- /* send starttls command */
+ /* send starttls command to server */
dexter_channel_object_send_wait_process (channel_object, COMMAND_STARTTLS, 0, NULL, &local_error);
if (local_error)
{
@@ -1297,35 +1307,45 @@
return FALSE;
}
- /* get default TLS parameters */
- tls_parameters = dexter_channel_tls_parameters_new0 ();
- dexter_channel_tls_parameters_copy (tls_parameters, channel->tls_parameters);
-
/* if specified, issue callback to finalize TLS parameters */
if (starttls_callback)
{
+ /* copy default TLS parameters */
+ DexterChannelTLSParameters *tls_parameters =
+ dexter_channel_tls_parameters_dup (channel->tls_parameters);
+
+ /* perform the callback */
(*starttls_callback) (channel,
dexter_network_session_peer_addr (channel->session),
dexter_network_session_peer_addrlen (channel->session),
tls_parameters);
+
+ /* start TLS handshake, with adjusted parameters */
+ dexter_network_session_client_starttls (channel->session,
+ tls_parameters->cert_file,
+ tls_parameters->key_file,
+ tls_parameters->trust_file,
+ tls_parameters->crl_file,
+ &local_error);
+ dexter_channel_tls_parameters_free (tls_parameters);
}
-
- /* start TLS handshake */
- dexter_network_session_client_starttls (channel->session,
- tls_parameters->cert_file,
- tls_parameters->key_file,
- tls_parameters->trust_file,
- tls_parameters->crl_file,
- &local_error);
+ else
+ {
+ /* start TLS handshake, with default parameters */
+ dexter_network_session_client_starttls (channel->session,
+ channel->tls_parameters->cert_file,
+ channel->tls_parameters->key_file,
+ channel->tls_parameters->trust_file,
+ channel->tls_parameters->crl_file,
+ &local_error);
+ }
if (local_error)
{
- dexter_channel_tls_parameters_free (tls_parameters);
g_propagate_error (error, local_error);
g_object_unref (channel);
return FALSE;
}
- dexter_channel_tls_parameters_free (tls_parameters);
g_object_unref (channel);
return TRUE;
Modified: libdexter/trunk/dexter/dexter-network.c
===================================================================
--- libdexter/trunk/dexter/dexter-network.c 2007-06-09 07:17:19 UTC (rev 369)
+++ libdexter/trunk/dexter/dexter-network.c 2007-06-09 22:29:28 UTC (rev 370)
@@ -339,6 +339,7 @@
g_message ("TLS key file = %s", key_file);
g_message ("TLS trust file = %s", trust_file);
g_message ("TLS crl file = %s", crl_file);
+ g_message ("TLS flags = %d", flags);
#endif
return TRUE;
Modified: libdexter/trunk/dexter/dexter-server-internal.h
===================================================================
--- libdexter/trunk/dexter/dexter-server-internal.h 2007-06-09 07:17:19 UTC (rev 369)
+++ libdexter/trunk/dexter/dexter-server-internal.h 2007-06-09 22:29:28 UTC (rev 370)
@@ -55,11 +55,6 @@
gboolean dexter_server_hosts_access (int) G_GNUC_INTERNAL;
#endif
-#ifdef HAVE_TLS
-const DexterServerTLSSettings
- *dexter_server_tls_settings (DexterServer *server) G_GNUC_INTERNAL;
-#endif
-
G_END_DECLS
#endif /* __DEXTER_SERVER_INTERNAL_H__ */
Modified: libdexter/trunk/dexter/dexter-server.c
===================================================================
--- libdexter/trunk/dexter/dexter-server.c 2007-06-09 07:17:19 UTC (rev 369)
+++ libdexter/trunk/dexter/dexter-server.c 2007-06-09 22:29:28 UTC (rev 370)
@@ -87,9 +87,10 @@
static GError *dexter_server_convert_network_error (GError **network_error);
#ifdef HAVE_TLS
static DexterServerTLSSettings
- *dexter_server_tls_settings_new0 (void);
-static void dexter_server_tls_settings_copy (DexterServerTLSSettings *dest,
- const DexterServerTLSSettings *source);
+ *dexter_server_tls_settings_new (DexterServerTLSSupportFlag support_flag,
+ DexterServerTLSStartCallback starttls_callback);
+static DexterServerTLSSettings
+ *dexter_server_tls_settings_dup (const DexterServerTLSSettings *source);
static void dexter_server_tls_settings_free (DexterServerTLSSettings *tls_settings);
#endif
@@ -148,12 +149,15 @@
struct _service_data
{
- DexterServer *server; /* server */
- int connfd; /* connection fd */
- int recvbufsize; /* receive buffer size for service socket */
- struct sockaddr_storage addr; /* socket address struct */
- socklen_t addrlen; /* socket address length (family-dependent) */
- ClientCounter *client_counter; /* total number of active clients, plus one */
+ DexterServer *server; /* server */
+ int connfd; /* connection fd */
+ int recvbufsize; /* receive buffer size for service socket */
+ struct sockaddr_storage addr; /* socket address struct */
+ socklen_t addrlen; /* socket address length (family-dependent) */
+ ClientCounter *client_counter; /* total number of active clients, plus one */
+#ifdef HAVE_TLS
+ DexterServerTLSSettings *tls_settings; /* copy of server's tls settings */
+#endif
};
@@ -229,7 +233,7 @@
}
#ifdef HAVE_TLS
- server->tls_settings = dexter_server_tls_settings_new0 ();
+ server->tls_settings = NULL;
#endif
}
@@ -282,17 +286,6 @@
#endif
-#ifdef HAVE_TLS
-const DexterServerTLSSettings *
-dexter_server_tls_settings (DexterServer *server)
-{
- g_return_val_if_fail (DEXTER_IS_SERVER (server), NULL);
-
- return server->tls_settings;
-}
-#endif
-
-
/**
* dexter_server_get_state:
* @server: a #DexterServer.
@@ -398,21 +391,32 @@
#ifdef HAVE_TLS
static DexterServerTLSSettings *
-dexter_server_tls_settings_new0 (void)
+dexter_server_tls_settings_new (DexterServerTLSSupportFlag support_flag,
+ DexterServerTLSStartCallback starttls_callback)
{
- return g_slice_new0 (DexterServerTLSSettings);
+ DexterServerTLSSettings *tls_settings;
+
+ g_return_val_if_fail (support_flag == DEXTER_SERVER_TLS_SUPPORT_NONE ||
+ support_flag == DEXTER_SERVER_TLS_SUPPORT_AVAILABLE ||
+ support_flag == DEXTER_SERVER_TLS_SUPPORT_REQUIRED, NULL);
+
+ tls_settings = g_slice_new0 (DexterServerTLSSettings);
+
+ tls_settings->support_flag = support_flag;
+ tls_settings->starttls_callback = starttls_callback;
+
+ return tls_settings;
}
-static void
-dexter_server_tls_settings_copy (DexterServerTLSSettings *dest,
- const DexterServerTLSSettings *source)
+static DexterServerTLSSettings *
+dexter_server_tls_settings_dup (const DexterServerTLSSettings *source)
{
- g_return_if_fail (dest != NULL);
- g_return_if_fail (source != NULL);
+ if (!source)
+ return NULL;
- dest->support_flag = source->support_flag;
- dest->starttls_callback = source->starttls_callback;
+ return dexter_server_tls_settings_new (source->support_flag,
+ source->starttls_callback);
}
@@ -482,6 +486,9 @@
service_data->recvbufsize = server->recvbufsize;
/* each thread sees the same atomic client counter */
service_data->client_counter = client_counter;
+#ifdef HAVE_TLS
+ service_data->tls_settings = dexter_server_tls_settings_dup (server->tls_settings);
+#endif
do
{
@@ -583,6 +590,10 @@
service_data->server = server;
service_data->recvbufsize = server->recvbufsize;
service_data->client_counter = client_counter;
+#ifdef HAVE_TLS
+ service_data->tls_settings = dexter_server_tls_settings_dup (server->tls_settings);
+#endif
+
}
}
while (dexter_server_is_runnable (server) && (dexter_get_state () == DEXTER_STATE_UP));
@@ -600,7 +611,12 @@
server->host_numeric, server->serv_numeric);
if (service_data)
+ {
+#ifdef HAVE_TLS
+ dexter_server_tls_settings_free (service_data->tls_settings);
+#endif
g_slice_free (ServiceData, service_data);
+ }
g_object_unref (server);
@@ -640,6 +656,9 @@
dexter_network_session_open (session, sd->connfd, &sd->addr, sd->addrlen);
servercomm->server = sd->server;
servercomm->session = session;
+#ifdef HAVE_TLS
+ servercomm->tls_settings = sd->tls_settings;
+#endif
do
{
@@ -721,6 +740,9 @@
g_object_unref (servercomm);
g_object_unref (sd->server);
g_slice_free1 (sd->recvbufsize, recvbuf);
+#ifdef HAVE_TLS
+ dexter_server_tls_settings_free (sd->tls_settings);
+#endif
g_slice_free (ServiceData, sd);
#ifdef G_ENABLE_DEBUG
@@ -857,12 +879,11 @@
g_return_val_if_fail (tls_settings == NULL, FALSE);
#endif
- g_object_ref (server);
-
if (tls_settings)
#ifdef HAVE_TLS
{
- dexter_server_tls_settings_copy (server->tls_settings, tls_settings);
+ dexter_server_tls_settings_free (server->tls_settings);
+ server->tls_settings = dexter_server_tls_settings_dup (tls_settings);
}
#else
{
@@ -870,11 +891,12 @@
DEXTER_SERVER_ERROR,
DEXTER_SERVER_ERROR_TLS_NOT_ENABLED,
"%s: TLS not enabled", G_STRFUNC);
- g_object_unref (server);
return FALSE;
}
#endif /* HAVE_TLS */
+ g_object_ref (server);
+
/* check if server started */
if (dexter_server_get_state (server) == DEXTER_SERVER_STATE_STARTED)
{
Modified: libdexter/trunk/dexter/dexter-servercomm.c
===================================================================
--- libdexter/trunk/dexter/dexter-servercomm.c 2007-06-09 07:17:19 UTC (rev 369)
+++ libdexter/trunk/dexter/dexter-servercomm.c 2007-06-09 22:29:28 UTC (rev 370)
@@ -70,11 +70,14 @@
GString *payload,
GError **error);
#ifdef HAVE_TLS
-static DexterServerTLSParameters *
- dexter_servercomm_tls_parameters_new0 (void);
-
-static void dexter_servercomm_tls_parameters_copy (DexterServerTLSParameters *dest,
- const DexterServerTLSParameters *source);
+static DexterServerTLSParameters
+ *dexter_servercomm_tls_parameters_new (const gchar *cert_file,
+ const gchar *key_file,
+ const gchar *trust_file,
+ const gchar *crl_file,
+ DexterServerTLSClientCertFlag client_cert_flag);
+static DexterServerTLSParameters
+ *dexter_servercomm_tls_parameters_dup (const DexterServerTLSParameters *source);
static void dexter_servercomm_tls_parameters_free (DexterServerTLSParameters *tls_parameters);
static void dexter_servercomm_starttls (DexterServerComm *servercomm,
const DexterChannelMessage *msg,
@@ -138,7 +141,8 @@
servercomm->cur_dat_backlog = 0;
#ifdef HAVE_TLS
- servercomm->tls_parameters = dexter_servercomm_tls_parameters_new0 ();
+ servercomm->tls_parameters =
+ dexter_servercomm_tls_parameters_new (NULL, NULL, NULL, NULL, DEXTER_SERVER_TLS_CLIENT_CERT_NONE);
/* fetch TLS parameters from config file */
if (!dexter_config_get_string (__ICONFIG,
@@ -195,6 +199,8 @@
servercomm->tls_parameters->client_cert_flag = (DexterServerTLSClientCertFlag) tmp_client_cert_flag;
}
}
+
+ servercomm->tls_settings = NULL;
#endif /* HAVE_TLS */
}
@@ -226,6 +232,7 @@
#ifdef HAVE_TLS
dexter_servercomm_tls_parameters_free (servercomm->tls_parameters);
+ /* servercomm->tls_settings is freed in service thread function */
#endif
/* chain up */
@@ -267,24 +274,40 @@
#ifdef HAVE_TLS
static DexterServerTLSParameters *
-dexter_servercomm_tls_parameters_new0 (void)
+dexter_servercomm_tls_parameters_new (const gchar *cert_file,
+ const gchar *key_file,
+ const gchar *trust_file,
+ const gchar *crl_file,
+ DexterServerTLSClientCertFlag client_cert_flag)
{
- return g_slice_new0 (DexterServerTLSParameters);
+ DexterServerTLSParameters *tls_parameters;
+
+ g_return_val_if_fail (client_cert_flag == DEXTER_SERVER_TLS_CLIENT_CERT_NONE ||
+ client_cert_flag == DEXTER_SERVER_TLS_CLIENT_CERT_REQUESTED ||
+ client_cert_flag == DEXTER_SERVER_TLS_CLIENT_CERT_REQUIRED, NULL);
+
+ tls_parameters = g_slice_new0 (DexterServerTLSParameters);
+ tls_parameters->cert_file = g_strdup (cert_file);
+ tls_parameters->key_file = g_strdup (key_file);
+ tls_parameters->trust_file = g_strdup (trust_file);
+ tls_parameters->crl_file = g_strdup (crl_file);
+ tls_parameters->client_cert_flag = client_cert_flag;
+
+ return tls_parameters;
}
-static void
-dexter_servercomm_tls_parameters_copy (DexterServerTLSParameters *dest,
- const DexterServerTLSParameters *source)
+static DexterServerTLSParameters *
+dexter_servercomm_tls_parameters_dup (const DexterServerTLSParameters *source)
{
- g_return_if_fail (dest != NULL);
- g_return_if_fail (source != NULL);
+ if (!source)
+ return NULL;
- dest->cert_file = g_strdup (source->cert_file);
- dest->key_file = g_strdup (source->key_file);
- dest->trust_file = g_strdup (source->trust_file);
- dest->crl_file = g_strdup (source->crl_file);
- dest->client_cert_flag = source->client_cert_flag;
+ return dexter_servercomm_tls_parameters_new (source->cert_file,
+ source->key_file,
+ source->trust_file,
+ source->crl_file,
+ source->client_cert_flag);
}
@@ -307,8 +330,6 @@
const DexterChannelMessage *msg,
GError **error)
{
- DexterServerTLSParameters *tls_parameters;
- const DexterServerTLSSettings *tls_settings;
GError *local_error = NULL;
g_return_if_fail (DEXTER_IS_SERVERCOMM (servercomm));
@@ -317,10 +338,9 @@
g_object_ref (servercomm);
- tls_settings = dexter_server_tls_settings (servercomm->server);
-
/* check if server supports TLS */
- if (tls_settings->support_flag == DEXTER_SERVER_TLS_SUPPORT_NONE)
+ if (!servercomm->tls_settings ||
+ servercomm->tls_settings->support_flag == DEXTER_SERVER_TLS_SUPPORT_NONE)
{
dexter_servercomm_reply (servercomm, msg->cmd.command, msg->peer_id, ERROR_TLS_NOT_AVAILABLE, NULL, error);
g_object_unref (servercomm);
@@ -335,39 +355,51 @@
return;
}
- /* get default TLS parameters */
- tls_parameters = dexter_servercomm_tls_parameters_new0 ();
- dexter_servercomm_tls_parameters_copy (tls_parameters, servercomm->tls_parameters);
+ /* tell client to proceed with TLS handshake */
+ dexter_servercomm_reply (servercomm, msg->cmd.command, msg->peer_id, STATUS_OK, NULL, error);
/* if specified, issue callback to finalize TLS parameters */
- if (tls_settings->starttls_callback)
+ if (servercomm->tls_settings && servercomm->tls_settings->starttls_callback)
{
- (tls_settings->starttls_callback) (servercomm->server,
- dexter_network_session_peer_addr (servercomm->session),
- dexter_network_session_peer_addrlen (servercomm->session),
- tls_parameters);
+ /* copy default TLS parameters */
+ DexterServerTLSParameters *tls_parameters =
+ dexter_servercomm_tls_parameters_dup (servercomm->tls_parameters);
+
+ /* perform the callback */
+ (*servercomm->tls_settings->starttls_callback) (servercomm->server,
+ dexter_network_session_peer_addr (servercomm->session),
+ dexter_network_session_peer_addrlen (servercomm->session),
+ tls_parameters);
+
+ /* start TLS handshake, with adjusted parameters */
+ dexter_network_session_server_starttls (servercomm->session,
+ tls_parameters->cert_file,
+ tls_parameters->key_file,
+ tls_parameters->trust_file,
+ tls_parameters->crl_file,
+ tls_parameters->client_cert_flag,
+ &local_error);
+ dexter_servercomm_tls_parameters_free (tls_parameters);
}
+ else
+ {
+ /* start TLS handshake, with default parameters */
+ dexter_network_session_server_starttls (servercomm->session,
+ servercomm->tls_parameters->cert_file,
+ servercomm->tls_parameters->key_file,
+ servercomm->tls_parameters->trust_file,
+ servercomm->tls_parameters->crl_file,
+ servercomm->tls_parameters->client_cert_flag,
+ &local_error);
+ }
- /* tell client to proceed with TLS handshake */
- dexter_servercomm_reply (servercomm, msg->cmd.command, msg->peer_id, STATUS_OK, NULL, error);
-
- /* start TLS handshake */
- dexter_network_session_server_starttls (servercomm->session,
- tls_parameters->cert_file,
- tls_parameters->key_file,
- tls_parameters->trust_file,
- tls_parameters->crl_file,
- tls_parameters->client_cert_flag,
- &local_error);
if (local_error)
{
- dexter_servercomm_tls_parameters_free (tls_parameters);
g_propagate_error (error, local_error);
g_object_unref (servercomm);
return;
}
- dexter_servercomm_tls_parameters_free (tls_parameters);
g_object_unref (servercomm);
}
#endif
Modified: libdexter/trunk/dexter/dexter-servercomm.h
===================================================================
--- libdexter/trunk/dexter/dexter-servercomm.h 2007-06-09 07:17:19 UTC (rev 369)
+++ libdexter/trunk/dexter/dexter-servercomm.h 2007-06-09 22:29:28 UTC (rev 370)
@@ -70,6 +70,7 @@
volatile gint cur_dat_backlog; /* current data delivery backlog */
#ifdef HAVE_TLS
DexterServerTLSParameters *tls_parameters; /* default TLS parameters from config file */
+ DexterServerTLSSettings *tls_settings; /* copy of server's TLS settings */
#endif
};
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <pk...@us...> - 2007-06-09 07:17:23
|
Revision: 369
http://svn.sourceforge.net/libdexter/?rev=369&view=rev
Author: pkovacs
Date: 2007-06-09 00:17:19 -0700 (Sat, 09 Jun 2007)
Log Message:
-----------
Committing intermediate work on TLS.
Modified Paths:
--------------
libdexter/trunk/ChangeLog
libdexter/trunk/dexter/dexter-channel.c
libdexter/trunk/dexter/dexter-network.c
libdexter/trunk/dexter/dexter-network.h
libdexter/trunk/dexter/dexter-server-internal.h
libdexter/trunk/dexter/dexter-server.c
libdexter/trunk/dexter/dexter-server.h
libdexter/trunk/dexter/dexter-servercomm.c
libdexter/trunk/dexter/dexter-servercomm.h
libdexter/trunk/docs/reference/dexter/tmpl/dexter-server.sgml
libdexter/trunk/programs/dexterd/dexterd.c
Modified: libdexter/trunk/ChangeLog
===================================================================
--- libdexter/trunk/ChangeLog 2007-06-04 18:13:59 UTC (rev 368)
+++ libdexter/trunk/ChangeLog 2007-06-09 07:17:19 UTC (rev 369)
@@ -1,3 +1,6 @@
+2007-06-09 pkovacs
+ * Committing intermediate work on TLS.
+
2007-06-02 pkovacs
* Committing intermediate work on TLS.
Modified: libdexter/trunk/dexter/dexter-channel.c
===================================================================
--- libdexter/trunk/dexter/dexter-channel.c 2007-06-04 18:13:59 UTC (rev 368)
+++ libdexter/trunk/dexter/dexter-channel.c 2007-06-09 07:17:19 UTC (rev 369)
@@ -101,7 +101,15 @@
static void dexter_channel_channel_event (DexterChannelObject *channel_object,
gint event);
static GError *dexter_channel_convert_network_error (GError **network_error);
+#ifdef HAVE_TLS
+static DexterChannelTLSParameters
+ *dexter_channel_tls_parameters_new0 (void);
+static void dexter_channel_tls_parameters_copy (DexterChannelTLSParameters *dest,
+ const DexterChannelTLSParameters *source);
+static void dexter_channel_tls_parameters_free (DexterChannelTLSParameters *tls_parameters);
+#endif
+
/* GDestroyNotify to destroy channel hash entries */
static void _destroy_object_hash_entry (ChannelObjectHashEntry *hash_entry);
@@ -140,6 +148,11 @@
int recvbufsize; /* receive buffer size */
GAsyncQueue *cmd_queue; /* channel commands are queued up here */
DexterHashTable *object_hash; /* channel object hash by (peer) id */
+
+#ifdef HAVE_TLS
+ DexterChannelTLSParameters
+ *tls_parameters; /* default TLS parameters from config file */
+#endif
};
struct _DexterChannelClass
@@ -228,6 +241,47 @@
channel->cmd_queue = g_async_queue_new ();
channel->object_hash = dexter_hash_table_new_full (g_int_hash, g_int_equal,
NULL, (GDestroyNotify) _destroy_object_hash_entry);
+#ifdef HAVE_TLS
+ channel->tls_parameters = dexter_channel_tls_parameters_new0 ();
+
+ /* fetch TLS parameters from config file */
+ if (!dexter_config_get_string (__ICONFIG,
+ "Main", "ChannelTLSCertFile",
+ &channel->tls_parameters->cert_file, NULL))
+ {
+ channel->tls_parameters->cert_file = g_strdup (DEFAULT_CHANNEL_TLS_CERT_FILE);
+#ifdef G_ENABLE_DEBUG
+ g_message ("%s: using default %s for TLS cert file", G_STRFUNC, channel->tls_parameters->cert_file);
+#endif
+ }
+ if (!dexter_config_get_string (__ICONFIG,
+ "Main", "ChannelTLSKeyFile",
+ &channel->tls_parameters->key_file, NULL))
+ {
+ channel->tls_parameters->key_file = g_strdup (DEFAULT_CHANNEL_TLS_KEY_FILE);
+#ifdef G_ENABLE_DEBUG
+ g_message ("%s: using default %s for TLS key file", G_STRFUNC, channel->tls_parameters->key_file);
+#endif
+ }
+ if (!dexter_config_get_string (__ICONFIG,
+ "Main", "ChannelTLSTrustFile",
+ &channel->tls_parameters->trust_file, NULL))
+ {
+ channel->tls_parameters->trust_file = g_strdup (DEFAULT_CHANNEL_TLS_TRUST_FILE);
+#ifdef G_ENABLE_DEBUG
+ g_message ("%s: using default %s for TLS trust file", G_STRFUNC, channel->tls_parameters->trust_file);
+#endif
+ }
+ if (!dexter_config_get_string (__ICONFIG,
+ "Main", "ChannelTLSCrlFile",
+ &channel->tls_parameters->crl_file, NULL))
+ {
+ channel->tls_parameters->crl_file = g_strdup (DEFAULT_CHANNEL_TLS_CRL_FILE);
+#ifdef G_ENABLE_DEBUG
+ g_message ("%s: using default %s for TLS crl file", G_STRFUNC, channel->tls_parameters->crl_file);
+#endif
+ }
+#endif /* HAVE_TLS */
}
@@ -257,7 +311,11 @@
g_async_queue_unref (channel->cmd_queue);
dexter_hash_table_destroy (channel->object_hash);
-
+
+#ifdef HAVE_TLS
+ dexter_channel_tls_parameters_free (channel->tls_parameters);
+#endif
+
/* chain up */
G_OBJECT_CLASS (dexter_channel_parent_class)->finalize (object);
}
@@ -634,6 +692,9 @@
case DEXTER_NETWORK_ERROR_ETIMEDOUT:
channel_error->code = DEXTER_CHANNEL_ERROR_TIMEOUT;
break;
+ case DEXTER_NETWORK_ERROR_TLS_NOT_ENABLED:
+ channel_error->code = DEXTER_CHANNEL_ERROR_TLS_NOT_ENABLED;
+ break;
case DEXTER_NETWORK_ERROR_FAILED:
default:
channel_error->code = DEXTER_CHANNEL_ERROR_FAILED;
@@ -645,7 +706,44 @@
}
+#ifdef HAVE_TLS
+static DexterChannelTLSParameters *
+dexter_channel_tls_parameters_new0 (void)
+{
+ return g_slice_new0 (DexterChannelTLSParameters);
+}
+
+
static void
+dexter_channel_tls_parameters_copy (DexterChannelTLSParameters *dest,
+ const DexterChannelTLSParameters *source)
+{
+ g_return_if_fail (dest != NULL);
+ g_return_if_fail (source != NULL);
+
+ dest->cert_file = g_strdup (source->cert_file);
+ dest->key_file = g_strdup (source->key_file);
+ dest->trust_file = g_strdup (source->trust_file);
+ dest->crl_file = g_strdup (source->crl_file);
+}
+
+
+static void
+dexter_channel_tls_parameters_free (DexterChannelTLSParameters *tls_parameters)
+{
+ if (G_UNLIKELY (!tls_parameters))
+ return;
+
+ g_free (tls_parameters->cert_file);
+ g_free (tls_parameters->key_file);
+ g_free (tls_parameters->trust_file);
+ g_free (tls_parameters->crl_file);
+ g_slice_free (DexterChannelTLSParameters, tls_parameters);
+}
+#endif
+
+
+static void
_destroy_object_hash_entry (ChannelObjectHashEntry *hash_entry)
{
g_object_unref (hash_entry->channel_object);
@@ -745,14 +843,13 @@
}
while (dexter_channel_is_runnable (channel) && (dexter_get_state () == DEXTER_STATE_UP));
+ g_object_unref (framer);
g_slice_free1 (channel->recvbufsize, recvbuf);
- g_object_unref (framer);
-
+ g_object_unref (channel);
+
#ifdef G_ENABLE_DEBUG
g_message ("channel done in thread 0x%08X", (unsigned)g_thread_self());
#endif
-
- g_object_unref (channel);
}
@@ -1147,7 +1244,7 @@
{
#ifdef HAVE_TLS
DexterChannelObject *channel_object;
- DexterChannelTLSParameters tls_parameters;
+ DexterChannelTLSParameters *tls_parameters;
GError *local_error = NULL;
#endif
@@ -1200,43 +1297,9 @@
return FALSE;
}
- /* fetch TLS parameters from config file */
- if (!dexter_config_get_string (__ICONFIG,
- "Main", "ChannelTLSCertFile",
- &tls_parameters.cert_file, NULL))
- {
- tls_parameters.cert_file = g_strdup (DEFAULT_CHANNEL_TLS_CERT_FILE);
-#ifdef G_ENABLE_DEBUG
- g_message ("%s: using default %s for TLS cert file", G_STRFUNC, tls_parameters.cert_file);
-#endif
- }
- if (!dexter_config_get_string (__ICONFIG,
- "Main", "ChannelTLSKeyFile",
- &tls_parameters.key_file, NULL))
- {
- tls_parameters.key_file = g_strdup (DEFAULT_CHANNEL_TLS_KEY_FILE);
-#ifdef G_ENABLE_DEBUG
- g_message ("%s: using default %s for TLS key file", G_STRFUNC, tls_parameters.key_file);
-#endif
- }
- if (!dexter_config_get_string (__ICONFIG,
- "Main", "ChannelTLSTrustFile",
- &tls_parameters.trust_file, NULL))
- {
- tls_parameters.trust_file = g_strdup (DEFAULT_CHANNEL_TLS_TRUST_FILE);
-#ifdef G_ENABLE_DEBUG
- g_message ("%s: using default %s for TLS trust file", G_STRFUNC, tls_parameters.trust_file);
-#endif
- }
- if (!dexter_config_get_string (__ICONFIG,
- "Main", "ChannelTLSCrlFile",
- &tls_parameters.crl_file, NULL))
- {
- tls_parameters.crl_file = g_strdup (DEFAULT_CHANNEL_TLS_CRL_FILE);
-#ifdef G_ENABLE_DEBUG
- g_message ("%s: using default %s for TLS crl file", G_STRFUNC, tls_parameters.crl_file);
-#endif
- }
+ /* get default TLS parameters */
+ tls_parameters = dexter_channel_tls_parameters_new0 ();
+ dexter_channel_tls_parameters_copy (tls_parameters, channel->tls_parameters);
/* if specified, issue callback to finalize TLS parameters */
if (starttls_callback)
@@ -1244,32 +1307,25 @@
(*starttls_callback) (channel,
dexter_network_session_peer_addr (channel->session),
dexter_network_session_peer_addrlen (channel->session),
- &tls_parameters);
+ tls_parameters);
}
/* start TLS handshake */
dexter_network_session_client_starttls (channel->session,
- tls_parameters.cert_file,
- tls_parameters.key_file,
- tls_parameters.trust_file,
- tls_parameters.crl_file,
+ tls_parameters->cert_file,
+ tls_parameters->key_file,
+ tls_parameters->trust_file,
+ tls_parameters->crl_file,
&local_error);
if (local_error)
{
- g_free (tls_parameters.cert_file);
- g_free (tls_parameters.key_file);
- g_free (tls_parameters.trust_file);
- g_free (tls_parameters.crl_file);
+ dexter_channel_tls_parameters_free (tls_parameters);
g_propagate_error (error, local_error);
g_object_unref (channel);
return FALSE;
}
- g_free (tls_parameters.cert_file);
- g_free (tls_parameters.key_file);
- g_free (tls_parameters.trust_file);
- g_free (tls_parameters.crl_file);
-
+ dexter_channel_tls_parameters_free (tls_parameters);
g_object_unref (channel);
return TRUE;
Modified: libdexter/trunk/dexter/dexter-network.c
===================================================================
--- libdexter/trunk/dexter/dexter-network.c 2007-06-04 18:13:59 UTC (rev 368)
+++ libdexter/trunk/dexter/dexter-network.c 2007-06-09 07:17:19 UTC (rev 369)
@@ -61,8 +61,8 @@
#ifdef HAVE_TLS
static gboolean _dexter_network_session_starttls (dexter_network_session_t *session,
gboolean role,
+ const gchar *cert_file,
const gchar *key_file,
- const gchar *cert_file,
const gchar *trust_file,
const gchar *crl_file,
guint flags,
@@ -326,13 +326,21 @@
static gboolean
_dexter_network_session_starttls (dexter_network_session_t *session,
gboolean role,
+ const gchar *cert_file,
const gchar *key_file,
- const gchar *cert_file,
const gchar *trust_file,
const gchar *crl_file,
guint flags,
GError **error)
{
+#ifdef G_ENABLE_DEBUG
+ g_message (G_STRFUNC);
+ g_message ("TLS cert file = %s", cert_file);
+ g_message ("TLS key file = %s", key_file);
+ g_message ("TLS trust file = %s", trust_file);
+ g_message ("TLS crl file = %s", crl_file);
+#endif
+
return TRUE;
}
#endif
@@ -627,8 +635,8 @@
gboolean
dexter_network_session_client_starttls (dexter_network_session_t *session,
+ const gchar *cert_file,
const gchar *key_file,
- const gchar *cert_file,
const gchar *trust_file,
const gchar *crl_file,
GError **error)
@@ -653,8 +661,8 @@
gboolean
dexter_network_session_server_starttls (dexter_network_session_t *session,
+ const gchar *cert_file,
const gchar *key_file,
- const gchar *cert_file,
const gchar *trust_file,
const gchar *crl_file,
guint client_cert_flag,
Modified: libdexter/trunk/dexter/dexter-network.h
===================================================================
--- libdexter/trunk/dexter/dexter-network.h 2007-06-04 18:13:59 UTC (rev 368)
+++ libdexter/trunk/dexter/dexter-network.h 2007-06-09 07:17:19 UTC (rev 369)
@@ -74,16 +74,16 @@
gboolean dexter_network_session_client_starttls
(dexter_network_session_t *session,
+ const gchar *cert_file,
const gchar *key_file,
- const gchar *cert_file,
const gchar *trust_file,
const gchar *crl_file,
GError **error) G_GNUC_INTERNAL;
gboolean dexter_network_session_server_starttls
(dexter_network_session_t *session,
+ const gchar *cert_file,
const gchar *key_file,
- const gchar *cert_file,
const gchar *trust_file,
const gchar *crl_file,
guint client_cert_flag,
Modified: libdexter/trunk/dexter/dexter-server-internal.h
===================================================================
--- libdexter/trunk/dexter/dexter-server-internal.h 2007-06-04 18:13:59 UTC (rev 368)
+++ libdexter/trunk/dexter/dexter-server-internal.h 2007-06-09 07:17:19 UTC (rev 369)
@@ -49,12 +49,17 @@
typedef struct _DexterServerClass DexterServerClass;
-GType dexter_server_get_type (void) G_GNUC_INTERNAL G_GNUC_CONST;
+GType dexter_server_get_type (void) G_GNUC_INTERNAL G_GNUC_CONST;
#ifdef HAVE_LIBWRAP
-gboolean dexter_server_hosts_access (int) G_GNUC_INTERNAL;
+gboolean dexter_server_hosts_access (int) G_GNUC_INTERNAL;
#endif
+#ifdef HAVE_TLS
+const DexterServerTLSSettings
+ *dexter_server_tls_settings (DexterServer *server) G_GNUC_INTERNAL;
+#endif
+
G_END_DECLS
#endif /* __DEXTER_SERVER_INTERNAL_H__ */
Modified: libdexter/trunk/dexter/dexter-server.c
===================================================================
--- libdexter/trunk/dexter/dexter-server.c 2007-06-04 18:13:59 UTC (rev 368)
+++ libdexter/trunk/dexter/dexter-server.c 2007-06-09 07:17:19 UTC (rev 369)
@@ -85,6 +85,13 @@
static void dexter_server_set_runnable (DexterServer *server,
gboolean runnable);
static GError *dexter_server_convert_network_error (GError **network_error);
+#ifdef HAVE_TLS
+static DexterServerTLSSettings
+ *dexter_server_tls_settings_new0 (void);
+static void dexter_server_tls_settings_copy (DexterServerTLSSettings *dest,
+ const DexterServerTLSSettings *source);
+static void dexter_server_tls_settings_free (DexterServerTLSSettings *tls_settings);
+#endif
/* accept loop runs in a thread */
static void _server_thread_func (DexterServer *server);
@@ -122,6 +129,11 @@
gint max_clients; /* max number of simultaneous client connections */
int recvbufsize; /* receive buffer size for service sockets */
+
+#if HAVE_TLS
+ DexterServerTLSSettings
+ *tls_settings; /* TLS settings from dexter_server_start () */
+#endif
};
struct _DexterServerClass
@@ -136,6 +148,7 @@
struct _service_data
{
+ DexterServer *server; /* server */
int connfd; /* connection fd */
int recvbufsize; /* receive buffer size for service socket */
struct sockaddr_storage addr; /* socket address struct */
@@ -214,6 +227,10 @@
g_warning ("%s: ServerRecvBufferSize must be >= 128. Using default %d recv buffer size.",
G_STRFUNC, server->recvbufsize);
}
+
+#ifdef HAVE_TLS
+ server->tls_settings = dexter_server_tls_settings_new0 ();
+#endif
}
@@ -230,6 +247,10 @@
g_free (server->service);
g_free (server->socket_options);
+#ifdef HAVE_TLS
+ dexter_server_tls_settings_free (server->tls_settings);
+#endif
+
/* chain up */
G_OBJECT_CLASS(dexter_server_parent_class)->finalize (object);
}
@@ -261,6 +282,17 @@
#endif
+#ifdef HAVE_TLS
+const DexterServerTLSSettings *
+dexter_server_tls_settings (DexterServer *server)
+{
+ g_return_val_if_fail (DEXTER_IS_SERVER (server), NULL);
+
+ return server->tls_settings;
+}
+#endif
+
+
/**
* dexter_server_get_state:
* @server: a #DexterServer.
@@ -364,7 +396,38 @@
}
+#ifdef HAVE_TLS
+static DexterServerTLSSettings *
+dexter_server_tls_settings_new0 (void)
+{
+ return g_slice_new0 (DexterServerTLSSettings);
+}
+
+
static void
+dexter_server_tls_settings_copy (DexterServerTLSSettings *dest,
+ const DexterServerTLSSettings *source)
+{
+ g_return_if_fail (dest != NULL);
+ g_return_if_fail (source != NULL);
+
+ dest->support_flag = source->support_flag;
+ dest->starttls_callback = source->starttls_callback;
+}
+
+
+static void
+dexter_server_tls_settings_free (DexterServerTLSSettings *tls_settings)
+{
+ if (G_UNLIKELY (!tls_settings))
+ return;
+
+ g_slice_free (DexterServerTLSSettings, tls_settings);
+}
+#endif
+
+
+static void
_server_thread_func (DexterServer *server)
{
GError *local_error = NULL;
@@ -414,6 +477,8 @@
/* each service thread will be passed an allocated ServiceData structure */
service_data = g_slice_new0 (ServiceData);
+ /* service thread increments server ref count */
+ service_data->server = server;
service_data->recvbufsize = server->recvbufsize;
/* each thread sees the same atomic client counter */
service_data->client_counter = client_counter;
@@ -506,8 +571,8 @@
&local_error);
if (local_error)
{
- /* GLib's g_thread_pool_push only returns an error for non-exclusive pools when no
- * new thread could be created. GLib still enqueues the task, however. */
+ /* GLib's g_thread_pool_push only returns an error for non-exclusive pools when
+ * no new thread could be created. GLib still enqueues the task, however. */
g_warning ("%s: %s", G_STRFUNC, local_error->message);
g_clear_error (&local_error);
break;
@@ -515,6 +580,7 @@
/* new ServiceData needed for next connection */
service_data = g_slice_new0 (ServiceData);
+ service_data->server = server;
service_data->recvbufsize = server->recvbufsize;
service_data->client_counter = client_counter;
}
@@ -524,13 +590,7 @@
server_thread_done:
dexter_server_set_state (server, DEXTER_SERVER_STATE_STOPPED);
close (server->listenfd);
- if (service_data)
- g_slice_free (ServiceData, service_data);
-#ifdef G_ENABLE_DEBUG
- g_message ("server done in thread 0x%08X", (unsigned)g_thread_self());
-#endif
-
/* Decrement client count, since server is exiting and it counts as one.
* Thread that decrements count to zero frees the counter. */
if (g_atomic_int_dec_and_test (&client_counter->count))
@@ -539,7 +599,14 @@
dexter_log (DEXTER_LOG_INFO, "server stopped on host %s, port %s",
server->host_numeric, server->serv_numeric);
+ if (service_data)
+ g_slice_free (ServiceData, service_data);
+
g_object_unref (server);
+
+#ifdef G_ENABLE_DEBUG
+ g_message ("server done in thread 0x%08X", (unsigned)g_thread_self());
+#endif
}
@@ -555,9 +622,12 @@
gboolean done = FALSE;
g_return_if_fail (sd != NULL);
+ g_return_if_fail (DEXTER_IS_SERVER (sd->server));
g_return_if_fail (sd->recvbufsize > 0);
g_return_if_fail (sd->client_counter != NULL);
+ g_object_ref (sd->server);
+
#ifdef G_ENABLE_DEBUG
g_message ("service running in thread 0x%08X", (unsigned)g_thread_self());
#endif
@@ -568,6 +638,7 @@
servercomm = g_object_new (DEXTER_TYPE_SERVERCOMM, NULL);
session = dexter_network_session_new ();
dexter_network_session_open (session, sd->connfd, &sd->addr, sd->addrlen);
+ servercomm->server = sd->server;
servercomm->session = session;
do
@@ -640,20 +711,21 @@
while ((!done) && (dexter_get_state () == DEXTER_STATE_UP));
dexter_network_session_close (session, NULL);
- g_slice_free1 (sd->recvbufsize, recvbuf);
- g_object_unref (framer);
- g_object_unref (servercomm);
dexter_network_session_free (session);
-#ifdef G_ENABLE_DEBUG
- g_message ("service done in thread 0x%08X", (unsigned)g_thread_self ());
-#endif
-
/* decrement client count. thread that decrements count to zero frees the counter. */
if (g_atomic_int_dec_and_test (&sd->client_counter->count))
g_slice_free (ClientCounter, sd->client_counter);
+ g_object_unref (framer);
+ g_object_unref (servercomm);
+ g_object_unref (sd->server);
+ g_slice_free1 (sd->recvbufsize, recvbuf);
g_slice_free (ServiceData, sd);
+
+#ifdef G_ENABLE_DEBUG
+ g_message ("service done in thread 0x%08X", (unsigned)g_thread_self ());
+#endif
}
@@ -776,9 +848,33 @@
g_return_val_if_fail (DEXTER_IS_SERVER (server), FALSE);
g_return_val_if_fail (error == NULL || *error == NULL, FALSE);
+#ifdef HAVE_TLS
+ g_return_val_if_fail (tls_settings == NULL ||
+ tls_settings->support_flag == DEXTER_SERVER_TLS_SUPPORT_NONE ||
+ tls_settings->support_flag == DEXTER_SERVER_TLS_SUPPORT_AVAILABLE ||
+ tls_settings->support_flag == DEXTER_SERVER_TLS_SUPPORT_REQUIRED, FALSE);
+#else
+ g_return_val_if_fail (tls_settings == NULL, FALSE);
+#endif
g_object_ref (server);
+ if (tls_settings)
+#ifdef HAVE_TLS
+ {
+ dexter_server_tls_settings_copy (server->tls_settings, tls_settings);
+ }
+#else
+ {
+ g_set_error (error,
+ DEXTER_SERVER_ERROR,
+ DEXTER_SERVER_ERROR_TLS_NOT_ENABLED,
+ "%s: TLS not enabled", G_STRFUNC);
+ g_object_unref (server);
+ return FALSE;
+ }
+#endif /* HAVE_TLS */
+
/* check if server started */
if (dexter_server_get_state (server) == DEXTER_SERVER_STATE_STARTED)
{
Modified: libdexter/trunk/dexter/dexter-server.h
===================================================================
--- libdexter/trunk/dexter/dexter-server.h 2007-06-04 18:13:59 UTC (rev 368)
+++ libdexter/trunk/dexter/dexter-server.h 2007-06-09 07:17:19 UTC (rev 369)
@@ -37,20 +37,22 @@
/**
* DexterServerError:
- * @DEXTER_SERVER_ERROR_STATE: operation not allowed in current server state.
* @DEXTER_SERVER_ERROR_EACCES: address is protected, and the user is not the superuser.
* @DEXTER_SERVER_ERROR_EADDRINUSE: local address in use.
* @DEXTER_SERVER_ERROR_EAGAIN: temporary name server failure.
+ * @DEXTER_SERVER_ERROR_STATE: operation not allowed in current server state.
+ * @DEXTER_SERVER_ERROR_TLS_NOT_ENABLED: TLS not enabled on this installation.
* @DEXTER_SERVER_ERROR_FAILED: other failure.
*
* Error codes for dexter_server operations.
**/
typedef enum
{
- DEXTER_SERVER_ERROR_STATE,
DEXTER_SERVER_ERROR_EACCES,
DEXTER_SERVER_ERROR_EADDRINUSE,
DEXTER_SERVER_ERROR_EAGAIN,
+ DEXTER_SERVER_ERROR_STATE,
+ DEXTER_SERVER_ERROR_TLS_NOT_ENABLED,
DEXTER_SERVER_ERROR_FAILED
} DexterServerError;
@@ -132,6 +134,7 @@
* DexterServerTLSStartCallback:
* @server: #DexterServer on which TLS is starting.
* @client_sa: socket address of client.
+ * @client_salen: length of client socket address.
* @tls_parameters: #DexterServerTLSParameters of default parameters from config file.
*
* Signature of callback function used to override default parameters as TLS starts.
@@ -145,6 +148,7 @@
**/
typedef void (*DexterServerTLSStartCallback) (DexterServer *server,
const struct sockaddr *client_sa,
+ socklen_t client_salen,
DexterServerTLSParameters *tls_parameters);
Modified: libdexter/trunk/dexter/dexter-servercomm.c
===================================================================
--- libdexter/trunk/dexter/dexter-servercomm.c 2007-06-04 18:13:59 UTC (rev 368)
+++ libdexter/trunk/dexter/dexter-servercomm.c 2007-06-09 07:17:19 UTC (rev 369)
@@ -69,7 +69,18 @@
gint status,
GString *payload,
GError **error);
+#ifdef HAVE_TLS
+static DexterServerTLSParameters *
+ dexter_servercomm_tls_parameters_new0 (void);
+static void dexter_servercomm_tls_parameters_copy (DexterServerTLSParameters *dest,
+ const DexterServerTLSParameters *source);
+static void dexter_servercomm_tls_parameters_free (DexterServerTLSParameters *tls_parameters);
+static void dexter_servercomm_starttls (DexterServerComm *servercomm,
+ const DexterChannelMessage *msg,
+ GError **error);
+#endif
+
/* function to destroy [timed]sampler when removed from sampler hash */
static void _sampler_hash_destroy_notify (GObject *object);
@@ -125,6 +136,66 @@
}
servercomm->cur_dat_backlog = 0;
+
+#ifdef HAVE_TLS
+ servercomm->tls_parameters = dexter_servercomm_tls_parameters_new0 ();
+
+ /* fetch TLS parameters from config file */
+ if (!dexter_config_get_string (__ICONFIG,
+ "Main", "ServerTLSCertFile",
+ &servercomm->tls_parameters->cert_file, NULL))
+ {
+ servercomm->tls_parameters->cert_file = g_strdup (DEFAULT_SERVERCOMM_TLS_CERT_FILE);
+#ifdef G_ENABLE_DEBUG
+ g_message ("%s: using default %s for TLS cert file", G_STRFUNC, servercomm->tls_parameters->cert_file);
+#endif
+ }
+ if (!dexter_config_get_string (__ICONFIG,
+ "Main", "ServerTLSKeyFile",
+ &servercomm->tls_parameters->key_file, NULL))
+ {
+ servercomm->tls_parameters->key_file = g_strdup (DEFAULT_SERVERCOMM_TLS_KEY_FILE);
+#ifdef G_ENABLE_DEBUG
+ g_message ("%s: using default %s for TLS key file", G_STRFUNC, servercomm->tls_parameters->key_file);
+#endif
+ }
+ if (!dexter_config_get_string (__ICONFIG,
+ "Main", "ServerTLSTrustFile",
+ &servercomm->tls_parameters->trust_file, NULL))
+ {
+ servercomm->tls_parameters->trust_file = g_strdup (DEFAULT_SERVERCOMM_TLS_TRUST_FILE);
+#ifdef G_ENABLE_DEBUG
+ g_message ("%s: using default %s for TLS trust file", G_STRFUNC, servercomm->tls_parameters->trust_file);
+#endif
+ }
+ if (!dexter_config_get_string (__ICONFIG,
+ "Main", "ServerTLSCrlFile",
+ &servercomm->tls_parameters->crl_file, NULL))
+ {
+ servercomm->tls_parameters->crl_file = g_strdup (DEFAULT_SERVERCOMM_TLS_CRL_FILE);
+#ifdef G_ENABLE_DEBUG
+ g_message ("%s: using default %s for TLS crl file", G_STRFUNC, servercomm->tls_parameters->crl_file);
+#endif
+ }
+ {
+ gint tmp_client_cert_flag;
+
+ if (!dexter_config_get_integer (__ICONFIG,
+ "Main", "ServerTLSClientCertFlag",
+ &tmp_client_cert_flag, NULL))
+ {
+ servercomm->tls_parameters->client_cert_flag = DEFAULT_SERVERCOMM_TLS_CLIENT_CERT_FLAG;
+#ifdef G_ENABLE_DEBUG
+ g_message ("%s: using default %d for TLS client cert flag",
+ G_STRFUNC, servercomm->tls_parameters->client_cert_flag);
+#endif
+ }
+ else
+ {
+ servercomm->tls_parameters->client_cert_flag = (DexterServerTLSClientCertFlag) tmp_client_cert_flag;
+ }
+ }
+#endif /* HAVE_TLS */
}
@@ -153,6 +224,10 @@
/* release async queue */
g_async_queue_unref (servercomm->dat_queue);
+#ifdef HAVE_TLS
+ dexter_servercomm_tls_parameters_free (servercomm->tls_parameters);
+#endif
+
/* chain up */
G_OBJECT_CLASS(dexter_servercomm_parent_class)->finalize (object);
}
@@ -190,7 +265,115 @@
}
+#ifdef HAVE_TLS
+static DexterServerTLSParameters *
+dexter_servercomm_tls_parameters_new0 (void)
+{
+ return g_slice_new0 (DexterServerTLSParameters);
+}
+
+
static void
+dexter_servercomm_tls_parameters_copy (DexterServerTLSParameters *dest,
+ const DexterServerTLSParameters *source)
+{
+ g_return_if_fail (dest != NULL);
+ g_return_if_fail (source != NULL);
+
+ dest->cert_file = g_strdup (source->cert_file);
+ dest->key_file = g_strdup (source->key_file);
+ dest->trust_file = g_strdup (source->trust_file);
+ dest->crl_file = g_strdup (source->crl_file);
+ dest->client_cert_flag = source->client_cert_flag;
+}
+
+
+static void
+dexter_servercomm_tls_parameters_free (DexterServerTLSParameters *tls_parameters)
+{
+ if (G_UNLIKELY (!tls_parameters))
+ return;
+
+ g_free (tls_parameters->cert_file);
+ g_free (tls_parameters->key_file);
+ g_free (tls_parameters->trust_file);
+ g_free (tls_parameters->crl_file);
+ g_slice_free (DexterServerTLSParameters, tls_parameters);
+}
+
+
+static void
+dexter_servercomm_starttls (DexterServerComm *servercomm,
+ const DexterChannelMessage *msg,
+ GError **error)
+{
+ DexterServerTLSParameters *tls_parameters;
+ const DexterServerTLSSettings *tls_settings;
+ GError *local_error = NULL;
+
+ g_return_if_fail (DEXTER_IS_SERVERCOMM (servercomm));
+ g_return_if_fail (msg != NULL);
+ g_return_if_fail (error == NULL || *error == NULL);
+
+ g_object_ref (servercomm);
+
+ tls_settings = dexter_server_tls_settings (servercomm->server);
+
+ /* check if server supports TLS */
+ if (tls_settings->support_flag == DEXTER_SERVER_TLS_SUPPORT_NONE)
+ {
+ dexter_servercomm_reply (servercomm, msg->cmd.command, msg->peer_id, ERROR_TLS_NOT_AVAILABLE, NULL, error);
+ g_object_unref (servercomm);
+ return;
+ }
+
+ /* check if TLS already running */
+ if (G_UNLIKELY (dexter_network_session_tls_running (servercomm->session)))
+ {
+ dexter_servercomm_reply (servercomm, msg->cmd.command, msg->peer_id, ERROR_TLS_ALREADY_STARTED, NULL,error);
+ g_object_unref (servercomm);
+ return;
+ }
+
+ /* get default TLS parameters */
+ tls_parameters = dexter_servercomm_tls_parameters_new0 ();
+ dexter_servercomm_tls_parameters_copy (tls_parameters, servercomm->tls_parameters);
+
+ /* if specified, issue callback to finalize TLS parameters */
+ if (tls_settings->starttls_callback)
+ {
+ (tls_settings->starttls_callback) (servercomm->server,
+ dexter_network_session_peer_addr (servercomm->session),
+ dexter_network_session_peer_addrlen (servercomm->session),
+ tls_parameters);
+ }
+
+ /* tell client to proceed with TLS handshake */
+ dexter_servercomm_reply (servercomm, msg->cmd.command, msg->peer_id, STATUS_OK, NULL, error);
+
+ /* start TLS handshake */
+ dexter_network_session_server_starttls (servercomm->session,
+ tls_parameters->cert_file,
+ tls_parameters->key_file,
+ tls_parameters->trust_file,
+ tls_parameters->crl_file,
+ tls_parameters->client_cert_flag,
+ &local_error);
+ if (local_error)
+ {
+ dexter_servercomm_tls_parameters_free (tls_parameters);
+ g_propagate_error (error, local_error);
+ g_object_unref (servercomm);
+ return;
+ }
+
+ dexter_servercomm_tls_parameters_free (tls_parameters);
+ g_object_unref (servercomm);
+}
+#endif
+
+
+static void
_sampler_hash_destroy_notify (GObject *object)
{
if (DEXTER_IS_SAMPLER (object))
@@ -339,7 +522,7 @@
{
REQUIRE_GREETING;
#ifdef HAVE_TLS
- dexter_servercomm_reply (servercomm, msg.cmd.command, msg.peer_id, STATUS_OK, NULL, error);
+ dexter_servercomm_starttls (servercomm, &msg, error);
#else
dexter_servercomm_reply (servercomm, msg.cmd.command, msg.peer_id, ERROR_TLS_NOT_AVAILABLE, NULL, error);
#endif
Modified: libdexter/trunk/dexter/dexter-servercomm.h
===================================================================
--- libdexter/trunk/dexter/dexter-servercomm.h 2007-06-04 18:13:59 UTC (rev 368)
+++ libdexter/trunk/dexter/dexter-servercomm.h 2007-06-09 07:17:19 UTC (rev 369)
@@ -25,12 +25,21 @@
#include <glib-object.h>
#include <dexter-msgframer.h>
+#include <dexter-server-internal.h>
#include <dexterplugin-service.h>
G_BEGIN_DECLS
-#define DEFAULT_SERVERCOMM_MAX_DATA_BACKLOG 16
+#define DEFAULT_SERVERCOMM_MAX_DATA_BACKLOG 16
+#ifdef HAVE_TLS
+#define DEFAULT_SERVERCOMM_TLS_CERT_FILE "/etc/ssl/libdexter/server-cert.pem"
+#define DEFAULT_SERVERCOMM_TLS_KEY_FILE "/etc/ssl/libdexter/server-key.pem"
+#define DEFAULT_SERVERCOMM_TLS_TRUST_FILE "/etc/ssl/libdexter/server-trust.pem"
+#define DEFAULT_SERVERCOMM_TLS_CRL_FILE "/etc/ssl/libdexter/server-crl.pem"
+#define DEFAULT_SERVERCOMM_TLS_CLIENT_CERT_FLAG 1
+#endif
+
#define DEXTER_TYPE_SERVERCOMM (dexter_servercomm_get_type ())
#define DEXTER_SERVERCOMM(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), \
DEXTER_TYPE_SERVERCOMM, DexterServerComm))
@@ -50,14 +59,18 @@
struct _DexterServerComm
{
- GObject parent;
- dexter_network_session_t *session; /* network session */
- gboolean greeting_exchanged; /* true if protocol greeting exchanged */
- DexterPluginServiceGroup *sampler_service_group; /* sampler services we offer */
- GHashTable *sampler_hash; /* samplers created on behalf of client */
- GAsyncQueue *dat_queue; /* delivery queue of DAT messages for client */
- gint max_dat_backlog; /* max length of data delivery queue */
- volatile gint cur_dat_backlog; /* current data delivery backlog */
+ GObject parent;
+ DexterServer *server; /* server that owns us */
+ dexter_network_session_t *session; /* network session */
+ gboolean greeting_exchanged; /* true if protocol greeting exchanged */
+ DexterPluginServiceGroup *sampler_service_group; /* sampler services we offer */
+ GHashTable *sampler_hash; /* samplers created on behalf of client */
+ GAsyncQueue *dat_queue; /* delivery queue of DAT messages for client */
+ gint max_dat_backlog; /* max length of data delivery queue */
+ volatile gint cur_dat_backlog; /* current data delivery backlog */
+#ifdef HAVE_TLS
+ DexterServerTLSParameters *tls_parameters; /* default TLS parameters from config file */
+#endif
};
struct _DexterServerCommClass
Modified: libdexter/trunk/docs/reference/dexter/tmpl/dexter-server.sgml
===================================================================
--- libdexter/trunk/docs/reference/dexter/tmpl/dexter-server.sgml 2007-06-04 18:13:59 UTC (rev 368)
+++ libdexter/trunk/docs/reference/dexter/tmpl/dexter-server.sgml 2007-06-09 07:17:19 UTC (rev 369)
@@ -29,10 +29,11 @@
</para>
-@DEXTER_SERVER_ERROR_STATE:
@DEXTER_SERVER_ERROR_EACCES:
@DEXTER_SERVER_ERROR_EADDRINUSE:
@DEXTER_SERVER_ERROR_EAGAIN:
+@DEXTER_SERVER_ERROR_STATE:
+@DEXTER_SERVER_ERROR_TLS_NOT_ENABLED:
@DEXTER_SERVER_ERROR_FAILED:
<!-- ##### STRUCT DexterServer ##### -->
@@ -76,6 +77,7 @@
@server:
@client_sa:
+@client_salen:
@tls_parameters:
Modified: libdexter/trunk/programs/dexterd/dexterd.c
===================================================================
--- libdexter/trunk/programs/dexterd/dexterd.c 2007-06-04 18:13:59 UTC (rev 368)
+++ libdexter/trunk/programs/dexterd/dexterd.c 2007-06-09 07:17:19 UTC (rev 369)
@@ -72,7 +72,7 @@
{
GOptionContext *context;
DexterServer *server;
- DexterServerTLSSettings tls_settings;
+ DexterServerTLSSettings tls_settings;
GError *err = NULL;
/* Abort on any warning within this program's domain */
@@ -166,10 +166,10 @@
tls_settings.starttls_callback = NULL;
#ifdef HAVE_TLS
tls_settings.support_flag = DEXTER_SERVER_TLS_SUPPORT_AVAILABLE;
+ dexter_server_start (server, &tls_settings, &err);
#else
- tls_settings.support_flag = DEXTER_SERVER_TLS_SUPPORT_NONE;
+ dexter_server_start (server, NULL, &err);
#endif
- dexter_server_start (server, &tls_settings, &err);
if (err)
g_warning (err->message);
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <pk...@us...> - 2007-06-04 18:15:45
|
Revision: 368
http://svn.sourceforge.net/libdexter/?rev=368&view=rev
Author: pkovacs
Date: 2007-06-04 11:13:59 -0700 (Mon, 04 Jun 2007)
Log Message:
-----------
update gnulib & ebuild
Modified Paths:
--------------
distro/portage/net-libs/libdexter/libdexter-0.999.ebuild
libdexter/trunk/libgnu/m4/stdint.m4
Added Paths:
-----------
libdexter/trunk/libgnu/m4/float_h.m4
Modified: distro/portage/net-libs/libdexter/libdexter-0.999.ebuild
===================================================================
--- distro/portage/net-libs/libdexter/libdexter-0.999.ebuild 2007-06-04 04:54:19 UTC (rev 367)
+++ distro/portage/net-libs/libdexter/libdexter-0.999.ebuild 2007-06-04 18:13:59 UTC (rev 368)
@@ -27,7 +27,7 @@
app-text/docbook-xsl-stylesheets
dev-libs/libxslt
gnutls? (
- >=net-libs/gnutls-1.2.11
+ >=net-libs/gnutls-1.4.4
)
tcpd? (
sys-apps/tcp-wrappers
Added: libdexter/trunk/libgnu/m4/float_h.m4
===================================================================
--- libdexter/trunk/libgnu/m4/float_h.m4 (rev 0)
+++ libdexter/trunk/libgnu/m4/float_h.m4 2007-06-04 18:13:59 UTC (rev 368)
@@ -0,0 +1,21 @@
+# float_h.m4 serial 1
+dnl Copyright (C) 2007 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+AC_DEFUN([gl_FLOAT_H],
+[
+ AC_REQUIRE([AC_PROG_CC])
+ AC_REQUIRE([AC_CANONICAL_HOST])
+ FLOAT_H=
+ case "$host_os" in
+ beos*)
+ FLOAT_H=float.h
+ gl_ABSOLUTE_HEADER([float.h])
+ ABSOLUTE_FLOAT_H=\"$gl_cv_absolute_float_h\"
+ AC_SUBST([ABSOLUTE_FLOAT_H])
+ ;;
+ esac
+ AC_SUBST([FLOAT_H])
+])
Property changes on: libdexter/trunk/libgnu/m4/float_h.m4
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Name: svn:keywords
+ Id
Name: svn:eol-style
+ native
Modified: libdexter/trunk/libgnu/m4/stdint.m4
===================================================================
--- libdexter/trunk/libgnu/m4/stdint.m4 2007-06-04 04:54:19 UTC (rev 367)
+++ libdexter/trunk/libgnu/m4/stdint.m4 2007-06-04 18:13:59 UTC (rev 368)
@@ -1,5 +1,5 @@
-# stdint.m4 serial 23
-dnl Copyright (C) 2001-2002, 2004-2007 Free Software Foundation, Inc.
+# stdint.m4 serial 25
+dnl Copyright (C) 2001-2007 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
@@ -142,12 +142,32 @@
#endif
intmax_t i = INTMAX_MAX;
uintmax_t j = UINTMAX_MAX;
+
+#include <limits.h> /* for CHAR_BIT */
+#define TYPE_MINIMUM(t) \
+ ((t) ((t) 0 < (t) -1 ? (t) 0 : ~ (t) 0 << (sizeof (t) * CHAR_BIT - 1)))
+#define TYPE_MAXIMUM(t) \
+ ((t) ((t) 0 < (t) -1 ? (t) -1 : ~ (~ (t) 0 << (sizeof (t) * CHAR_BIT - 1))))
struct s {
- int check_PTRDIFF: PTRDIFF_MIN < (ptrdiff_t) 0 && (ptrdiff_t) 0 < PTRDIFF_MAX ? 1 : -1;
- int check_SIG_ATOMIC: SIG_ATOMIC_MIN <= (sig_atomic_t) 0 && (sig_atomic_t) 0 < SIG_ATOMIC_MAX ? 1 : -1;
- int check_SIZE: (size_t) 0 < SIZE_MAX ? 1 : -1;
- int check_WCHAR: WCHAR_MIN <= (wchar_t) 0 && (wchar_t) 0 < WCHAR_MAX ? 1 : -1;
- int check_WINT: WINT_MIN <= (wint_t) 0 && (wint_t) 0 < WINT_MAX ? 1 : -1;
+ int check_PTRDIFF:
+ PTRDIFF_MIN == TYPE_MINIMUM (ptrdiff_t)
+ && PTRDIFF_MAX == TYPE_MAXIMUM (ptrdiff_t)
+ ? 1 : -1;
+ /* Detect bug in FreeBSD 6.0 / ia64. */
+ int check_SIG_ATOMIC:
+ SIG_ATOMIC_MIN == TYPE_MINIMUM (sig_atomic_t)
+ && SIG_ATOMIC_MAX == TYPE_MAXIMUM (sig_atomic_t)
+ ? 1 : -1;
+ int check_SIZE: SIZE_MAX == TYPE_MAXIMUM (size_t) ? 1 : -1;
+ int check_WCHAR:
+ WCHAR_MIN == TYPE_MINIMUM (wchar_t)
+ && WCHAR_MAX == TYPE_MAXIMUM (wchar_t)
+ ? 1 : -1;
+ /* Detect bug in mingw. */
+ int check_WINT:
+ WINT_MIN == TYPE_MINIMUM (wint_t)
+ && WINT_MAX == TYPE_MAXIMUM (wint_t)
+ ? 1 : -1;
/* Detect bugs in glibc 2.4 and Solaris 10 stdint.h, among others. */
int check_UINT8_C:
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|