Home | History | Annotate | Download | only in proxy

Lines Matching refs:conn

60 proxy_connection_init( ProxyConnection*           conn,
68 conn->socket = socket;
69 conn->address = address[0];
70 conn->service = service;
71 conn->next = NULL;
73 conn->conn_free = conn_free;
74 conn->conn_select = conn_select;
75 conn->conn_poll = conn_poll;
82 snprintf( conn->name, sizeof(conn->name),
88 conn->name[sizeof(conn->name)-1] = 0;
91 stralloc_reset(conn->str);
92 conn->str_pos = 0;
96 proxy_connection_done( ProxyConnection* conn )
98 stralloc_reset( conn->str );
99 if (conn->socket >= 0) {
100 socket_close(conn->socket);
101 conn->socket = -1;
107 proxy_connection_rewind( ProxyConnection* conn )
109 stralloc_t* str = conn->str;
112 conn->str_pos = 0;
119 proxy_connection_send( ProxyConnection* conn, int fd )
121 stralloc_t* str = conn->str;
122 int avail = str->n - conn->str_pos;
124 conn->str_sent = 0;
130 PROXY_LOG("%s: sending %d bytes:", conn->name, avail );
131 hex_dump( str->s + conn->str_pos, avail, ">> " );
135 int n = socket_send(fd, str->s + conn->str_pos, avail);
138 conn->name);
145 PROXY_LOG("%s: error: %s", conn->name, errno_str);
148 conn->str_pos += n;
149 conn->str_sent += n;
153 proxy_connection_rewind(conn);
159 proxy_connection_receive( ProxyConnection* conn, int fd, int wanted )
161 stralloc_t* str = conn->str;
163 conn->str_recv = 0;
172 conn->name);
179 PROXY_LOG("%s: error: %s", conn->name, errno_str);
184 PROXY_LOG("%s: received %d bytes:", conn->name, n );
190 conn->str_recv += n;
197 proxy_connection_receive_line( ProxyConnection* conn, int fd )
199 stralloc_t* str = conn->str;
205 PROXY_LOG("%s: disconnected from server", conn->name );
210 PROXY_LOG("%s: blocked", conn->name);
213 PROXY_LOG("%s: error: %s", conn->name, errno_str);
223 PROXY_LOG("%s: received '%s'", conn->name,
231 proxy_connection_insert( ProxyConnection* conn, ProxyConnection* after )
233 conn->next = after->next;
234 after->next->prev = conn;
235 after->next = conn;
236 conn->prev = after;
240 proxy_connection_remove( ProxyConnection* conn )
242 conn->prev->next = conn->next;
243 conn->next->prev = conn->prev;
245 conn->next = conn->prev = conn;
286 ProxyConnection* conn = s_connections->next;
290 while (conn != s_connections) {
291 ProxyConnection* next = conn->next;
292 conn->conn_free( conn );
293 conn = next;
295 conn->next = conn;
296 conn->prev = conn;
308 proxy_connection_free( ProxyConnection* conn,
312 if (conn) {
313 int fd = conn->socket;
315 proxy_connection_remove(conn);
318 conn->ev_func( conn->ev_opaque, fd, event );
321 conn->socket = -1;
323 conn->conn_free(conn);
342 ProxyConnection* conn = service->serv_connect( service->opaque,
345 if (conn != NULL) {
346 conn->ev_func = ev_func;
347 conn->ev_opaque = ev_opaque;
348 proxy_connection_insert(conn, s_connections->prev);
363 ProxyConnection* conn = s_connections->next;
364 for ( ; conn != s_connections; conn = conn->next ) {
365 if (conn->ev_opaque == ev_opaque) {
366 proxy_connection_remove(conn);
367 conn->conn_free(conn);
422 ProxyConnection* conn;
433 conn = s_connections->next;
434 while (conn != s_connections) {
435 ProxyConnection* next = conn->next;
436 conn->conn_select(conn, sel);
437 conn = next;
445 ProxyConnection* conn = s_connections->next;
453 while (conn != s_connections) {
454 ProxyConnection* next = conn->next;
455 conn->conn_poll( conn, sel );
456 conn = next;