+#ifdef FUZZ
+/*********************************************************************
+ *
+ * Function : socks_fuzz
+ *
+ * Description : Wrapper around socks[45]_connect() used for fuzzing.
+ *
+ * Parameters :
+ * 1 : csp = Current client state (buffers, headers, etc...)
+ *
+ * Returns : JB_ERR_OK or JB_ERR_PARSE
+ *
+ *********************************************************************/
+extern jb_err socks_fuzz(struct client_state *csp)
+{
+ jb_socket socket;
+ static struct forward_spec fwd;
+ char target_host[] = "fuzz.example.org";
+ int target_port = 12345;
+
+ fwd.gateway_host = strdup_or_die("fuzz.example.org");
+ fwd.gateway_port = 12345;
+
+ fwd.type = SOCKS_4A;
+ socket = socks4_connect(&fwd, target_host, target_port, csp);
+
+ if (JB_INVALID_SOCKET != socket)
+ {
+ fwd.type = SOCKS_5;
+ socket = socks5_connect(&fwd, target_host, target_port, csp);
+ }
+
+ if (JB_INVALID_SOCKET == socket)
+ {
+ log_error(LOG_LEVEL_ERROR, "%s", csp->error_message);
+ return JB_ERR_PARSE;
+ }
+
+ log_error(LOG_LEVEL_INFO, "Input looks like an acceptable socks response");
+
+ return JB_ERR_OK;
+
+}
+#endif
+