Lines Matching defs:peer
31 struct lws_peer *peer)
36 if (*p == peer) {
65 struct lws_peer *peer)
67 __lws_peer_remove_from_peer_wait_list(context, peer);
69 peer->peer_wait_list = context->peer_wait_list;
70 context->peer_wait_list = peer;
82 struct lws_peer *peer;
95 /* eg, udp doesn't have to have a peer */
118 lws_context_lock(context, "peer search"); /* <======================= */
140 lwsl_info("%s: creating new peer\n", __func__);
142 peer = lws_zalloc(sizeof(*peer), "peer");
143 if (!peer) {
145 lwsl_err("%s: OOM for new peer\n", __func__);
150 peer->next = context->pl_hash_table[hash];
151 peer->hash = hash;
152 peer->sa46 = sa46;
153 context->pl_hash_table[hash] = peer;
154 time(&peer->time_created);
156 * On creation, the peer has no wsi attached, so is created on the
159 time(&peer->time_closed_all);
160 __lws_peer_add_to_peer_wait_list(context, peer);
164 return peer;
169 __lws_peer_destroy(struct lws_context *context, struct lws_peer *peer)
172 context->pl_hash_table[peer->hash]) {
173 if (*p == peer) {
197 lws_context_lock(context, "peer cull"); /* <========================= */
205 /* remove us from the peer wait list */
218 lws_peer_add_wsi(struct lws_context *context, struct lws_peer *peer,
221 if (!peer)
224 lws_context_lock(context, "peer add"); /* <========================== */
226 peer->count_wsi++;
227 wsi->peer = peer;
228 __lws_peer_remove_from_peer_wait_list(context, peer);
236 struct lws_peer *peer;
238 if (!wsi || !wsi->peer)
241 peer = wsi->peer;
246 (unsigned long long)peer->time_created,
247 peer->count_wsi, peer->total_wsi,
248 peer->http.count_ah, peer->http.total_ah);
252 (unsigned long long)peer->time_created,
253 peer->count_wsi, peer->total_wsi);
258 lws_peer_track_wsi_close(struct lws_context *context, struct lws_peer *peer)
260 if (!peer)
263 lws_context_lock(context, "peer wsi close"); /* <==================== */
265 assert(peer->count_wsi);
266 peer->count_wsi--;
268 if (!peer->count_wsi
270 && !peer->http.count_ah
274 * in order that we can accumulate peer activity correctly
275 * allowing for periods when the peer has no connections,
276 * we don't synchronously destroy the peer when his last
281 time(&peer->time_closed_all);
282 __lws_peer_add_to_peer_wait_list(context, peer);
291 struct lws_peer *peer)
293 if (!peer)
297 peer->http.count_ah >= context->ip_limit_ah) {
298 lwsl_info("peer reached ah limit %d, deferring\n",
308 lws_peer_track_ah_detach(struct lws_context *context, struct lws_peer *peer)
310 if (!peer)
313 lws_context_lock(context, "peer ah detach"); /* <==================== */
314 assert(peer->http.count_ah);
315 peer->http.count_ah--;