本文整理汇总了C++中r_log函数的典型用法代码示例。如果您正苦于以下问题:C++ r_log函数的具体用法?C++ r_log怎么用?C++ r_log使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了r_log函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。
示例1: MOZ_ASSERT
bool TestNrSocket::allow_ingress(const nr_transport_addr &from,
PortMapping **port_mapping_used) const {
// This is only called for traffic arriving at a port mapping
MOZ_ASSERT(nat_->enabled_);
MOZ_ASSERT(!nat_->is_an_internal_tuple(from));
*port_mapping_used = get_port_mapping(from, nat_->filtering_type_);
if (!(*port_mapping_used)) {
r_log(LOG_GENERIC, LOG_INFO, "TestNrSocket %s denying ingress from %s: "
"Filtered",
internal_socket_->my_addr().as_string,
from.as_string);
return false;
}
if (is_port_mapping_stale(**port_mapping_used)) {
r_log(LOG_GENERIC, LOG_INFO, "TestNrSocket %s denying ingress from %s: "
"Stale port mapping",
internal_socket_->my_addr().as_string,
from.as_string);
return false;
}
if (!nat_->allow_hairpinning_ && nat_->is_my_external_tuple(from)) {
r_log(LOG_GENERIC, LOG_INFO, "TestNrSocket %s denying ingress from %s: "
"Hairpinning disallowed",
internal_socket_->my_addr().as_string,
from.as_string);
return false;
}
return true;
}
开发者ID:Wafflespeanut,项目名称:gecko-dev,代码行数:33,代码来源:test_nr_socket.cpp
示例2: nr_ice_candidate_pair_select
int nr_ice_candidate_pair_select(nr_ice_cand_pair *pair)
{
int r,_status;
if(!pair){
r_log(LOG_ICE,LOG_ERR,"ICE-PAIR: No pair chosen");
ABORT(R_BAD_ARGS);
}
if(pair->state!=NR_ICE_PAIR_STATE_SUCCEEDED){
r_log(LOG_ICE,LOG_ERR,"ICE-PEER(%s)/CAND-PAIR(%s): tried to install non-succeeded pair, ignoring: %s",pair->pctx->label,pair->codeword,pair->as_string);
}
else{
/* Ok, they chose one */
/* 1. Send a new request with nominated. Do it as a scheduled
event to avoid reentrancy issues. Only do this if it hasn't
happened already (though this shouldn't happen.)
*/
if(!pair->restart_nominated_cb_timer)
NR_ASYNC_TIMER_SET(0,nr_ice_candidate_pair_restart_stun_nominated_cb,pair,&pair->restart_nominated_cb_timer);
/* 2. Tell ourselves this pair is ready */
if(r=nr_ice_component_nominated_pair(pair->remote->component, pair))
ABORT(r);
}
_status=0;
abort:
return(_status);
}
开发者ID:drexler,项目名称:releases-mozilla-aurora,代码行数:30,代码来源:ice_candidate_pair.c
示例3: nr_ice_candidate_pair_select
int nr_ice_candidate_pair_select(nr_ice_cand_pair *pair)
{
int r,_status;
if(!pair){
r_log(LOG_ICE,LOG_ERR,"ICE-PAIR: No pair chosen");
ABORT(R_BAD_ARGS);
}
if(pair->state!=NR_ICE_PAIR_STATE_SUCCEEDED){
r_log(LOG_ICE,LOG_ERR,"ICE-PEER(%s): tried to install non-succeeded pair %s, ignoring",pair->pctx->label,pair->as_string);
}
else{
/* Ok, they chose one */
/* 1. Send a new request with nominated. Do it as a scheduled
event to avoid reentrancy issues */
NR_ASYNC_SCHEDULE(nr_ice_candidate_pair_restart_stun_nominated_cb,pair);
/* 2. Tell ourselves this pair is ready */
if(r=nr_ice_component_nominated_pair(pair->remote->component, pair))
ABORT(r);
}
_status=0;
abort:
return(_status);
}
开发者ID:batmancn,项目名称:MyLife,代码行数:26,代码来源:ice_candidate_pair.c
示例4: nr_turn_client_start_refresh_timer
static int nr_turn_client_start_refresh_timer(nr_turn_client_ctx *tctx,
nr_turn_stun_ctx *sctx,
UINT4 lifetime)
{
int _status;
assert(!tctx->refresh_timer_handle);
if (lifetime <= TURN_REFRESH_SLACK_SECONDS) {
r_log(NR_LOG_TURN, LOG_ERR, "Too short lifetime specified for turn %u", lifetime);
ABORT(R_BAD_DATA);
}
if (lifetime > 3600)
lifetime = 3600;
lifetime -= TURN_REFRESH_SLACK_SECONDS;
r_log(NR_LOG_TURN, LOG_DEBUG, "TURN(%s): Setting refresh timer for %u seconds",
tctx->label, lifetime);
NR_ASYNC_TIMER_SET(lifetime * 1000, nr_turn_client_refresh_timer_cb, sctx,
&tctx->refresh_timer_handle);
_status=0;
abort:
if (_status) {
nr_turn_client_failed(tctx);
}
return _status;
}
开发者ID:JuannyWang,项目名称:gecko-dev,代码行数:30,代码来源:turn_client_ctx.c
示例5: nr_stun_client_timer_expired_cb
static void nr_stun_client_timer_expired_cb(int a, int b, void *cb_arg)
{
int _status;
nr_stun_client_ctx *ctx=cb_arg;
struct timeval now;
INT8 ms_waited;
/* Prevent this timer from being cancelled later */
ctx->timer_handle=0;
/* Shouldn't happen */
if(ctx->state==NR_STUN_CLIENT_STATE_CANCELLED)
ABORT(R_REJECTED);
gettimeofday(&now, 0);
if (r_timeval_diff_ms(&now, &ctx->timer_set, &ms_waited)) {
r_log(NR_LOG_STUN,LOG_DEBUG,"STUN-CLIENT(%s): Timer expired",ctx->label);
}
else {
r_log(NR_LOG_STUN,LOG_DEBUG,"STUN-CLIENT(%s): Timer expired (after %llu ms)",ctx->label, ms_waited);
}
if (ctx->request_ct >= ctx->maximum_transmits) {
r_log(NR_LOG_STUN,LOG_DEBUG,"STUN-CLIENT(%s): Timed out",ctx->label);
ctx->state=NR_STUN_CLIENT_STATE_TIMED_OUT;
ABORT(R_FAILED);
}
if (ctx->state != NR_STUN_CLIENT_STATE_RUNNING)
ABORT(R_NOT_PERMITTED);
/* as a side effect will reset the timer */
nr_stun_client_send_request(ctx);
_status = 0;
abort:
if (ctx->state != NR_STUN_CLIENT_STATE_RUNNING) {
/* Cancel the timer firing */
if (ctx->timer_handle) {
NR_async_timer_cancel(ctx->timer_handle);
ctx->timer_handle=0;
}
if (ctx->finished_cb) {
NR_async_cb finished_cb = ctx->finished_cb;
ctx->finished_cb = 0; /* prevent 2nd call */
/* finished_cb call must be absolutely last thing in function
* because as a side effect this ctx may be operated on in the
* callback */
finished_cb(0,0,ctx->cb_arg);
}
}
return;
}
开发者ID:batmancn,项目名称:MyLife,代码行数:54,代码来源:stun_client_ctx.c
示例6: ASSERT_ON_THREAD
// This should be called on the STS thread.
int NrSocket::sendto(const void *msg, size_t len,
int flags, nr_transport_addr *to) {
ASSERT_ON_THREAD(ststhread_);
int r,_status;
PRNetAddr naddr;
int32_t status;
if ((r=nr_transport_addr_to_praddr(to, &naddr)))
ABORT(r);
if(fd_==nullptr)
ABORT(R_EOD);
if (nr_is_stun_request_message((UCHAR*)msg, len)) {
// Global rate limiting for stun requests, to mitigate the ice hammer DoS
// (see http://tools.ietf.org/html/draft-thomson-mmusic-ice-webrtc)
// Tolerate rate of 8k/sec, for one second.
static SimpleTokenBucket burst(8192*1, 8192);
// Tolerate rate of 3.6k/sec over twenty seconds.
static SimpleTokenBucket sustained(3686*20, 3686);
// Check number of tokens in each bucket.
if (burst.getTokens(UINT32_MAX) < len ||
sustained.getTokens(UINT32_MAX) < len) {
r_log(LOG_GENERIC, LOG_ERR,
"Global rate limit for STUN requests exceeded.");
MOZ_ASSERT("Global rate limit for STUN requests exceeded. Go bug "
"[email protected] if you weren't intentionally spamming "
"ICE candidates, or don't know what that means.");
ABORT(R_WOULDBLOCK);
}
// Take len tokens from both buckets.
// (not threadsafe, but no problem since this is only called from STS)
burst.getTokens(len);
sustained.getTokens(len);
}
// TODO: Convert flags?
status = PR_SendTo(fd_, msg, len, flags, &naddr, PR_INTERVAL_NO_WAIT);
if (status < 0 || (size_t)status != len) {
if (PR_GetError() == PR_WOULD_BLOCK_ERROR)
ABORT(R_WOULDBLOCK);
r_log(LOG_GENERIC, LOG_INFO, "Error in sendto %s", to->as_string);
ABORT(R_IO_ERROR);
}
_status=0;
abort:
return(_status);
}
开发者ID:captainbrosset,项目名称:gecko-dev,代码行数:54,代码来源:nr_socket_prsock.cpp
示例7: nr_turn_client_process_response
int
nr_turn_client_process_response(nr_turn_client_ctx *ctx, UCHAR *msg, int len, nr_transport_addr *turn_server_addr)
{
int r,_status;
nr_stun_client_ctx *stun_ctx;
assert(ctx->phase >= 0 && ctx->phase < NUMBER_OF_STUN_CTX);
if (ctx->phase < 0 || ctx->phase > NUMBER_OF_STUN_CTX)
ABORT(R_INTERNAL); /* should never happen */
stun_ctx = ctx->stun_ctx[ctx->phase];
if (ctx->state != NR_TURN_CLIENT_STATE_RUNNING
&& ctx->state != NR_TURN_CLIENT_STATE_ALLOCATED) {
#if 0
//TODO: !nn! it really shouldn't be the case that we're processing a response in this state,
//TODO: but perhaps we failed and we haven't taken ourself off the
//TODO: ASYNC wait list, so an outstanding packet can cause us this grief
assert(0);
ABORT(R_INTERNAL); /* should never happen */
#else
//TODO: !nn! fix so we can never get into this state
r_log(NR_LOG_TURN,LOG_ERR,"TURN-CLIENT(%s): dropping packet in phase %s", ctx->label, TURN_PHASE_LABEL[ctx->phase]);
return R_INTERNAL;
#endif
}
if (ctx->phase != NR_TURN_CLIENT_PHASE_INITIALIZED) {
r_log(NR_LOG_TURN,LOG_DEBUG,"TURN-CLIENT(%s): Received response in phase %s", ctx->label, TURN_PHASE_LABEL[ctx->phase]);
}
else {
ABORT(R_INTERNAL);
}
if ((r=nr_stun_client_process_response(stun_ctx, msg, len, turn_server_addr)))
ABORT(r);
_status=0;
abort:
if (ctx->state != NR_TURN_CLIENT_STATE_RUNNING) {
if (ctx->finished_cb) {
NR_async_cb finished_cb = ctx->finished_cb;
ctx->finished_cb = 0; /* prevent 2nd call */
/* finished_cb call must be absolutely last thing in function
* because as a side effect this ctx may be operated on in the
* callback */
finished_cb(0,0,ctx->cb_arg);
}
}
return(_status);
}
开发者ID:lofter2011,项目名称:Icefox,代码行数:52,代码来源:turn_client_ctx.c
示例8: nr_stun_get_addrs
int
nr_stun_get_addrs(nr_local_addr addrs[], int maxaddrs, int drop_loopback, int drop_link_local, int *count)
{
int r,_status=0;
int i;
char typestr[100];
#ifdef WIN32
_status = stun_get_win32_addrs(addrs, maxaddrs, count);
#else
_status = stun_getifaddrs(addrs, maxaddrs, count);
#endif
if ((r=nr_stun_remove_duplicate_addrs(addrs, drop_loopback, drop_link_local, count)))
ABORT(r);
for (i = 0; i < *count; ++i) {
nr_local_addr_fmt_info_string(addrs+i,typestr,sizeof(typestr));
r_log(NR_LOG_STUN, LOG_DEBUG, "Address %d: %s on %s, type: %s\n",
i,addrs[i].addr.as_string,addrs[i].addr.ifname,typestr);
}
abort:
return _status;
}
开发者ID:mephisto41,项目名称:gecko-dev,代码行数:25,代码来源:addrs.c
示例9: nr_ice_candidate_pair_set_state
int nr_ice_candidate_pair_set_state(nr_ice_peer_ctx *pctx, nr_ice_cand_pair *pair, int state)
{
int r,_status;
r_log(LOG_ICE,LOG_DEBUG,"ICE-PEER(%s): setting pair %s to %s",
pctx->label,pair->as_string,nr_ice_cand_pair_states[state]);
pair->state=state;
if(pctx->state!=NR_ICE_PAIR_STATE_WAITING){
if(state==NR_ICE_PAIR_STATE_WAITING)
pctx->waiting_pairs++;
}
else{
if(state!=NR_ICE_PAIR_STATE_WAITING)
pctx->waiting_pairs--;
assert(pctx->waiting_pairs>=0);
}
if(pair->state==NR_ICE_PAIR_STATE_FAILED){
if(r=nr_ice_component_failed_pair(pair->remote->component, pair))
ABORT(r);
}
_status=0;
abort:
return(_status);
}
开发者ID:batmancn,项目名称:MyLife,代码行数:27,代码来源:ice_candidate_pair.c
示例10: nr_turn_client_cancel
int nr_turn_client_cancel(nr_turn_client_ctx *ctx)
{
nr_turn_stun_ctx *stun = 0;
if (ctx->state == NR_TURN_CLIENT_STATE_CANCELLED ||
ctx->state == NR_TURN_CLIENT_STATE_FAILED)
return(0);
if (ctx->label)
r_log(NR_LOG_TURN, LOG_INFO, "TURN(%s): cancelling", ctx->label);
/* Cancel the STUN client ctxs */
stun = STAILQ_FIRST(&ctx->stun_ctxs);
while (stun) {
nr_stun_client_cancel(stun->stun);
stun = STAILQ_NEXT(stun, entry);
}
/* Cancel the timers, if not already cancelled */
NR_async_timer_cancel(ctx->connected_timer_handle);
NR_async_timer_cancel(ctx->refresh_timer_handle);
ctx->state = NR_TURN_CLIENT_STATE_CANCELLED;
return(0);
}
开发者ID:Jar-win,项目名称:Waterfox,代码行数:26,代码来源:turn_client_ctx.c
示例11: ASSERT_ON_THREAD
// This should be called on the STS thread.
int NrSocket::sendto(const void *msg, size_t len,
int flags, nr_transport_addr *to) {
ASSERT_ON_THREAD(ststhread_);
int r,_status;
PRNetAddr naddr;
int32_t status;
if ((r=nr_transport_addr_to_praddr(to, &naddr)))
ABORT(r);
if(fd_==nullptr)
ABORT(R_EOD);
// TODO: Convert flags?
status = PR_SendTo(fd_, msg, len, flags, &naddr, PR_INTERVAL_NO_WAIT);
if (status < 0 || (size_t)status != len) {
if (PR_GetError() == PR_WOULD_BLOCK_ERROR)
ABORT(R_WOULDBLOCK);
r_log(LOG_GENERIC, LOG_INFO, "Error in sendto %s", to->as_string);
ABORT(R_IO_ERROR);
}
_status=0;
abort:
return(_status);
}
开发者ID:cctuan,项目名称:mozilla-central,代码行数:28,代码来源:nr_socket_prsock.cpp
示例12: ASSERT_ON_THREAD
int NrSocket::recvfrom(void * buf, size_t maxlen,
size_t *len, int flags,
nr_transport_addr *from) {
ASSERT_ON_THREAD(ststhread_);
int r,_status;
PRNetAddr nfrom;
int32_t status;
status = PR_RecvFrom(fd_, buf, maxlen, flags, &nfrom, PR_INTERVAL_NO_WAIT);
if (status <= 0) {
if (PR_GetError() == PR_WOULD_BLOCK_ERROR)
ABORT(R_WOULDBLOCK);
r_log(LOG_GENERIC, LOG_INFO, "Error in recvfrom");
ABORT(R_IO_ERROR);
}
*len=status;
if((r=nr_praddr_to_transport_addr(&nfrom,from,my_addr_.protocol,0)))
ABORT(r);
//r_log(LOG_GENERIC,LOG_DEBUG,"Read %d bytes from %s",*len,addr->as_string);
_status=0;
abort:
return(_status);
}
开发者ID:Andrel322,项目名称:gecko-dev,代码行数:26,代码来源:nr_socket_prsock.cpp
示例13: nr_ice_candidate_pair_do_triggered_check
int nr_ice_candidate_pair_do_triggered_check(nr_ice_peer_ctx *pctx, nr_ice_cand_pair *pair)
{
int r,_status;
r_log(LOG_ICE,LOG_INFO,"ICE-PEER(%s)/CAND-PAIR(%s): triggered check on %s",pctx->label,pair->codeword,pair->as_string);
switch(pair->state){
case NR_ICE_PAIR_STATE_FROZEN:
nr_ice_candidate_pair_set_state(pctx,pair,NR_ICE_PAIR_STATE_WAITING);
/* Fall through */
case NR_ICE_PAIR_STATE_WAITING:
/* Start the checks */
if(r=nr_ice_candidate_pair_start(pctx,pair))
ABORT(r);
break;
case NR_ICE_PAIR_STATE_IN_PROGRESS:
if(r=nr_stun_client_force_retransmit(pair->stun_client))
ABORT(r);
break;
default:
break;
}
/* Activate the media stream if required */
if(pair->remote->stream->ice_state==NR_ICE_MEDIA_STREAM_CHECKS_FROZEN){
if(r=nr_ice_media_stream_start_checks(pair->pctx,pair->remote->stream))
ABORT(r);
}
_status=0;
abort:
return(_status);
}
开发者ID:Andrel322,项目名称:gecko-dev,代码行数:33,代码来源:ice_candidate_pair.c
示例14: nr_stun_client_force_retransmit
int nr_stun_client_force_retransmit(nr_stun_client_ctx *ctx)
{
int r,_status;
if (ctx->state != NR_STUN_CLIENT_STATE_RUNNING)
ABORT(R_NOT_PERMITTED);
if (ctx->request_ct > ctx->maximum_transmits) {
r_log(NR_LOG_STUN,LOG_INFO,"STUN-CLIENT(%s): Too many retransmit attempts",ctx->label);
ABORT(R_FAILED);
}
/* if there is a scheduled retransimt, get rid of the scheduled retransmit
* and retransmit immediately */
if (ctx->timer_handle) {
NR_async_timer_cancel(ctx->timer_handle);
ctx->timer_handle=0;
if (r=nr_stun_client_send_request(ctx))
ABORT(r);
}
_status=0;
abort:
return(_status);
}
开发者ID:Nazi-Nigger,项目名称:gecko-dev,代码行数:27,代码来源:stun_client_ctx.c
示例15: nr_tcp_socket_ctx_create
/* This takes ownership of nrsock whether it fails or not. */
static int nr_tcp_socket_ctx_create(nr_socket *nrsock, int is_framed,
int max_pending, nr_tcp_socket_ctx **sockp)
{
int r, _status;
nr_tcp_socket_ctx *sock = 0;
nr_socket *tcpsock;
if (!(sock = RCALLOC(sizeof(nr_tcp_socket_ctx)))) {
nr_socket_destroy(&nrsock);
ABORT(R_NO_MEMORY);
}
if ((r=nr_socket_buffered_stun_create(nrsock, max_pending, is_framed ? ICE_TCP_FRAMING : TURN_TCP_FRAMING, &tcpsock))){
nr_socket_destroy(&nrsock);
ABORT(r);
}
sock->inner=tcpsock;
sock->is_framed=is_framed;
if ((r=nr_ip4_port_to_transport_addr(ntohl(INADDR_ANY), 0, IPPROTO_TCP, &sock->remote_addr)))
ABORT(r);
*sockp=sock;
_status=0;
abort:
if (_status) {
r_log(LOG_ICE,LOG_DEBUG,"%s:%d function %s failed with error %d",__FILE__,__LINE__,__FUNCTION__,_status);
nr_tcp_socket_ctx_destroy(&sock);
}
return(_status);
}
开发者ID:rhelmer,项目名称:gecko-dev,代码行数:34,代码来源:nr_socket_multi_tcp.c
示例16: nr_turn_client_send_indication
/* TODO([email protected]): We currently don't support channels.
We might in the future. Mozilla bug 857736 */
int nr_turn_client_send_indication(nr_turn_client_ctx *ctx,
const UCHAR *msg, size_t len,
int flags, nr_transport_addr *remote_addr)
{
int r,_status;
nr_stun_client_send_indication_params params = { { 0 } };
nr_stun_message *ind = 0;
if (ctx->state != NR_TURN_CLIENT_STATE_ALLOCATED)
ABORT(R_FAILED);
r_log(NR_LOG_TURN, LOG_DEBUG, "TURN(%s): Send indication len=%zu",
ctx->label, len);
if ((r=nr_turn_client_ensure_perm(ctx, remote_addr)))
ABORT(r);
if ((r=nr_transport_addr_copy(¶ms.remote_addr, remote_addr)))
ABORT(r);
params.data.data = (UCHAR*)msg;
params.data.len = len;
if ((r=nr_stun_build_send_indication(¶ms, &ind)))
ABORT(r);
if ((r=nr_turn_client_send_stun_request(ctx, ind, flags)))
ABORT(r);
_status=0;
abort:
nr_stun_message_destroy(&ind);
return(_status);
}
开发者ID:Jar-win,项目名称:Waterfox,代码行数:36,代码来源:turn_client_ctx.c
示例17: nr_stun_client_timer_expired_cb
static void nr_stun_client_timer_expired_cb(NR_SOCKET s, int b, void *cb_arg)
{
int _status;
nr_stun_client_ctx *ctx=cb_arg;
struct timeval now;
INT8 ms_waited;
/* Prevent this timer from being cancelled later */
ctx->timer_handle=0;
/* Shouldn't happen */
if(ctx->state==NR_STUN_CLIENT_STATE_CANCELLED)
ABORT(R_REJECTED);
gettimeofday(&now, 0);
if (r_timeval_diff_ms(&now, &ctx->timer_set, &ms_waited)) {
r_log(NR_LOG_STUN,LOG_DEBUG,"STUN-CLIENT(%s): Timer expired",ctx->label);
}
else {
r_log(NR_LOG_STUN,LOG_DEBUG,"STUN-CLIENT(%s): Timer expired (after %llu ms)",ctx->label, ms_waited);
}
if (ctx->request_ct >= ctx->maximum_transmits) {
r_log(NR_LOG_STUN,LOG_INFO,"STUN-CLIENT(%s): Timed out",ctx->label);
ctx->state=NR_STUN_CLIENT_STATE_TIMED_OUT;
ABORT(R_FAILED);
}
if (ctx->state != NR_STUN_CLIENT_STATE_RUNNING)
ABORT(R_NOT_PERMITTED);
/* as a side effect will reset the timer */
nr_stun_client_send_request(ctx);
_status = 0;
abort:
if (ctx->state != NR_STUN_CLIENT_STATE_RUNNING) {
/* Cancel the timer firing */
if (ctx->timer_handle){
NR_async_timer_cancel(ctx->timer_handle);
ctx->timer_handle=0;
}
nr_stun_client_fire_finished_cb(ctx);
}
return;
}
开发者ID:Nazi-Nigger,项目名称:gecko-dev,代码行数:47,代码来源:stun_client_ctx.c
示例18: MOZ_ASSERT
int TestNrSocket::listen(int backlog) {
MOZ_ASSERT(internal_socket_->my_addr().protocol == IPPROTO_TCP);
r_log(LOG_GENERIC, LOG_DEBUG,
"TestNrSocket %s listening",
internal_socket_->my_addr().as_string);
return internal_socket_->listen(backlog);
}
开发者ID:ajkerrigan,项目名称:gecko-dev,代码行数:8,代码来源:test_nr_socket.cpp
示例19: MOZ_ASSERT
void TestNrSocket::fire_readable_callback() {
MOZ_ASSERT(poll_flags() & PR_POLL_READ);
// Stop listening on all mapped sockets; we will start listening again
// if the app starts listening to us again.
cancel_port_mapping_async_wait(NR_ASYNC_WAIT_READ);
r_log(LOG_GENERIC, LOG_DEBUG, "TestNrSocket %s ready for read",
my_addr_.as_string);
fire_callback(NR_ASYNC_WAIT_READ);
}
开发者ID:Jar-win,项目名称:Waterfox,代码行数:9,代码来源:test_nr_socket.cpp
示例20: r_log
int TestNrSocket::PortMapping::cancel(int how) {
r_log(LOG_GENERIC, LOG_DEBUG,
"PortMapping %s -> %s stop waiting for %s",
external_socket_->my_addr().as_string,
remote_address_.as_string,
how == NR_ASYNC_WAIT_READ ? "read" : "write");
return external_socket_->cancel(how);
}
开发者ID:ajkerrigan,项目名称:gecko-dev,代码行数:9,代码来源:test_nr_socket.cpp
注:本文中的r_log函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论