std::string SIPAccount::getFromUri (void) const { char uri[PJSIP_MAX_URL_SIZE]; std::string scheme; std::string transport; std::string username = _username; std::string hostname = _hostname; // UDP does not require the transport specification if (_transportType == PJSIP_TRANSPORT_TLS) { scheme = "sips:"; transport = ";transport=" + std::string (pjsip_transport_get_type_name (_transportType)); } else { scheme = "sip:"; transport = ""; } // Get login name if username is not specified if (_username.empty()) { username = getLoginName(); } // Get machine hostname if not provided if (_hostname.empty()) { hostname = getMachineName(); } int len = pj_ansi_snprintf (uri, PJSIP_MAX_URL_SIZE, "<%s%s@%s%s>", scheme.c_str(), username.c_str(), hostname.c_str(), transport.c_str()); return std::string (uri, len); }
void BaseShadow::evictJob( int reason ) { MyString from_where; MyString machine; if( getMachineName(machine) ) { from_where.formatstr(" from %s",machine.Value()); } dprintf( D_ALWAYS, "Job %d.%d is being evicted%s\n", getCluster(), getProc(), from_where.Value() ); if( ! jobAd ) { dprintf( D_ALWAYS, "In evictJob() w/ NULL JobAd!" ); DC_Exit( reason ); } // cleanup this shadow (kill starters, etc) cleanUp( jobWantsGracefulRemoval() ); // write stuff to user log: logEvictEvent( reason ); // record the time we were vacated into the job ad char buf[64]; sprintf( buf, "%s = %d", ATTR_LAST_VACATE_TIME, (int)time(0) ); jobAd->Insert( buf ); // update the job ad in the queue with some important final // attributes so we know what happened to the job when using // condor_history... if( !updateJobInQueue(U_EVICT) ) { // trouble! TODO: should we do anything else? dprintf( D_ALWAYS, "Failed to update job queue!\n" ); } // does not return. DC_Exit( reason ); }