Hi
  I've created some logging functionality for a project I'm working
on. It creates a series of LogEvents for different system events.

Here's part of the message definition:

message Log {
        message LogEvent {
message NetInfo {
                        optional string                 ip_address              
        =1;
                        optional string                 login                   
        =2;
                        optional bytes                  mac                     
                =3;
                        optional bool                   wireless                
        =4;
                        optional string                 ssid                    
        =5;
                        enum wlessSecEnum {
                                NOAUTH          =0;
                                WEP                     =1;
                                WPAPSK_TKIP =2;
                                WPAPSK_AES  =3;
                                UNSUPPORTED =4;
                        }
                        optional wlessSecEnum   wless_security          =6;
                        enum ipconfigEnum {
                                DHCP    =0;
                                STATIC  =1;
                                PPPOE   =2;
                        }
                        optional wlessSecEnum   wless_security          =6;
                        enum ipconfigEnum {
                                DHCP    =0;
                                STATIC  =1;
                                PPPOE   =2;
                        }
                        optional ipconfigEnum   ip_config                       
=7;
                        optional string                 default_route           
=8;
                        optional string                 primary_DNS             
        =9;
                        optional string                 secondary_DNS           
=10;
                        optional bool                   proxy                   
        =11;

                }
                optional sfixed64                       timestamp               
        =3;
                optional string                         productId               
        =4;
                optional string                         detail                  
        =5;
                optional NetInfo                        netDetail               
        =9;
}

        repeated LogEvent                       events                          
        =1;
        optional string                         version                         
=2;
        optional sfixed64                       writetimestamp                  
=3;
}


Sorry for the convoluted structure. Anyway it serialises to a file
correctly, it's in a correct state then I use the SerializeToOstream()
method to write to a file. The file from inspection has all the data
and lots of events after the net connection event. So I know it's
correct as the strings are readable in notepad++.

However when I try to read back from the file using ParseFromIstream()
I get a properly constructed Log message. However all the fields after
the NetInfo.mac are set to defaults, and all the repeated LogEvents
after that one are missing. I know they're in the serialised file but
I can't parse them back in.

I've tried doing mac as a string, bytes, making sure there are no null
characters etc. However nothing seems to fix it.

Any help would be appreciated.

Regards

Iain

-- 
You received this message because you are subscribed to the Google Groups 
"Protocol Buffers" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/protobuf?hl=en.

Reply via email to