ngx_int_t update_subscriber_last_msg_id(subscriber_t *sub, nchan_msg_t *msg) { if(msg) { char *err, *huh; if(verify_msg_id(&sub->last_msgid, &msg->prev_id, &msg->id, &err) == NGX_ERROR) { struct timeval tv; time_t time; int ttl = msg->expires - msg->id.time; ngx_gettimeofday(&tv); time = tv.tv_sec; if(sub->last_msgid.time + ttl <= time) { huh = "The message probably expired."; } else { huh = "Try increasing the message buffer length."; } if(sub->type == INTERNAL) { nchan_log_warning("Missed message for internal %V subscriber: %s. %s", sub->name, err, huh); } else { nchan_log_request_warning(sub->request, "Missed message for %V subscriber: %s. %s", sub->name, err, huh); } } nchan_update_multi_msgid(&sub->last_msgid, &msg->id, NULL); } return NGX_OK; }
ngx_int_t update_subscriber_last_msg_id(subscriber_t *sub, nchan_msg_t *msg) { if(msg) { if(verify_msg_id(&sub->last_msgid, &msg->prev_id, &msg->id) == NGX_ERROR) { struct timeval tv; time_t time; int ttl = msg->expires - msg->id.time; ngx_gettimeofday(&tv); time = tv.tv_sec; if(sub->last_msgid.time + ttl <= time) { ERR("missed a message because it probably expired"); } else { ERR("missed a message for an unknown reason. Maybe it's a bug or maybe the message queue length is too small."); } } nchan_update_multi_msgid(&sub->last_msgid, &msg->id, NULL); } return NGX_OK; }
ngx_int_t update_subscriber_last_msg_id(subscriber_t *sub, nchan_msg_t *msg) { if(msg) { if(verify_msg_id(&sub->last_msgid, &msg->prev_id, &msg->id) == NGX_ERROR) { struct timeval tv; time_t time; int ttl = msg->expires - msg->id.time; ngx_gettimeofday(&tv); time = tv.tv_sec; if(sub->last_msgid.time + ttl <= time) { ERR("missed a message because it probably expired"); } else { ERR("missed a message for an unknown reason. That's bad! Stop everything!"); assert(0); } } nchan_update_multi_msgid(&sub->last_msgid, &msg->id); } return NGX_OK; }