Onde está a fonte correta do OS X 10.9 usando o “kloglevel”

0

O MacOS X 10.9 e 10.9.1 contém um bug do Finder que é revelado ao usar Servidores SMB v2. (Esse bug é sinalizado para a Apple e brevemente descrito aqui: bug do localizador smb v2 / Mavericks ).

Eu encontrei com man nsmb.conf que um nível de depuração do kernel é possível:

 Possible keywords may include:

 Keyword       Section    Default    Comment
               A B C      Values
 [...]
 kloglevel     + - -      0          Turn on smb kernel logging

Mas isso é inútil se eu nem sei se isso é um padrão ou um inteiro.

Pesquisando na árvore de fontes do Kernel , eu gostaria de encontrar onde o nível de depuração é usado e como.

Como é possível localizar a fonte (arquivo .c ou .h) que é definindo ou usando este nível de depuração?

    
por daniel Azuelos 22.02.2014 / 16:40

1 resposta

1

As fontes necessárias estão localizadas aqui:

Fonte aberta Apple MacOS X 10.9 dentro de:

smb-697-1.1

Depois de baixado, este tarball deve ser expandido com:

gzcat smb-697.1.1.tar.gz | tar xvf -

Dentro desta árvore de fontes, as fontes relevantes podem ser identificadas com:

cd smb-697.1.1
find . -type f -exec grep -H -i loglevel {} \;

E finalmente descobrimos que:

kernel/smbfs/smbfs_vfsops.c

inicializa:

smbfs_loglevel =  args->KernelLogLevel;

e isso:

kernel/netsmb/smb_subr.h

define:

#define SMB_NO_LOG_LEVEL                0x00
#define SMB_LOW_LOG_LEVEL               0x01
#define SMB_ACL_LOG_LEVEL               0x02
#define SMB_IO_LOG_LEVEL                0x04
#define SMB_AUTH_LOG_LEVEL              0x08

e usa:

if (smbfs_loglevel & SMB_AUTH_LOG_LEVEL) \

Por isso, kloglevel é um padrão de bits em 4 bits.

    
por 26.02.2014 / 15:20