Relacionamento bettwen route flags usando rota versus rota flags usando cat / proc / net / route

1

Quando você insere rota na linha de comando, para sinalizadores ela imprime U, UG, etc. No arquivo para rota, ela armazena sinalizadores como um número 0001, 0003 etc. Como estão os números de sinalizadores no arquivo / proc / net / route convertido para as letras de bandeiras que são impressas usando rota?

    
por Aaron 08.07.2015 / 23:30

1 resposta

1

As fontes de ferramentas da Net são aqui . Decodificando sinalizadores em lib / inet_gr.c:

    /* Decode the flags. */
    flags[0] = '
    #define RTF_UP          0x0001          /* route usable                 */
    #define RTF_GATEWAY     0x0002          /* destination is a gateway     */
    #define RTF_HOST        0x0004          /* host entry (net otherwise)   */
'; if (iflags & RTF_UP) strcat(flags, "U"); if (iflags & RTF_GATEWAY) strcat(flags, "G"); ...

E os flags são definidos em lib / net-support.h. Exemplo:

    /* Decode the flags. */
    flags[0] = '
    #define RTF_UP          0x0001          /* route usable                 */
    #define RTF_GATEWAY     0x0002          /* destination is a gateway     */
    #define RTF_HOST        0x0004          /* host entry (net otherwise)   */
'; if (iflags & RTF_UP) strcat(flags, "U"); if (iflags & RTF_GATEWAY) strcat(flags, "G"); ...
    
por 17.10.2015 / 22:21

Tags