示例#1
0
string get_addr_str(struct in_addr in)
{
    inet_ntoa_mut.lock();
    string addr = inet_ntoa(in);
    inet_ntoa_mut.unlock();
    return addr;
}
示例#2
0
unsigned int get_random()
{
    _s_rand_mut.lock();
    unsigned int r = rand_r(&_s_rand);
    _s_rand_mut.unlock();

    return r;
}
示例#3
0
string get_ip_from_name(const string& name)
{
    inet_gethostbyname.lock();
    struct hostent *he = gethostbyname(name.c_str());
    if(!he) {
        inet_gethostbyname.unlock();
        return "";
    }
    struct in_addr a;
    bcopy(he->h_addr, (char *) &a, sizeof(a));
    inet_gethostbyname.unlock();
    return get_addr_str(a);
}
示例#4
0
/**
 * Run log hooks
 */
void run_log_hooks(int level, pid_t pid, pthread_t tid, const char* func, const char* file, int line, char* msg)
{
  log_hooks_mutex.lock();

  if (!log_hooks.empty()) {
    for (vector<AmLoggingFacility*>::iterator it = log_hooks.begin();
         it != log_hooks.end(); ++it) {
      (*it)->log(level, pid, tid, func, file, line, msg);
    }
  }

  log_hooks_mutex.unlock();
}