コード例 #1
0
ファイル: wesside-ng.c プロジェクト: 0x90/aircrack-ng
static void set_chan(struct wstate *ws, int c)
{
	if (c == ws->ws_chan)
		return;

	if (wi_set_channel(ws->ws_wi, c))
		err(1, "wi_set_channel()");

	ws->ws_chan = c;
}
コード例 #2
0
static int card_set_chan(struct sstate *ss, int chan)
{
	return wi_set_channel(ss->ss_wi, chan);
}
コード例 #3
0
ファイル: cygwin.c プロジェクト: 1EDTHEMAN1/raspberry_pwn
/**
 * Get the different functions for to interact with the device:
 * - setting monitor mode
 * - changing channel
 * - capturing data
 * - injecting packets
 * @param iface The interface name
 */
static int do_cygwin_open(struct wif *wi, char *iface)
{
	struct priv_cygwin *priv = wi_priv(wi);
	void *lib;
	char *file;
	char *parm;
	int rc = -1;
	int tempret = 0;

	if (!iface)
		return -1;
	if (strlen(iface) == 0)
		return -1;

	priv->useDll = 0;

	if (stristr(iface, DLL_EXTENSION))
		priv->useDll = 1;

	if (priv->useDll)
	{
		file = strdup(iface);
		if (!file)
			return -1;

		parm = strchr(file, '|');
		if (parm)
			*parm++ = 0;

		/* load lib */
		lib = dlopen(file, RTLD_LAZY);
		if (!lib)
			goto errdll;

		priv->pc_init		= dlsym(lib, xstr(CYGWIN_DLL_INIT));
		priv->pc_set_chan	= dlsym(lib, xstr(CYGWIN_DLL_SET_CHAN));
		priv->pc_get_mac	= dlsym(lib, xstr(CYGWIN_DLL_GET_MAC));
		priv->pc_set_mac	= dlsym(lib, xstr(CYGWIN_DLL_SET_MAC));
		priv->pc_close		= dlsym(lib, xstr(CYGWIN_DLL_CLOSE));
		priv->pc_inject		= dlsym(lib, xstr(CYGWIN_DLL_INJECT));
		priv->pc_sniff		= dlsym(lib, xstr(CYGWIN_DLL_SNIFF));

		if (!(priv->pc_init && priv->pc_set_chan && priv->pc_get_mac
			  && priv->pc_inject && priv->pc_sniff && priv->pc_close))
			goto errdll;

		/* init lib */
		if ((rc = priv->pc_init(parm)))
			goto errdll;
		priv->pc_did_init = 1;

		rc = 0;

errdll:
		free(file);
	}
	else
	{
		#ifdef HAVE_AIRPCAP
			// Check if it's an Airpcap device
			priv->isAirpcap = isAirpcapDevice(iface);


			if (priv->isAirpcap)
			{
				// Get functions
				priv->pc_init		= airpcap_init;
				priv->pc_set_chan	= airpcap_set_chan;
				priv->pc_get_mac	= airpcap_get_mac;
				priv->pc_set_mac	= airpcap_set_mac;
				priv->pc_close		= airpcap_close;
				priv->pc_inject		= airpcap_inject;
				priv->pc_sniff		= airpcap_sniff;

				rc = 0;
			}

		#endif

	}

	if (rc == 0)
	{
		// Don't forget to initialize
		if (! priv->useDll)
		{
			rc = priv->pc_init(iface);

			if (rc == 0)
				priv->pc_did_init = 1;
			else
				fprintf(stderr,"Error initializing <%s>\n", iface);
		}

		/* set initial chan */
		tempret = wi_set_channel(wi, 1);
		if (tempret)
			rc = tempret;
	}
	else
	{
		// Show an error message if the adapter is not supported
		fprintf(stderr, "Adapter <%s> not supported\n", iface);
	}

	return rc;
}