2010-12-02 14:41 UTC+0100 Viktor Szakats (harbour.01 syenar.hu)

* include/harbour.hbx
  * include/hbsocket.h
  * src/rtl/hbsocket.c
  * src/rtl/hbinet.c
  * src/rtl/hbsockhb.c
    + Added hb_socketSetExclusiveAddr() on .c level.
    + Added hb_socketSetExclusiveAddr() on .prg level.
    * hb_socketSetReuseAddr() cleaned from SO_EXCLUSIVEADDRUSE (Windows-only)
      logic.
    * Changed HB_INETSERVER(), HB_INETDGRAMBIND() to call
      hb_socketSetExclusiveAddr()(). We may delete these if they
      cause problems on some Windows platforms, though we must
      absolutely use this option (for security reasons) in every
      server component, if Windows host supports it.
    ; TODO: Call hb_socketSetExclusiveAddr() from hbnetio server,
            hbhttpd server.

  * include/hbcpage.hbx
  * src/codepage/Makefile
  + src/codepage/cpcs852c.c
  * src/codepage/cpsk852c.c
  - src/codepage/cpcskam.c
  + src/codepage/cpcskamc.c
  - src/codepage/cpskkam.c
  + src/codepage/cpskkamc.c
    ! Fixed SK852C to be fully Clipper compatible. (generated with cpinfo)
    ! Added Clipper compatible CS852C CP. (generated with cpinfo)
    * SK/CS Kamenicky CP moved to Clipper compatibility status.
      Updated to be Clipper compatible. (generated with cpinfo)
      INCOMPATIBLE. Pls update CP names if you used these.
      Thanks to Jaroslav Janik for the help.
      Please test all these.
This commit is contained in:
Viktor Szakats
2010-12-02 13:44:51 +00:00
parent a75f57da55
commit 514c3a2d00
14 changed files with 192 additions and 102 deletions

View File

@@ -16,6 +16,40 @@
The license applies to all entries newer than 2009-04-28.
*/
2010-12-02 14:41 UTC+0100 Viktor Szakats (harbour.01 syenar.hu)
* include/harbour.hbx
* include/hbsocket.h
* src/rtl/hbsocket.c
* src/rtl/hbinet.c
* src/rtl/hbsockhb.c
+ Added hb_socketSetExclusiveAddr() on .c level.
+ Added hb_socketSetExclusiveAddr() on .prg level.
* hb_socketSetReuseAddr() cleaned from SO_EXCLUSIVEADDRUSE (Windows-only)
logic.
* Changed HB_INETSERVER(), HB_INETDGRAMBIND() to call
hb_socketSetExclusiveAddr()(). We may delete these if they
cause problems on some Windows platforms, though we must
absolutely use this option (for security reasons) in every
server component, if Windows host supports it.
; TODO: Call hb_socketSetExclusiveAddr() from hbnetio server,
hbhttpd server.
* include/hbcpage.hbx
* src/codepage/Makefile
+ src/codepage/cpcs852c.c
* src/codepage/cpsk852c.c
- src/codepage/cpcskam.c
+ src/codepage/cpcskamc.c
- src/codepage/cpskkam.c
+ src/codepage/cpskkamc.c
! Fixed SK852C to be fully Clipper compatible. (generated with cpinfo)
! Added Clipper compatible CS852C CP. (generated with cpinfo)
* SK/CS Kamenicky CP moved to Clipper compatibility status.
Updated to be Clipper compatible. (generated with cpinfo)
INCOMPATIBLE. Pls update CP names if you used these.
Thanks to Jaroslav Janik for the help.
Please test all these.
2010-12-02 11:19 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/src/codepage/cpcs852.c
* harbour/src/codepage/cpcskam.c

View File

@@ -736,6 +736,7 @@ DYNAMIC HB_SOCKETSEND
DYNAMIC HB_SOCKETSENDTO
DYNAMIC HB_SOCKETSETBLOCKINGIO
DYNAMIC HB_SOCKETSETBROADCAST
DYNAMIC HB_SOCKETSETEXCLUSIVEADDR
DYNAMIC HB_SOCKETSETKEEPALIVE
DYNAMIC HB_SOCKETSETMULTICAST
DYNAMIC HB_SOCKETSETNODELAY

View File

@@ -33,8 +33,9 @@ DYNAMIC HB_CODEPAGE_BGISO
DYNAMIC HB_CODEPAGE_BGMIK
DYNAMIC HB_CODEPAGE_BGWIN
DYNAMIC HB_CODEPAGE_CS852
DYNAMIC HB_CODEPAGE_CS852C
DYNAMIC HB_CODEPAGE_CSISO
DYNAMIC HB_CODEPAGE_CSKAM
DYNAMIC HB_CODEPAGE_CSKAMC
DYNAMIC HB_CODEPAGE_CSWIN
DYNAMIC HB_CODEPAGE_DE850
DYNAMIC HB_CODEPAGE_DE850M
@@ -95,7 +96,7 @@ DYNAMIC HB_CODEPAGE_RUKOI8
DYNAMIC HB_CODEPAGE_SK852
DYNAMIC HB_CODEPAGE_SK852C
DYNAMIC HB_CODEPAGE_SKISO
DYNAMIC HB_CODEPAGE_SKKAM
DYNAMIC HB_CODEPAGE_SKKAMC
DYNAMIC HB_CODEPAGE_SKWIN
DYNAMIC HB_CODEPAGE_SL646
DYNAMIC HB_CODEPAGE_SL852

View File

@@ -101,6 +101,7 @@ extern HB_EXPORT long hb_socketRecv( HB_SOCKET sd, void * data, long len
extern HB_EXPORT long hb_socketRecvFrom( HB_SOCKET sd, void * data, long len, int flags, void ** pSockAddr, unsigned * puiSockLen, HB_MAXINT timeout );
extern HB_EXPORT int hb_socketSetBlockingIO( HB_SOCKET sd, HB_BOOL fBlocking );
extern HB_EXPORT int hb_socketSetNoDelay( HB_SOCKET sd, HB_BOOL fNoDelay );
extern HB_EXPORT int hb_socketSetExclusiveAddr( HB_SOCKET sd, HB_BOOL fExclusive );
extern HB_EXPORT int hb_socketSetReuseAddr( HB_SOCKET sd, HB_BOOL fReuse );
extern HB_EXPORT int hb_socketSetKeepAlive( HB_SOCKET sd, HB_BOOL fKeepAlive );
extern HB_EXPORT int hb_socketSetBroadcast( HB_SOCKET sd, HB_BOOL fBroadcast );

View File

@@ -10,8 +10,9 @@ C_SOURCES := \
cpbgmik.c \
cpbgwin.c \
cpcs852.c \
cpcs852c.c \
cpcsiso.c \
cpcskam.c \
cpcskamc.c \
cpcswin.c \
cpde850.c \
cpde850m.c \
@@ -71,7 +72,7 @@ C_SOURCES := \
cpsk852.c \
cpsk852c.c \
cpskiso.c \
cpskkam.c \
cpskkamc.c \
cpskwin.c \
cpsl646.c \
cpsl852.c \

View File

@@ -0,0 +1,27 @@
/*
* $Id$
*/
/*
* Harbour Project source code:
* National Collation Support Module ( CS852C )
*
* Copyright 2009 Przemyslaw Czerpak <druzus / at / priv.onet.pl>
* www - http://harbour-project.org
*
* This file is generated automatically by cpinfo.prg
*/
#define HB_CP_ID CS852C
#define HB_CP_INFO "Czech CP-852 (ntxcz852.obj compatible)"
#define HB_CP_UNITB HB_UNITB_852
#define HB_CP_RAW
static const unsigned char s_flags[ 256 ] = { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,0,0,0,0,0,0,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,0,0,0,0,0,0,6,6,0,6,6,0,0,0,6,0,0,0,0,10,0,10,10,6,6,6,10,6,0,0,10,10,10,6,0,0,6,6,6,6,6,0,0,10,6,0,0,0,0,10,0,0,0,0,0,0,0,0,10,0,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,10,10,6,10,10,0,6,0,0,0,0,0,10,0,10,0,10,0,0,6,10,6,10,10,6,0,6,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,10,6,0,0 };
static const unsigned char s_upper[ 256 ] = { 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,123,124,125,126,127,128,154,144,131,142,222,134,135,136,211,138,139,140,141,142,143,144,145,145,226,153,149,149,151,152,153,154,155,155,157,158,172,181,214,224,233,164,165,166,166,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,210,213,214,215,183,217,218,219,220,221,222,223,224,225,226,227,228,213,230,230,232,233,232,235,237,237,238,239,240,241,242,243,244,245,246,247,248,249,250,235,252,252,254,255 };
static const unsigned char s_lower[ 256 ] = { 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,132,143,130,146,146,147,148,150,150,151,152,148,129,156,156,157,158,159,160,161,162,163,164,165,167,167,168,169,170,171,159,173,174,175,176,177,178,179,180,160,182,216,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,212,137,212,229,161,215,216,217,218,219,220,221,133,223,162,225,147,227,228,229,231,231,234,163,234,235,236,236,238,239,240,241,242,243,244,245,246,247,248,249,250,251,253,253,254,255 };
static const unsigned char s_sort [ 256 ] = { 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,71,73,77,81,89,91,93,95,99,101,103,109,111,115,123,125,127,133,137,141,149,151,153,155,159,163,164,165,166,167,168,66,72,74,78,82,90,92,94,96,100,102,104,110,112,116,124,126,128,134,138,142,150,152,154,156,160,169,170,171,172,173,174,148,84,175,70,146,176,177,178,88,179,180,181,182,69,183,83,105,106,120,122,107,108,184,185,121,147,139,140,186,187,76,68,98,118,144,188,189,161,162,190,191,192,193,75,194,195,196,197,198,199,200,201,67,202,85,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,79,87,80,113,97,229,86,230,231,232,233,234,145,235,117,236,119,237,238,114,135,136,129,143,130,239,158,157,240,241,242,243,244,245,246,247,248,249,250,251,252,253,131,132,254,255 };
/* include CP registration code */
#include "hbcdpreg.h"

View File

@@ -1,62 +0,0 @@
/*
* $Id$
*/
/*
* Harbour Project source code:
* National Collation Support Module ( CSKAM )
*
* Copyright 2002 Alexander S.Kresin <alex@belacy.belgorod.su>
* www - http://harbour-project.org
* Czech collating sequence (CSKAM) done by Vojtech Obrdlik <vobrdlik@centrum.cz>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2, or (at your option)
* any later version.
*
* This program 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 General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this software; see the file COPYING. If not, write to
* the Free Software Foundation, Inc., 59 Temple Place, Suite 330,
* Boston, MA 02111-1307 USA (or visit the web site http://www.gnu.org/).
*
* As a special exception, the Harbour Project gives permission for
* additional uses of the text contained in its release of Harbour.
*
* The exception is that, if you link the Harbour libraries with other
* files to produce an executable, this does not by itself cause the
* resulting executable to be covered by the GNU General Public License.
* Your use of that executable is in no way restricted on account of
* linking the Harbour library code into it.
*
* This exception does not however invalidate any other reasons why
* the executable file might be covered by the GNU General Public License.
*
* This exception applies only to the code released by the Harbour
* Project under the name Harbour. If you copy code from other
* Harbour Project or Free Software Foundation releases into a copy of
* Harbour, as the General Public License permits, the exception does
* not apply to the code that you add in this way. To avoid misleading
* anyone as to the status of such modified files, you must delete
* this exception notice from them.
*
* If you write modifications of your own for Harbour, it is your choice
* whether to permit this exception to apply to your modifications.
* If you do not wish that, delete this exception notice.
*
*/
#define HB_CP_ID CSKAM
#define HB_CP_INFO "Czech Kamenicky (895)"
#define HB_CP_UNITB HB_UNITB_KAM
#define HB_CP_ACSORT HB_CDP_ACSORT_NONE
#define HB_CP_UPPER "A<>ŽBC€D…E<E280A6>‰FGH.CH.IJKLMN¥O•™PQRžST†U—¦šVWXY<58>Z"
#define HB_CP_LOWER "a „bc‡dƒeˆfgh.ch.i¡jklmn¤o¢”pqr©s¨tŸu£<C2A3>vwxy˜z"
/* include CP registration code */
#include "hbcdpreg.h"

View File

@@ -0,0 +1,27 @@
/*
* $Id$
*/
/*
* Harbour Project source code:
* National Collation Support Module ( CSKAMC )
*
* Copyright 2009 Przemyslaw Czerpak <druzus / at / priv.onet.pl>
* www - http://harbour-project.org
*
* This file is generated automatically by cpinfo.prg
*/
#define HB_CP_ID CSKAMC
#define HB_CP_INFO "Czech Kamenicky (ntxcz895.obj compatible)"
#define HB_CP_UNITB HB_UNITB_KAM
#define HB_CP_RAW
static const unsigned char s_flags[ 256 ] = { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,0,0,0,0,0,0,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,0,0,0,0,0,10,6,6,6,6,10,10,6,6,10,10,10,6,6,10,10,10,6,10,6,6,10,6,10,6,10,10,10,10,10,10,6,6,6,6,6,6,10,10,10,6,6,6,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 };
static const unsigned char s_upper[ 256 ] = { 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,123,124,125,126,127,128,154,144,133,142,133,134,128,137,137,138,139,156,138,142,143,144,146,146,167,153,149,166,151,157,153,154,155,156,157,158,134,143,139,149,151,165,165,166,167,155,158,171,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255 };
static const unsigned char s_lower[ 256 ] = { 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,135,129,130,131,132,131,159,135,136,136,141,161,140,141,132,160,130,145,145,147,148,162,150,163,152,148,129,168,140,152,169,159,160,161,162,163,164,164,150,147,168,169,170,170,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255 };
static const unsigned char s_sort [ 256 ] = { 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,71,73,77,81,87,89,91,93,97,99,101,107,109,113,121,123,125,131,135,139,147,149,151,153,157,161,162,163,164,165,166,66,72,74,78,82,88,90,92,94,98,100,102,108,110,114,122,124,126,132,136,140,148,150,152,154,158,167,168,169,170,171,75,146,84,80,70,79,137,76,86,85,103,95,106,104,69,67,83,160,159,118,120,115,144,141,156,119,145,133,105,155,129,138,68,96,116,142,112,111,143,117,134,130,128,127,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255 };
/* include CP registration code */
#include "hbcdpreg.h"

View File

@@ -4,7 +4,7 @@
/*
* Harbour Project source code:
* National Collation Support Module ( SK852 )
* National Collation Support Module ( SK852C )
*
* Copyright 2009 Przemyslaw Czerpak <druzus / at / priv.onet.pl>
* www - http://harbour-project.org
@@ -15,9 +15,13 @@
#define HB_CP_ID SK852C
#define HB_CP_INFO "Slovak CP-852 (ntxsl852.obj compatible)"
#define HB_CP_UNITB HB_UNITB_852
#define HB_CP_ACSORT HB_CDP_ACSORT_NONE
#define HB_CP_UPPER "AµŽBC¬DÒE<C392>·ÓFGHIÖJKL•MNÕOàâ™PQRèüSæTUéÞšVWXYíZ¦"
#define HB_CP_LOWER "a „bcŸdÔe؉fghi¡jklmnåo¢“”pqrêýsçtœu£…<C2A3>vwxyìz§"
#define HB_CP_RAW
static const unsigned char s_flags[ 256 ] = { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,0,0,0,0,0,0,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,0,0,0,0,0,0,6,6,0,6,6,0,0,0,6,0,0,0,0,10,0,10,10,6,6,6,10,6,0,0,10,10,10,6,0,0,6,6,6,6,6,0,0,10,6,0,0,0,0,10,0,0,0,0,0,0,0,0,10,0,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,10,10,6,10,10,0,6,0,0,0,0,0,10,0,10,0,10,0,0,6,10,6,10,10,6,0,6,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,10,6,0,0 };
static const unsigned char s_upper[ 256 ] = { 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,123,124,125,126,127,128,154,144,131,142,222,134,135,136,211,138,139,140,141,142,143,144,145,145,226,153,149,149,151,152,153,154,155,155,157,158,172,181,214,224,233,164,165,166,166,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,210,213,214,215,183,217,218,219,220,221,222,223,224,225,226,227,228,213,230,230,232,233,232,235,237,237,238,239,240,241,242,243,244,245,246,247,248,249,250,235,252,252,254,255 };
static const unsigned char s_lower[ 256 ] = { 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,132,143,130,146,146,147,148,150,150,151,152,148,129,156,156,157,158,159,160,161,162,163,164,165,167,167,168,169,170,171,159,173,174,175,176,177,178,179,180,160,182,216,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,212,137,212,229,161,215,216,217,218,219,220,221,133,223,162,225,147,227,228,229,231,231,234,163,234,235,236,236,238,239,240,241,242,243,244,245,246,247,248,249,250,251,253,253,254,255 };
static const unsigned char s_sort [ 256 ] = { 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,71,73,77,81,89,91,93,95,99,101,103,109,111,115,123,125,127,133,137,141,149,151,153,155,159,163,164,165,166,167,168,66,72,74,78,82,90,92,94,96,100,102,104,110,112,116,124,126,128,134,138,142,150,152,154,156,160,169,170,171,172,173,174,148,84,175,70,146,176,177,178,88,179,180,181,182,69,183,83,105,106,120,122,107,108,184,185,121,147,139,140,186,187,76,68,98,118,144,188,189,161,162,190,191,192,193,75,194,195,196,197,198,199,200,201,67,202,85,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,79,87,80,113,97,229,86,230,231,232,233,234,145,235,117,236,119,237,238,114,135,136,129,143,130,239,158,157,240,241,242,243,244,245,246,247,248,249,250,251,252,253,131,132,254,255 };
/* include CP registration code */
#include "hbcdpreg.h"

View File

@@ -1,23 +0,0 @@
/*
* $Id$
*/
/*
* Harbour Project source code:
* National Collation Support Module ( SKKAM )
*
* Copyright 2007-2010 Viktor Szakats (harbour.01 syenar.hu)
* www - http://harbour-project.org
*
* This file is generated automatically by cpinfo.prg
*/
#define HB_CP_ID SKKAM
#define HB_CP_INFO "Slovak Kamenicky (895)"
#define HB_CP_UNITB HB_UNITB_KAM
#define HB_CP_ACSORT HB_CDP_ACSORT_NONE
#define HB_CP_UPPER "A<>ŽBC€D…E<E280A6>‰FGHIJKLŠœMN¥O•§™PQR«žST†U—¦šVWXY<58>Z"
#define HB_CP_LOWER "a „bc‡dƒeˆfghi¡jkl<6B>Œmn¤o¢“”pqrª©s¨tŸu£<C2A3>vwxy˜z"
/* include CP registration code */
#include "hbcdpreg.h"

View File

@@ -0,0 +1,27 @@
/*
* $Id$
*/
/*
* Harbour Project source code:
* National Collation Support Module ( SKKAMC )
*
* Copyright 2009 Przemyslaw Czerpak <druzus / at / priv.onet.pl>
* www - http://harbour-project.org
*
* This file is generated automatically by cpinfo.prg
*/
#define HB_CP_ID SKKAMC
#define HB_CP_INFO "Slovak Kamenicky (ntxsl895.obj compatible)"
#define HB_CP_UNITB HB_UNITB_KAM
#define HB_CP_RAW
static const unsigned char s_flags[ 256 ] = { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,0,0,0,0,0,0,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,0,0,0,0,0,10,6,6,6,6,10,10,6,6,10,10,10,6,6,10,10,10,6,10,6,6,10,6,10,6,10,10,10,10,10,10,6,6,6,6,6,6,10,10,10,6,6,6,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 };
static const unsigned char s_upper[ 256 ] = { 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,123,124,125,126,127,128,154,144,133,142,133,134,128,137,137,138,139,156,138,142,143,144,146,146,167,153,149,166,151,157,153,154,155,156,157,158,134,143,139,149,151,165,165,166,167,155,158,171,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255 };
static const unsigned char s_lower[ 256 ] = { 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,135,129,130,131,132,131,159,135,136,136,141,161,140,141,132,160,130,145,145,147,148,162,150,163,152,148,129,168,140,152,169,159,160,161,162,163,164,164,150,147,168,169,170,170,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255 };
static const unsigned char s_sort [ 256 ] = { 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,71,73,77,81,87,89,91,93,97,99,101,107,109,113,121,123,125,131,135,139,147,149,151,153,157,161,162,163,164,165,166,66,72,74,78,82,88,90,92,94,98,100,102,108,110,114,122,124,126,132,136,140,148,150,152,154,158,167,168,169,170,171,75,146,84,80,70,79,137,76,86,85,103,95,106,104,69,67,83,160,159,118,120,115,144,141,156,119,145,133,105,155,129,138,68,96,116,142,112,111,143,117,134,130,128,127,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255 };
/* include CP registration code */
#include "hbcdpreg.h"

View File

@@ -1105,7 +1105,12 @@ HB_FUNC( HB_INETIFINFO )
static int s_inetBind( PHB_SOCKET_STRUCT socket, const void * pSockAddr, unsigned uiLen )
{
#if defined( HB_OS_WIN )
/* TODO: Do not set this for UDP multicast */
hb_socketSetExclusiveAddr( socket->sd, HB_TRUE );
#else
hb_socketSetReuseAddr( socket->sd, HB_TRUE );
#endif
return hb_socketBind( socket->sd, pSockAddr, uiLen );
}

View File

@@ -600,6 +600,14 @@ int hb_socketSetNoDelay( HB_SOCKET sd, HB_BOOL fNoDelay )
return -1;
}
int hb_socketSetExclusiveAddr( HB_SOCKET sd, HB_BOOL fExclusive )
{
HB_SYMBOL_UNUSED( sd );
HB_SYMBOL_UNUSED( fReuse );
hb_socketSetRawError( HB_SOCKET_ERR_INVALIDHANDLE );
return -1;
}
int hb_socketSetReuseAddr( HB_SOCKET sd, HB_BOOL fReuse )
{
HB_SYMBOL_UNUSED( sd );
@@ -2432,24 +2440,53 @@ int hb_socketSetNoDelay( HB_SOCKET sd, HB_BOOL fNoDelay )
return ret;
}
int hb_socketSetReuseAddr( HB_SOCKET sd, HB_BOOL fReuse )
/* NOTE: For notes on Windows, see:
http://paste.lisp.org/display/59751
[vszakats] */
int hb_socketSetExclusiveAddr( HB_SOCKET sd, HB_BOOL fExclusive )
{
/* it allows to reuse port immediately without timeout used to
* clean all pending connections addressed to previous port owner
*/
int val = fReuse ? 1 : 0, ret;
int ret;
#if defined( HB_OS_WIN )
#if defined( SO_EXCLUSIVEADDRUSE )
/* NOTE: For notes on Windows, see: http://paste.lisp.org/display/59751 */
int val = fExclusive ? 1 : 0;
ret = setsockopt( sd, SOL_SOCKET, SO_EXCLUSIVEADDRUSE, ( const char * ) &val, sizeof( val ) );
hb_socketSetOsError( ret != -1 ? 0 : HB_SOCK_GETERROR() );
#else
HB_SYMBOL_UNUSED( val );
HB_SYMBOL_UNUSED( sd );
HB_SYMBOL_UNUSED( fExclusive );
hb_socketSetRawError( HB_SOCKET_ERR_NOSUPPORT );
ret = -1;
#endif
#else
ret = setsockopt( sd, SOL_SOCKET, SO_REUSEADDR, ( const char * ) &val, sizeof( val ) );
HB_SYMBOL_UNUSED( sd );
HB_SYMBOL_UNUSED( fExclusive );
hb_socketSetOsError( 0 );
ret = 0;
#endif
return ret;
}
int hb_socketSetReuseAddr( HB_SOCKET sd, HB_BOOL fReuse )
{
int ret;
/* it allows to reuse port immediately without timeout used to
* clean all pending connections addressed to previous port owner
*/
#if defined( HB_OS_WIN )
/* SO_REUSEADDR in MS-Windows makes sth completly different
* then in other OS-es
*/
HB_SYMBOL_UNUSED( sd );
HB_SYMBOL_UNUSED( fReuse );
hb_socketSetRawError( HB_SOCKET_ERR_NOSUPPORT );
ret = -1;
#else
{
int val = fReuse ? 1 : 0;
ret = setsockopt( sd, SOL_SOCKET, SO_REUSEADDR, ( const char * ) &val, sizeof( val ) );
hb_socketSetOsError( ret != -1 ? 0 : HB_SOCK_GETERROR() );
}
#endif
hb_socketSetOsError( ret != -1 ? 0 : HB_SOCK_GETERROR() );
return ret;
}

View File

@@ -69,6 +69,7 @@
* HB_SOCKETRECVFROM( hSocket, @cBuffer, [ nLen = LEN( cBuffer ) ], [ nFlags = 0 ], @aAddr, [ nTimeout = FOREVER ] ) --> nBytesRecv
* HB_SOCKETSETBLOCKINGIO( hSocket, lValue ) --> lSuccess
* HB_SOCKETSETNODELAY( hSocket, lValue ) --> lSuccess
* HB_SOCKETSETEXCLUSIVEADDR( hSocket, lValue ) --> lSuccess
* HB_SOCKETSETREUSEADDR( hSocket, lValue ) --> lSuccess
* HB_SOCKETSETKEEPALIVE( hSocket, lValue ) --> lSuccess
* HB_SOCKETSETBROADCAST( hSocket, lValue ) --> lSuccess
@@ -479,6 +480,15 @@ HB_FUNC( HB_SOCKETSETNODELAY )
}
}
HB_FUNC( HB_SOCKETSETEXCLUSIVEADDR )
{
HB_SOCKET socket = hb_socketParam( 1 );
if( socket != HB_NO_SOCKET )
{
hb_retl( hb_socketSetExclusiveAddr( socket, hb_parl( 2 ) ) == 0 );
}
}
HB_FUNC( HB_SOCKETSETREUSEADDR )
{
HB_SOCKET socket = hb_socketParam( 1 );