+ proxy->callback(scan);
+
+end:
+ rb_close(scan->F);
+ rb_dlinkDelete(&scan->node, &lookup->scans);
+ rb_free(scan);
+}
+
+static void
+socks4_connected(struct opm_scan *scan)
+{
+ struct auth_client *auth = scan->auth;
+ struct opm_lookup *lookup = get_provider_data(auth, SELF_PID);
+ uint8_t sendbuf[9]; /* Size we're building */
+ uint8_t *c = sendbuf;
+
+ memcpy(c, "\x04\x01", 2); c += 2; /* Socks version 4, connect command */
+ memcpy(c, &(((struct sockaddr_in *)&scan->listener->addr)->sin_port), 2); c += 2; /* Port */
+ memcpy(c, &(((struct sockaddr_in *)&scan->listener->addr)->sin_addr.s_addr), 4); c += 4; /* Address */