Lines Matching refs:client

133 void    attr_clnt_free(ATTR_CLNT *client)  in attr_clnt_free()  argument
135 auto_clnt_free(client->auto_clnt); in attr_clnt_free()
136 myfree((void *) client); in attr_clnt_free()
144 ATTR_CLNT *client; in attr_clnt_create() local
146 client = (ATTR_CLNT *) mymalloc(sizeof(*client)); in attr_clnt_create()
147 client->auto_clnt = auto_clnt_create(service, timeout, max_idle, max_ttl); in attr_clnt_create()
148 client->scan = attr_vscan_plain; in attr_clnt_create()
149 client->print = attr_vprint_plain; in attr_clnt_create()
150 client->req_limit = ATTR_CLNT_DEF_REQ_LIMIT; in attr_clnt_create()
151 client->req_count = 0; in attr_clnt_create()
152 client->try_limit = ATTR_CLNT_DEF_TRY_LIMIT; in attr_clnt_create()
153 client->try_delay = ATTR_CLNT_DEF_TRY_DELAY; in attr_clnt_create()
154 return (client); in attr_clnt_create()
159 int attr_clnt_request(ATTR_CLNT *client, int send_flags,...) in attr_clnt_request() argument
191 if ((stream = auto_clnt_access(client->auto_clnt)) != 0 in attr_clnt_request()
195 err = (client->print(stream, send_flags, ap) != 0 in attr_clnt_request()
223 ret = client->scan(stream, recv_flags, ap); in attr_clnt_request()
227 if (client->req_limit > 0 in attr_clnt_request()
228 && (client->req_count += 1) >= client->req_limit) { in attr_clnt_request()
229 auto_clnt_recover(client->auto_clnt); in attr_clnt_request()
230 client->req_count = 0; in attr_clnt_request()
236 if ((++count >= client->try_limit && client->try_limit > 0) in attr_clnt_request()
240 auto_clnt_name(client->auto_clnt)); in attr_clnt_request()
242 if (count >= client->try_limit && client->try_limit > 0) { in attr_clnt_request()
246 sleep(client->try_delay); in attr_clnt_request()
247 auto_clnt_recover(client->auto_clnt); in attr_clnt_request()
248 client->req_count = 0; in attr_clnt_request()
257 void attr_clnt_control(ATTR_CLNT *client, int name,...) in attr_clnt_control() argument
265 client->print = va_arg(ap, ATTR_CLNT_PRINT_FN); in attr_clnt_control()
266 client->scan = va_arg(ap, ATTR_CLNT_SCAN_FN); in attr_clnt_control()
269 auto_clnt_control(client->auto_clnt, in attr_clnt_control()
275 client->req_limit = va_arg(ap, int); in attr_clnt_control()
276 if (client->req_limit < 0) in attr_clnt_control()
278 myname, client->req_limit); in attr_clnt_control()
281 myname, client->req_limit); in attr_clnt_control()
284 client->try_limit = va_arg(ap, int); in attr_clnt_control()
285 if (client->try_limit < 0) in attr_clnt_control()
286 msg_panic("%s: bad retry limit: %d", myname, client->try_limit); in attr_clnt_control()
288 msg_info("%s: new retry limit %d", myname, client->try_limit); in attr_clnt_control()
291 client->try_delay = va_arg(ap, int); in attr_clnt_control()
292 if (client->try_delay <= 0) in attr_clnt_control()
293 msg_panic("%s: bad retry delay: %d", myname, client->try_delay); in attr_clnt_control()
295 msg_info("%s: new retry delay %d", myname, client->try_delay); in attr_clnt_control()