!C99Shell v. 1.0 pre-release build #16!

Software: Apache/2.0.54 (Fedora). PHP/5.0.4 

uname -a: Linux mina-info.me 2.6.17-1.2142_FC4smp #1 SMP Tue Jul 11 22:57:02 EDT 2006 i686 

uid=48(apache) gid=48(apache) groups=48(apache)
context=system_u:system_r:httpd_sys_script_t
 

Safe-mode: OFF (not secure)

/usr/include/   drwxr-xr-x
Free 3.89 GB of 27.03 GB (14.4%)
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Feedback    Self remove    Logout    


Viewing file:     iwlib.h (14.75 KB)      -rw-r--r--
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
/*
*    Wireless Tools
*
*        Jean II - HPLB 97->99 - HPL 99->04
*
* Common header for the Wireless Extension library...
*
* This file is released under the GPL license.
*     Copyright (c) 1997-2004 Jean Tourrilhes <jt@hpl.hp.com>
*/

#ifndef IWLIB_H
#define IWLIB_H

/*#include "CHANGELOG.h"*/

/***************************** INCLUDES *****************************/

/* Standard headers */
#include <sys/types.h>
#include <sys/ioctl.h>
#include <stdio.h>
#include <math.h>
#include <errno.h>
#include <fcntl.h>
#include <ctype.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <netdb.h>        /* gethostbyname, getnetbyname */
#include <net/ethernet.h>    /* struct ether_addr */
#include <sys/time.h>        /* struct timeval */
#include <unistd.h>

/* This is our header selection. Try to hide the mess and the misery :-(
* Don't look, you would go blind ;-) */

#ifndef LINUX_VERSION_CODE
#include <linux/version.h>
#endif

/* Kernel headers 2.4.X + Glibc 2.2 - Mandrake 8.0, Debian 2.3, RH 7.1
* Kernel headers 2.2.X + Glibc 2.2 - Slackware 8.0 */
#if defined(__GLIBC__) \
    && __GLIBC__ == 2 \
    && __GLIBC_MINOR__ >= 2 \
    && LINUX_VERSION_CODE >= KERNEL_VERSION(2,2,0)
#define HEADERS_GENERIC

/* Kernel headers 2.4.X + Glibc 2.1 - Debian 2.2 upgraded, RH 7.0
* Kernel headers 2.2.X + Glibc 2.1 - Debian 2.2, RH 6.1 */
#elif defined(__GLIBC__) \
      && __GLIBC__ == 2 \
      && __GLIBC_MINOR__ == 1 \
      && LINUX_VERSION_CODE >= KERNEL_VERSION(2,2,0)
#define HEADERS_GENERIC
#define HEADERS_KERNEL

/* Unsupported combination */
#else
#error "Your kernel/libc combination is not supported"
#endif

#ifdef HEADERS_GENERIC
/* Proposed by Dr. Michael Rietz <rietz@mail.amps.de>, 27.3.2 */
#include <net/if_arp.h>        /* For ARPHRD_ETHER */
#include <sys/socket.h>        /* For AF_INET & struct sockaddr */
#include <netinet/in.h>         /* For struct sockaddr_in */
#include <netinet/if_ether.h>
#endif /* HEADERS_GENERIC */    

/* Fixup to be able to include kernel includes in userspace.
* Basically, kill the sparse annotations... Jean II */
#define __user

#include <linux/types.h>        /* for "caddr_t" et al        */

#ifdef HEADERS_KERNEL
/* Traditionally we have used kernel headers, included in wireless.h */
#include <linux/socket.h>        /* for "struct sockaddr" et al    */
#include <linux/if.h>            /* for IFNAMSIZ and co... */
#else    /* !HEADERS_KERNEL */
/* Glibc systems headers are supposedly less problematic than kernel ones */
#include <sys/socket.h>            /* for "struct sockaddr" et al    */
#include <net/if.h>            /* for IFNAMSIZ and co... */
#endif    /* !HEADERS_KERNEL */

/* Private copy of Wireless extensions (in this directoty) */
#include "wireless.h"

/* Make gcc understant that when we say inline, we mean it.
* I really hate when the compiler is trying to be more clever than me,
* because in this case gcc is not able to figure out functions with a
* single call site, so not only I have to tag those functions inline
* by hand, but then it refuse to inline them properly.
* Total saving for iwevent : 150B = 0.7%.
* Fortunately, in gcc 3.4, they now automatically inline static functions
* with a single call site. Hurrah !
* Jean II */
#if __GNUC__ == 3
#if __GNUC_MINOR__ >= 1 && __GNUC_MINOR__ < 4
#ifdef inline
#undef inline
#endif
#define inline        inline        __attribute__((always_inline))
#endif
#endif /* __GNUC__ */

#ifdef __cplusplus
extern "C" {
#endif

/****************************** DEBUG ******************************/


/************************ CONSTANTS & MACROS ************************/

/* Various versions information */
/* Recommended Wireless Extension version */
#define WE_VERSION    19
/* Version of Wireless Tools */
#define WT_VERSION    28

/* Paths */
#define PROC_NET_WIRELESS    "/proc/net/wireless"
#define PROC_NET_DEV        "/proc/net/dev"

/* Some usefull constants */
#define KILO    1e3
#define MEGA    1e6
#define GIGA    1e9
/* For doing log10/exp10 without libm */
#define LOG10_MAGIC    1.25892541179

/* Backward compatibility for network headers */
#ifndef ARPHRD_IEEE80211
#define ARPHRD_IEEE80211 801        /* IEEE 802.11            */
#endif /* ARPHRD_IEEE80211 */

/****************************** TYPES ******************************/

/* Shortcuts */
typedef struct iw_statistics    iwstats;
typedef struct iw_range        iwrange;
typedef struct iw_param        iwparam;
typedef struct iw_freq        iwfreq;
typedef struct iw_quality    iwqual;
typedef struct iw_priv_args    iwprivargs;
typedef struct sockaddr        sockaddr;

/* Structure for storing all wireless information for each device
* This is a cut down version of the one above, containing only
* the things *truly* needed to configure a card.
* Don't add other junk, I'll remove it... */
typedef struct wireless_config
{
  char        name[IFNAMSIZ + 1];    /* Wireless/protocol name */
  int        has_nwid;
  iwparam    nwid;            /* Network ID */
  int        has_freq;
  double    freq;            /* Frequency/channel */
  int        freq_flags;
  int        has_key;
  unsigned char    key[IW_ENCODING_TOKEN_MAX];    /* Encoding key used */
  int        key_size;        /* Number of bytes */
  int        key_flags;        /* Various flags */
  int        has_essid;
  int        essid_on;
  char        essid[IW_ESSID_MAX_SIZE + 1];    /* ESSID (extended network) */
  int        has_mode;
  int        mode;            /* Operation mode */
} wireless_config;

/* Structure for storing all wireless information for each device
* This is pretty exhaustive... */
typedef struct wireless_info
{
  struct wireless_config    b;    /* Basic information */

  int        has_sens;
  iwparam    sens;            /* sensitivity */
  int        has_nickname;
  char        nickname[IW_ESSID_MAX_SIZE + 1]; /* NickName */
  int        has_ap_addr;
  sockaddr    ap_addr;        /* Access point address */
  int        has_bitrate;
  iwparam    bitrate;        /* Bit rate in bps */
  int        has_rts;
  iwparam    rts;            /* RTS threshold in bytes */
  int        has_frag;
  iwparam    frag;            /* Fragmentation threshold in bytes */
  int        has_power;
  iwparam    power;            /* Power management parameters */
  int        has_txpower;
  iwparam    txpower;        /* Transmit Power in dBm */
  int        has_retry;
  iwparam    retry;            /* Retry limit or lifetime */

  /* Stats */
  iwstats    stats;
  int        has_stats;
  iwrange    range;
  int        has_range;

  /* Auth params for WPA/802.1x/802.11i */
  int        auth_key_mgmt;
  int        has_auth_key_mgmt;
  int        auth_cipher_pairwise;
  int        has_auth_cipher_pairwise;
  int        auth_cipher_group;
  int        has_auth_cipher_group;
} wireless_info;

/* Structure for storing an entry of a wireless scan.
* This is only a subset of all possible information, the flexible
* structure of scan results make it impossible to capture all
* information in such a static structure. */
typedef struct wireless_scan
{
  /* Linked list */
  struct wireless_scan *    next;

  /* Cell identifiaction */
  int        has_ap_addr;
  sockaddr    ap_addr;        /* Access point address */

  /* Other information */
  struct wireless_config    b;    /* Basic information */
  iwstats    stats;            /* Signal strength */
  int        has_stats;
} wireless_scan;

/*
* Context used for non-blocking scan.
*/
typedef struct wireless_scan_head
{
  wireless_scan *    result;        /* Result of the scan */
  int            retry;        /* Retry level */
} wireless_scan_head;

/* Structure used for parsing event streams, such as Wireless Events
* and scan results */
typedef struct stream_descr
{
  char *    end;        /* End of the stream */
  char *    current;    /* Current event in stream of events */
  char *    value;        /* Current value in event */
} stream_descr;

/* Prototype for handling display of each single interface on the
* system - see iw_enum_devices() */
typedef int (*iw_enum_handler)(int    skfd,
                   char *    ifname,
                   char *    args[],
                   int    count);

/**************************** PROTOTYPES ****************************/
/*
* All the functions in iwcommon.c
*/

/* ---------------------- SOCKET SUBROUTINES -----------------------*/
int
    iw_sockets_open(void);
void
    iw_enum_devices(int        skfd,
            iw_enum_handler fn,
            char *        args[],
            int        count);
/* --------------------- WIRELESS SUBROUTINES ----------------------*/
int
    iw_get_kernel_we_version(void);
int
    iw_print_version_info(const char *    toolname);
int
    iw_get_range_info(int        skfd,
              const char *    ifname,
              iwrange *    range);
int
    iw_get_priv_info(int        skfd,
             const char *    ifname,
             iwprivargs **    ppriv);
int
    iw_get_basic_config(int            skfd,
                const char *    ifname,
                wireless_config *    info);
int
    iw_set_basic_config(int            skfd,
                const char *    ifname,
                wireless_config *    info);
/* --------------------- PROTOCOL SUBROUTINES --------------------- */
int
    iw_protocol_compare(const char *    protocol1,
                const char *    protocol2);
/* -------------------- FREQUENCY SUBROUTINES --------------------- */
void
    iw_float2freq(double    in,
              iwfreq *    out);
double
    iw_freq2float(const iwfreq *    in);
void
    iw_print_freq_value(char *    buffer,
                int        buflen,
                double    freq);
void
    iw_print_freq(char *    buffer,
              int    buflen,
              double    freq,
              int    channel,
              int    freq_flags);
int
    iw_freq_to_channel(double            freq,
               const struct iw_range *    range);
int
    iw_channel_to_freq(int                channel,
               double *            pfreq,
               const struct iw_range *    range);
void
    iw_print_bitrate(char *    buffer,
             int    buflen,
             int    bitrate);
/* ---------------------- POWER SUBROUTINES ----------------------- */
int
    iw_dbm2mwatt(int    in);
int
    iw_mwatt2dbm(int    in);
void
    iw_print_txpower(char *            buffer,
             int            buflen,
             struct iw_param *    txpower);
/* -------------------- STATISTICS SUBROUTINES -------------------- */
int
    iw_get_stats(int        skfd,
             const char *    ifname,
             iwstats *        stats,
             const iwrange *    range,
             int        has_range);
void
    iw_print_stats(char *        buffer,
               int        buflen,
               const iwqual *    qual,
               const iwrange *    range,
               int        has_range);
/* --------------------- ENCODING SUBROUTINES --------------------- */
void
    iw_print_key(char *            buffer,
             int            buflen,
             const unsigned char *    key,
             int            key_size,
             int            key_flags);
int
    iw_in_key(const char *        input,
          unsigned char *    key);
int
    iw_in_key_full(int        skfd,
               const char *    ifname,
               const char *    input,
               unsigned char *    key,
               __u16 *        flags);
/* ----------------- POWER MANAGEMENT SUBROUTINES ----------------- */
void
    iw_print_pm_value(char *    buffer,
              int        buflen,
              int        value,
              int        flags);
void
    iw_print_pm_mode(char *        buffer,
             int        buflen,
             int        flags);
/* --------------- RETRY LIMIT/LIFETIME SUBROUTINES --------------- */
void
    iw_print_retry_value(char *    buffer,
                 int    buflen,
                 int    value,
                 int    flags);
/* ----------------------- TIME SUBROUTINES ----------------------- */
void
    iw_print_timeval(char *                buffer,
             int                buflen,
             const struct timeval *        time,
             const struct timezone *    tz);
/* --------------------- ADDRESS SUBROUTINES ---------------------- */
int
    iw_check_mac_addr_type(int        skfd,
                   const char *    ifname);
int
    iw_check_if_addr_type(int        skfd,
                  const char *    ifname);
#if 0
int
    iw_check_addr_type(int        skfd,
               const char *    ifname);
#endif
#if 0
int
    iw_get_mac_addr(int            skfd,
            const char *        name,
            struct ether_addr *    eth,
            unsigned short *    ptype);
#endif
char *
    iw_mac_ntop(const unsigned char *    mac,
            int                maclen,
            char *            buf,
            int                buflen);
void
    iw_ether_ntop(const struct ether_addr* eth, char* buf);
int
    iw_mac_aton(const char *    orig,
            unsigned char *    mac,
            int            macmax);
int
    iw_ether_aton(const char* bufp, struct ether_addr* eth);
int
    iw_in_inet(char *bufp, struct sockaddr *sap);
int
    iw_in_addr(int            skfd,
           const char *        ifname,
           char *        bufp,
           struct sockaddr *    sap);
/* ----------------------- MISC SUBROUTINES ------------------------ */
int
    iw_get_priv_size(int        args);

/* ---------------------- EVENT SUBROUTINES ---------------------- */
void
    iw_init_event_stream(struct stream_descr *    stream,
                 char *            data,
                 int            len);
int
    iw_extract_event_stream(struct stream_descr *    stream,
                struct iw_event *    iwe,
                int            we_version);
/* --------------------- SCANNING SUBROUTINES --------------------- */
int
    iw_process_scan(int            skfd,
            char *            ifname,
            int            we_version,
            wireless_scan_head *    context);
int
    iw_scan(int            skfd,
        char *            ifname,
        int            we_version,
        wireless_scan_head *    context);

/**************************** VARIABLES ****************************/

/* Modes as human readable strings */
extern const char * const    iw_operation_mode[];
#define IW_NUM_OPER_MODE    7

/************************* INLINE FUNTIONS *************************/
/*
* Functions that are so simple that it's more efficient inlining them
*/

/*
* Note : I've defined wrapper for the ioctl request so that
* it will be easier to migrate to other kernel API if needed
*/

/*------------------------------------------------------------------*/
/*
* Wrapper to push some Wireless Parameter in the driver
*/
static inline int
iw_set_ext(int            skfd,        /* Socket to the kernel */
       const char *        ifname,        /* Device name */
       int            request,    /* WE ID */
       struct iwreq *    pwrq)        /* Fixed part of the request */
{
  /* Set device name */
  strncpy(pwrq->ifr_name, ifname, IFNAMSIZ);
  /* Do the request */
  return(ioctl(skfd, request, pwrq));
}

/*------------------------------------------------------------------*/
/*
* Wrapper to extract some Wireless Parameter out of the driver
*/
static inline int
iw_get_ext(int            skfd,        /* Socket to the kernel */
       const char *        ifname,        /* Device name */
       int            request,    /* WE ID */
       struct iwreq *    pwrq)        /* Fixed part of the request */
{
  /* Set device name */
  strncpy(pwrq->ifr_name, ifname, IFNAMSIZ);
  /* Do the request */
  return(ioctl(skfd, request, pwrq));
}

/*------------------------------------------------------------------*/
/*
* Close the socket used for ioctl.
*/
static inline void
iw_sockets_close(int    skfd)
{
  close(skfd);
}

/*------------------------------------------------------------------*/
/*
* Display an Ethernet Socket Address in readable format.
*/
static inline char *
iw_saether_ntop(const struct sockaddr *sap, char* bufp)
{
  iw_ether_ntop((const struct ether_addr *) sap->sa_data, bufp);
  return bufp;
}
/*------------------------------------------------------------------*/
/*
* Input an Ethernet Socket Address and convert to binary.
*/
static inline int
iw_saether_aton(const char *bufp, struct sockaddr *sap)
{
  sap->sa_family = ARPHRD_ETHER;
  return iw_ether_aton(bufp, (struct ether_addr *) sap->sa_data);
}

/*------------------------------------------------------------------*/
/*
* Create an Ethernet broadcast address
*/
static inline void
iw_broad_ether(struct sockaddr *sap)
{
  sap->sa_family = ARPHRD_ETHER;
  memset((char *) sap->sa_data, 0xFF, ETH_ALEN);
}

/*------------------------------------------------------------------*/
/*
* Create an Ethernet NULL address
*/
static inline void
iw_null_ether(struct sockaddr *sap)
{
  sap->sa_family = ARPHRD_ETHER;
  memset((char *) sap->sa_data, 0x00, ETH_ALEN);
}

#ifdef __cplusplus
}
#endif

#endif    /* IWLIB_H */

:: Command execute ::

Enter:
 
Select:
 

:: Search ::
  - regexp 

:: Upload ::
 
[ Read-Only ]

:: Make Dir ::
 
[ Read-Only ]
:: Make File ::
 
[ Read-Only ]

:: Go Dir ::
 
:: Go File ::
 

--[ c99shell v. 1.0 pre-release build #16 powered by Captain Crunch Security Team | http://ccteam.ru | Generation time: 0.004 ]--