Hi,

This problem has been solved by myself, after many many desperate tries :) 

so I'm not sure I can now give the exact root cause, but some notes anyway:

1) install the ssl version of net-snmp (by default, to c:\usr)
2) install Win32OpenSSL-0_9_8g.exe, which is a developer's version. (by 
default, to c:\OpenSSL)
3) in Visual studio, set the linker to reference c:\usr\lib\netsnmp.lib and 
C:\OpenSSL\lib\VC\libeay32MD.lib

Thanks All



----- Original Message ----
From: Chongkai Jiang <[EMAIL PROTECTED]>
To: [email protected]
Sent: Wednesday, May 7, 2008 5:34:53 PM
Subject: unresolved symbol when building net-snmp v3


Hi guys,

I'm trying to write a C++ application using net-snmp library. it works well 
with snmp version 2, but with version 3, visual studio linker reports errors. 

TclSNMP error LNK2001: unresolved external symbol _usmDESPrivProtocol
TclSNMP error LNK2001: unresolved external symbol _usmHMACMD5AuthProtocol

I installed an net-snmp binary version and used netsnmp.lib found in the 
installation's lib directory. I also installed win32OpenSSL and tried its lib 
files, but it didn't work.

Anyone can help me out? Thanks a lot!


netsnmp_session* GetSnmpSession(char* address) {

    map <char*, netsnmp_session*> ::iterator it = snmpSessionMap.find(address);
    if (it != snmpSessionMap.end()){
        return it->second;
    }

    netsnmp_session session, *ss; 

    snmp_sess_init( &session );
    session.peername = address;

/*
    session.version = SNMP_VERSION_2c;
    char* communityName = "private";

    session.community = (u_char *)communityName;
    session.community_len = strlen(communityName);
*/

    session.version = SNMP_VERSION_3;
    session.securityLevel = SNMP_SEC_LEVEL_AUTHPRIV;
    session.securityName = "regTester";
    session.securityNameLen = strlen(session.securityName);
    session.securityAuthProto = usmHMACMD5AuthProtocol;
    session.securityAuthProtoLen = sizeof(usmHMACMD5AuthProtocol)/sizeof(oid);
    session.securityPrivProto = usmDESPrivProtocol;
    session.securityPrivProtoLen = sizeof(usmDESPrivProtocol)/sizeof(oid);
//    session.securityAuthKey = (u_char*)"regAuthPasswd";
    session.securityAuthKeyLen = USM_AUTH_KU_LEN;
    //session.securityPrivKey = (u_char*)"regPrivPasswd";
    //session.securityPrivKeyLen = strlen(session.securityPrivKey);

    generate_Ku(session.securityAuthProto,
                       session.securityAuthProtoLen,
                       (u_char *) "regAuthPasswd", strlen("regAuthPasswd"),
                       session.securityAuthKey,
                       &session.securityAuthKeyLen);

    ss = snmp_open(&session);                     /* establish the session */

    if(ss) {
        snmpSessionMap.insert(SessionPair(address, ss));
    }

    return ss;
}

________________________________
Be a better friend, newshound, and 
know-it-all with Yahoo! Mobile. Try it now.


      
____________________________________________________________________________________
Be a better friend, newshound, and 
know-it-all with Yahoo! Mobile.  Try it now.  
http://mobile.yahoo.com/;_ylt=Ahu06i62sR8HDtDypao8Wcj9tAcJ
-------------------------------------------------------------------------
This SF.net email is sponsored by the 2008 JavaOne(SM) Conference 
Don't miss this year's exciting event. There's still time to save $100. 
Use priority code J8TL2D2. 
http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone
_______________________________________________
Net-snmp-coders mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/net-snmp-coders

Reply via email to