* This file is released under the GPL license.
*/
-#include "iwcommon.h" /* Header */
+#include "iwlib.h" /* Header */
/************************* MISC SUBROUTINES **************************/
fprintf(stderr, "Usage: iwpriv interface [private-command [private-arguments]]\n");
fprintf(stderr, " interface [roam {on|off}]\n");
fprintf(stderr, " interface [port {ad-hoc|managed|N}]\n");
- exit(1);
}
/************************ GENERIC FUNCTIONS *************************/
int k;
iwprivargs priv[16];
int n;
- char * argtype[] = { " ", "byte", "char", "", "int", "float" };
+ char * argtype[] = { " ", "byte", "char", "", "int ", "float" };
/* Read the private ioctls */
- n = get_priv_info(skfd, ifname, priv);
+ n = iw_get_priv_info(skfd, ifname, priv);
/* Is there any ? */
if(n <= 0)
int number;
/* Read the private ioctls */
- number = get_priv_info(skfd, ifname, priv);
+ number = iw_get_priv_info(skfd, ifname, priv);
/* Is there any ? */
if(number <= 0)
strncpy(wrq.ifr_name, ifname, IFNAMSIZ);
if((priv[k].set_args & IW_PRIV_SIZE_FIXED) &&
- (byte_size(priv[k].set_args) < IFNAMSIZ))
+ (iw_byte_size(priv[k].set_args) < IFNAMSIZ))
memcpy(wrq.u.name, buffer, IFNAMSIZ);
else
{
printf("%-8.8s %s:", ifname, priv[k].name);
if((priv[k].get_args & IW_PRIV_SIZE_FIXED) &&
- (byte_size(priv[k].get_args) < IFNAMSIZ))
+ (iw_byte_size(priv[k].get_args) < IFNAMSIZ))
{
memcpy(buffer, wrq.u.name, IFNAMSIZ);
n = priv[k].get_args & IW_PRIV_SIZE_MASK;
change roam states */
/* Read the private ioctls */
- number = get_priv_info(skfd, ifname, priv);
+ number = iw_get_priv_info(skfd, ifname, priv);
/* Is there any ? */
if(number <= 0)
}
if(count != 1)
- iw_usage();
+ {
+ iw_usage();
+ return(-1);
+ }
if(!strcasecmp(args[i], "on"))
{
if(ioctl(skfd, priv[k].cmd, &wrq) < 0)
{
fprintf(stderr, "Roaming support is broken.\n");
- exit(0);
+ return(-1);
}
}
- i++;
- return(i);
+ return(0);
}
/*------------------------------------------------------------------*/
char * modes[] = { "invalid", "managed (BSS)", "reserved", "ad-hoc" };
/* Read the private ioctls */
- number = get_priv_info(skfd, ifname, priv);
+ number = iw_get_priv_info(skfd, ifname, priv);
/* Is there any ? */
if(number <= 0)
}
if(count != 1)
- iw_usage();
+ {
+ iw_usage();
+ return(-1);
+ }
/* Read it */
/* As a string... */
else
/* ...or as an integer */
if(sscanf(args[i], "%d", (int *) &ptype) != 1)
- iw_usage();
+ {
+ iw_usage();
+ return(-1);
+ }
k = -1;
while((++k < number) && strcmp(priv[k].name, "sport_type") &&
if(ioctl(skfd, priv[k].cmd, &wrq) < 0)
{
fprintf(stderr, "Invalid port type (or setting not allowed)\n");
- exit(0);
+ return(-1);
}
- i++;
- return(i);
+ return(0);
}
/******************************* MAIN ********************************/
int goterr = 0;
/* Create a channel to the NET kernel. */
- if((skfd = sockets_open()) < 0)
+ if((skfd = iw_sockets_open()) < 0)
{
perror("socket");
- exit(-1);
+ return(-1);
}
/* No argument : show the list of all device + info */
{
print_priv_devices(skfd);
close(skfd);
- exit(0);
+ return(0);
}
/* Special cases take one... */
{
iw_usage();
close(skfd);
- exit(0);
+ return(0);
}
/* The device name must be the first argument */
{
print_priv_info(skfd, argv[1]);
close(skfd);
- exit(0);
+ return(0);
}
/* Special cases take two... */
{
goterr = set_roaming(skfd, argv + 3, argc - 3, argv[1]);
close(skfd);
- exit(0);
+ return(goterr);
}
/* Port type */
{
goterr = port_type(skfd, argv + 3, argc - 3, argv[1]);
close(skfd);
- exit(0);
+ return(goterr);
}
/* Otherwise, it's a private ioctl */
/* Close the socket. */
close(skfd);
- return(1);
+ return(goterr);
}