Example #1
0
void snmp::session::get_bulk(std::map<snmp::oid, snmp::variant> & variables)
{
    auto request = snmp_pdu_create(SNMP_MSG_GET);

    for (auto var : variables)
    {
        snmp_add_null_var(request, var.first.data(), var.first.size());
    }

    auto response = perform_request(cast_session(_ss), request);

    for (auto var = response->variables; var; var = var->next_variable)
    {
        save_variable(variables, var);
    }
}
Example #2
0
std::map<snmp::oid, snmp::variant> snmp::session::walk(oid root)
{
    std::map<snmp::oid, snmp::variant> variables;

    oid current_oid = root;
    while (current_oid.starts_with(root))
    {
        auto request = snmp_pdu_create(SNMP_MSG_GETNEXT);
        snmp_add_null_var(request, current_oid.data(), current_oid.size());

        auto response = perform_request(cast_session(_ss), request);

        auto var = response->variables;
        assert(var->next_variable == nullptr);

        save_variable(variables, var);

        current_oid = oid(var->name, var->name_length);
    }

    return variables;
}
Example #3
0
#include <position.h>

inherit LIB_BARKEEP;

string array flatterers, specials;
string save_str = "";
string saved_str = "";

mixed NoKill(object attacker);

int FlatterResponse(mixed args...){
    string who = args[0]->GetKeyName();
    if(member_array(who, flatterers) == -1){
        flatterers += ({ args[0]->GetKeyName() });
        flatterers = distinct_array(flatterers);
        save_str = save_variable(flatterers);    
        unguarded( (: write_file("/domains/town/save/brandy.o", save_str, 1) :) );
        args[0]->AddExperiencePoints(300);
    }
    this_object()->eventForce("say Thank you, "+args[0]->GetName()+". Feel free to ask me "+
            "for my special menu.");
    return 1;
}

static void create() {
    barkeep::create();
    flatterers = ({}); 
    unguarded( (: saved_str = read_file("/domains/town/save/brandy.o") :) );
    if(sizeof(saved_str)) flatterers = restore_variable(saved_str);
    SetKeyName("brandy");
    SetAdjectives( ({ "bar", "fine", "bartender", "keeper", "good", "serving" }) );