diff options
| -rw-r--r-- | source3/codepages/CPISO8859-13.TXT | 139 | ||||
| -rw-r--r-- | source3/smbd/quotas.c | 26 | 
2 files changed, 86 insertions, 79 deletions
diff --git a/source3/codepages/CPISO8859-13.TXT b/source3/codepages/CPISO8859-13.TXT index 82785a4c03..655acd6aba 100644 --- a/source3/codepages/CPISO8859-13.TXT +++ b/source3/codepages/CPISO8859-13.TXT @@ -1,11 +1,10 @@  # -#	Name:             ISO 8859-15 to Unicode +#	Name:             ISO 8859-13 to Unicode  #	Unicode version:  1.1 -#	Table version:    0.1 +#	Table version:    0.2  #	Table format:     Format A -#	Date:             16 January 1995 -#	Authors:          Tim Greenwood <greenwood@r2me2.enet.dec.com> -#                     John H. Jenkins <John_Jenkins@taligent.com> +#	Date:             19 February 2001 +#	Authors:          Toomas Soome <tsoome@ut.ee>  #  #	Copyright (c) 1991-1995 Unicode, Inc.  All Rights reserved.  # @@ -26,14 +25,14 @@  #	General notes:  #  #	This table contains the data the Unicode Consortium has on how -#       ISO 8859-15 characters map into Unicode. +#       ISO 8859-13 characters map into Unicode.  #  #	Format:  Three tab-separated columns -#		 Column #1 is the ISO 8859-15 code (in hex as 0xXX) +#		 Column #1 is the ISO 8859-13 code (in hex as 0xXX)  #		 Column #2 is the Unicode (in hex as 0xXXXX)  #		 Column #3 the Unicode name (follows a comment sign, '#')  # -#	The entries are in ISO 8859-15 order +#	The entries are in ISO 8859-13 order  #  #	Any comments or problems, contact <tsoome@ut.ee>  # @@ -133,98 +132,98 @@  0x7D	0x007D	#	RIGHT CURLY BRACKET  0x7E	0x007E	#	TILDE  0xA0	0x00A0	#	NO-BREAK SPACE -0xA1	0x00A1	#	INVERTED EXCLAMATION MARK +0xA1	0x201D	#	RIGHT DOUBLE QUOTATION MARK  0xA2	0x00A2	#	CENT SIGN  0xA3	0x00A3	#	POUND SIGN -0xA4	0x20AC	#	EURO SIGN -0xA5	0x00A5	#	YEN SIGN -0xA6	0x0160	#	LATIN CAPITAL LETTER S WITH CARON +0xA4	0x00A4	#	CURRENCY SIGN +0xA5	0x201E	#	DOUBLE LOW-9 QUOTATION MARK +0xA6	0x00A6	#	BROKEN BAR  0xA7	0x00A7	#	SECTION SIGN -0xA8	0x0161	#	LATIN SMALL LETTER S WITH CARON +0xA8	0x00D8	#	LATIN CAPITAL LETTER O WITH STROKE  0xA9	0x00A9	#	COPYRIGHT SIGN -0xAA	0x00AA	#	FEMININE ORDINAL INDICATOR +0xAA	0x0156	#	LATIN CAPITAL LETTER R WITH CEDILLA  0xAB	0x00AB	#	LEFT-POINTING DOUBLE ANGLE QUOTATION MARK  0xAC	0x00AC	#	NOT SIGN  0xAD	0x00AD	#	SOFT HYPHEN  0xAE	0x00AE	#	REGISTERED SIGN -0xAF	0x00AF	#	MACRON +0xAF	0x00C6	#	LATIN CAPITAL LETTER AE  0xB0	0x00B0	#	DEGREE SIGN  0xB1	0x00B1	#	PLUS-MINUS SIGN  0xB2	0x00B2	#	SUPERSCRIPT TWO  0xB3	0x00B3	#	SUPERSCRIPT THREE -0xB4	0x017D	#	LATIN CAPITAL LETTER Z WITH CARON +0xB4	0x201C	#	LEFT DOUBLE QUOTATION MARK  0xB5	0x00B5	#	MICRO SIGN  0xB6	0x00B6	#	PILCROW SIGN  0xB7	0x00B7	#	MIDDLE DOT -0xB8	0x017E	#	LATIN SMALL LETTER Z WITH CARON +0xB8	0x00F8	#	LATIN SMALL LETTER O WITH STROKE  0xB9	0x00B9	#	SUPERSCRIPT ONE -0xBA	0x00BA	#	MASCULINE ORDINAL INDICATOR +0xBA	0x0157	#	LATIN SMALL LETTER R WITH CEDILLA  0xBB	0x00BB	#	RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK -0xBC	0x0152	#	LATIN CAPITAL LIGATURE OE -0xBD	0x0153	#	LATIN SMALL LIGATURE OE -0xBE	0x0178	#	LATIN CAPITAL LETTER Y WITH DIAERESIS -0xBF	0x00BF	#	INVERTED QUESTION MARK -0xC0	0x00C0	#	LATIN CAPITAL LETTER A WITH GRAVE -0xC1	0x00C1	#	LATIN CAPITAL LETTER A WITH ACUTE -0xC2	0x00C2	#	LATIN CAPITAL LETTER A WITH CIRCUMFLEX -0xC3	0x00C3	#	LATIN CAPITAL LETTER A WITH TILDE +0xBC	0x00BC	#	VULGAR FRACTION ONE QUARTER +0xBD	0x00BD	#	VULGAR FRACTION ONE HALF +0xBE	0x00BE	#	VULGAR FRACTION THREE QUARTERS +0xBF	0x00E6	#	LATIN SMALL LETTER AE +0xC0	0x0104	#	LATIN CAPITAL LETTER A WITH OGONEK +0xC1	0x012E	#	LATIN CAPITAL LETTER I WITH OGONEK +0xC2	0x0100	#	LATIN CAPITAL LETTER A WITH MACRON +0xC3	0x0106	#	LATIN CAPITAL LETTER C WITH ACUTE  0xC4	0x00C4	#	LATIN CAPITAL LETTER A WITH DIAERESIS  0xC5	0x00C5	#	LATIN CAPITAL LETTER A WITH RING ABOVE -0xC6	0x00C6	#	LATIN CAPITAL LETTER AE -0xC7	0x00C7	#	LATIN CAPITAL LETTER C WITH CEDILLA -0xC8	0x00C8	#	LATIN CAPITAL LETTER E WITH GRAVE +0xC6	0x0118	#	LATIN CAPITAL LETTER E WITH OGONEK +0xC7	0x0112	#	LATIN CAPITAL LETTER E WITH MACRON +0xC8	0x010C	#	LATIN CAPITAL LETTER C WITH CARON  0xC9	0x00C9	#	LATIN CAPITAL LETTER E WITH ACUTE -0xCA	0x00CA	#	LATIN CAPITAL LETTER E WITH CIRCUMFLEX -0xCB	0x00CB	#	LATIN CAPITAL LETTER E WITH DIAERESIS -0xCC	0x00CC	#	LATIN CAPITAL LETTER I WITH GRAVE -0xCD	0x00CD	#	LATIN CAPITAL LETTER I WITH ACUTE -0xCE	0x00CE	#	LATIN CAPITAL LETTER I WITH CIRCUMFLEX -0xCF	0x00CF	#	LATIN CAPITAL LETTER I WITH DIAERESIS -0xD0	0x00D0	#	LATIN CAPITAL LETTER ETH (Icelandic) -0xD1	0x00D1	#	LATIN CAPITAL LETTER N WITH TILDE -0xD2	0x00D2	#	LATIN CAPITAL LETTER O WITH GRAVE +0xCA	0x0179	#	LATIN CAPITAL LETTER Z WITH ACUTE +0xCB	0x0116	#	LATIN CAPITAL LETTER E WITH DOT ABOVE +0xCC	0x0122	#	LATIN CAPITAL LETTER G WITH CEDILLA +0xCD	0x0136	#	LATIN CAPITAL LETTER K WITH CEDILLA +0xCE	0x012A	#	LATIN CAPITAL LETTER I WITH MACRON +0xCF	0x013B	#	LATIN CAPITAL LETTER L WITH CEDILLA +0xD0	0x0160	#	LATIN CAPITAL LETTER S WITH CARON +0xD1	0x0143	#	LATIN CAPITAL LETTER N WITH ACUTE +0xD2	0x0145	#	LATIN CAPITAL LETTER N WITH CEDILLA  0xD3	0x00D3	#	LATIN CAPITAL LETTER O WITH ACUTE -0xD4	0x00D4	#	LATIN CAPITAL LETTER O WITH CIRCUMFLEX +0xD4	0x014C	#	LATIN CAPITAL LETTER O WITH MACRON  0xD5	0x00D5	#	LATIN CAPITAL LETTER O WITH TILDE  0xD6	0x00D6	#	LATIN CAPITAL LETTER O WITH DIAERESIS  0xD7	0x00D7	#	MULTIPLICATION SIGN -0xD8	0x00D8	#	LATIN CAPITAL LETTER O WITH STROKE -0xD9	0x00D9	#	LATIN CAPITAL LETTER U WITH GRAVE -0xDA	0x00DA	#	LATIN CAPITAL LETTER U WITH ACUTE -0xDB	0x00DB	#	LATIN CAPITAL LETTER U WITH CIRCUMFLEX +0xD8	0x0172	#	LATIN CAPITAL LETTER U WITH OGONEK +0xD9	0x0141	#	LATIN CAPITAL LETTER L WITH STROKE +0xDA	0x015A	#	LATIN CAPITAL LETTER S WITH ACUTE +0xDB	0x016A	#	LATIN CAPITAL LETTER U WITH MACRON  0xDC	0x00DC	#	LATIN CAPITAL LETTER U WITH DIAERESIS -0xDD	0x00DD	#	LATIN CAPITAL LETTER Y WITH ACUTE -0xDE	0x00DE	#	LATIN CAPITAL LETTER THORN (Icelandic) -0xDF	0x00DF	#	LATIN SMALL LETTER SHARP S (German) -0xE0	0x00E0	#	LATIN SMALL LETTER A WITH GRAVE -0xE1	0x00E1	#	LATIN SMALL LETTER A WITH ACUTE -0xE2	0x00E2	#	LATIN SMALL LETTER A WITH CIRCUMFLEX -0xE3	0x00E3	#	LATIN SMALL LETTER A WITH TILDE +0xDD	0x017B	#	LATIN CAPITAL LETTER Z WITH DOT ABOVE +0xDE	0x017D	#	LATIN CAPITAL LETTER Z WITH CARON +0xDF	0x00DF	#	LATIN SMALL LETTER SHARP S +0xE0	0x0105	#	LATIN SMALL LETTER A WITH OGONEK +0xE1	0x012F	#	LATIN SMALL LETTER I WITH OGONEK +0xE2	0x0101	#	LATIN SMALL LETTER A WITH MACRON +0xE3	0x0107	#	LATIN SMALL LETTER C WITH ACUTE  0xE4	0x00E4	#	LATIN SMALL LETTER A WITH DIAERESIS  0xE5	0x00E5	#	LATIN SMALL LETTER A WITH RING ABOVE -0xE6	0x00E6	#	LATIN SMALL LETTER AE -0xE7	0x00E7	#	LATIN SMALL LETTER C WITH CEDILLA -0xE8	0x00E8	#	LATIN SMALL LETTER E WITH GRAVE +0xE6	0x0119	#	LATIN SMALL LETTER E WITH OGONEK +0xE7	0x0113	#	LATIN SMALL LETTER E WITH MACRON +0xE8	0x010D	#	LATIN SMALL LETTER C WITH CARON  0xE9	0x00E9	#	LATIN SMALL LETTER E WITH ACUTE -0xEA	0x00EA	#	LATIN SMALL LETTER E WITH CIRCUMFLEX -0xEB	0x00EB	#	LATIN SMALL LETTER E WITH DIAERESIS -0xEC	0x00EC	#	LATIN SMALL LETTER I WITH GRAVE -0xED	0x00ED	#	LATIN SMALL LETTER I WITH ACUTE -0xEE	0x00EE	#	LATIN SMALL LETTER I WITH CIRCUMFLEX -0xEF	0x00EF	#	LATIN SMALL LETTER I WITH DIAERESIS -0xF0	0x00F0	#	LATIN SMALL LETTER ETH (Icelandic) -0xF1	0x00F1	#	LATIN SMALL LETTER N WITH TILDE -0xF2	0x00F2	#	LATIN SMALL LETTER O WITH GRAVE +0xEA	0x017A	#	LATIN SMALL LETTER Z WITH ACUTE +0xEB	0x0117	#	LATIN SMALL LETTER E WITH DOT ABOVE +0xEC	0x0123	#	LATIN SMALL LETTER G WITH CEDILLA +0xED	0x0137	#	LATIN SMALL LETTER K WITH CEDILLA +0xEE	0x012B	#	LATIN SMALL LETTER I WITH MACRON +0xEF	0x013C	#	LATIN SMALL LETTER L WITH CEDILLA +0xF0	0x0161	#	LATIN SMALL LETTER S WITH CARON +0xF1	0x0144	#	LATIN SMALL LETTER N WITH ACUTE +0xF2	0x0146	#	LATIN SMALL LETTER N WITH CEDILLA  0xF3	0x00F3	#	LATIN SMALL LETTER O WITH ACUTE -0xF4	0x00F4	#	LATIN SMALL LETTER O WITH CIRCUMFLEX +0xF4	0x014D	#	LATIN SMALL LETTER O WITH MACRON  0xF5	0x00F5	#	LATIN SMALL LETTER O WITH TILDE  0xF6	0x00F6	#	LATIN SMALL LETTER O WITH DIAERESIS  0xF7	0x00F7	#	DIVISION SIGN -0xF8	0x00F8	#	LATIN SMALL LETTER O WITH STROKE -0xF9	0x00F9	#	LATIN SMALL LETTER U WITH GRAVE -0xFA	0x00FA	#	LATIN SMALL LETTER U WITH ACUTE -0xFB	0x00FB	#	LATIN SMALL LETTER U WITH CIRCUMFLEX +0xF8	0x0173	#	LATIN SMALL LETTER U WITH OGONEK +0xF9	0x0142	#	LATIN SMALL LETTER L WITH STROKE +0xFA	0x015B	#	LATIN SMALL LETTER S WITH ACUTE +0xFB	0x016B	#	LATIN SMALL LETTER U WITH MACRON  0xFC	0x00FC	#	LATIN SMALL LETTER U WITH DIAERESIS -0xFD	0x00FD	#	LATIN SMALL LETTER Y WITH ACUTE -0xFE	0x00FE	#	LATIN SMALL LETTER THORN (Icelandic) -0xFF	0x00FF	#	LATIN SMALL LETTER Y WITH DIAERESIS +0xFD	0x017C	#	LATIN SMALL LETTER Z WITH DOT ABOVE +0xFE	0x017E	#	LATIN SMALL LETTER Z WITH CARON +0xFF	0x2019	#	RIGHT SINGLE QUOTATION MARK diff --git a/source3/smbd/quotas.c b/source3/smbd/quotas.c index 9bbc027cf7..7808d269f9 100644 --- a/source3/smbd/quotas.c +++ b/source3/smbd/quotas.c @@ -244,6 +244,7 @@ BOOL disk_quotas(char *path, SMB_BIG_UINT *bsize, SMB_BIG_UINT *dfree, SMB_BIG_U  #if defined(SUNOS5)  #include <sys/fs/ufs_quota.h>  #include <sys/mnttab.h> +#include <sys/mntent.h>  #else /* defined(SUNOS4) */  #include <ufs/quota.h>  #include <mntent.h> @@ -264,6 +265,7 @@ BOOL disk_quotas(char *path, SMB_BIG_UINT *bsize, SMB_BIG_UINT *dfree, SMB_BIG_U    int file;    static struct mnttab mnt;    static pstring name; +  pstring devopt;  #else /* SunOS4 */    struct mntent *mnt;    static pstring name; @@ -272,7 +274,7 @@ BOOL disk_quotas(char *path, SMB_BIG_UINT *bsize, SMB_BIG_UINT *dfree, SMB_BIG_U    SMB_STRUCT_STAT sbuf;    SMB_DEV_T devno ;    static SMB_DEV_T devno_cached = 0 ; -  int found ; +  static int found ;    euser_id = geteuid(); @@ -280,7 +282,7 @@ BOOL disk_quotas(char *path, SMB_BIG_UINT *bsize, SMB_BIG_UINT *dfree, SMB_BIG_U      return(False) ;    devno = sbuf.st_dev ; -  DEBUG(5,("disk_quotas: looking for path \"%s\" devno=%o\n", path,devno)); +  DEBUG(5,("disk_quotas: looking for path \"%s\" devno=%x\n", path,devno));    if ( devno != devno_cached ) {      devno_cached = devno ;  #if defined(SUNOS5) @@ -288,12 +290,17 @@ BOOL disk_quotas(char *path, SMB_BIG_UINT *bsize, SMB_BIG_UINT *dfree, SMB_BIG_U        return(False) ;      found = False ; +    slprintf(devopt, sizeof(devopt) - 1, "dev=%x", devno);      while (getmntent(fd, &mnt) == 0) { -      if ( sys_stat(mnt.mnt_mountp,&sbuf) == -1 ) -	continue ; -      DEBUG(5,("disk_quotas: testing \"%s\" devno=%o\n",  -	       mnt.mnt_mountp,sbuf.st_dev)); -      if (sbuf.st_dev == devno) { +      if( !hasmntopt(&mnt, devopt) ) +	continue; + +      DEBUG(5,("disk_quotas: testing \"%s\" %s\n", mnt.mnt_mountp,devopt)); + +      /* quotas are only on vxfs, UFS or NFS, but nfs is not supported here */ +      if ( strcmp( mnt.mnt_fstype, MNTTYPE_UFS ) == 0 ||  +           strcmp( mnt.mnt_fstype, "vxfs" ) == 0  ) +      {   	found = True ;  	break ;        } @@ -322,10 +329,11 @@ BOOL disk_quotas(char *path, SMB_BIG_UINT *bsize, SMB_BIG_UINT *dfree, SMB_BIG_U      endmntent(fd) ;  #endif -    if ( ! found ) -      return(False) ;    } +  if ( ! found ) +      return(False) ; +    save_re_uid();    set_effective_uid(0);  | 
