char *pppd_pppoe_service = NULL;
static char *acName = NULL;
static char *existingSession = NULL;
-static int printACNames = 0;
+int pppoe_verbose = 0;
static char *pppoe_reqd_mac = NULL;
unsigned char pppoe_reqd_mac_addr[6];
static char *pppoe_host_uniq;
"Attach to existing session (sessid:macaddr)" },
{ "rp_pppoe_sess", o_string, &existingSession,
"Legacy alias for pppoe-sess", OPT_ALIAS },
- { "pppoe-verbose", o_int, &printACNames,
+ { "pppoe-verbose", o_int, &pppoe_verbose,
"Be verbose about discovered access concentrators" },
- { "rp_pppoe_verbose", o_int, &printACNames,
+ { "rp_pppoe_verbose", o_int, &pppoe_verbose,
"Legacy alias for pppoe-verbose", OPT_ALIAS },
{ "pppoe-mac", o_string, &pppoe_reqd_mac,
"Only connect to specified MAC address" },
conn->ifName = devnam;
conn->discoverySocket = -1;
conn->sessionSocket = -1;
- conn->printACNames = printACNames;
conn->discoveryTimeout = pppoe_padi_timeout;
conn->discoveryAttempts = pppoe_padi_attempts;
return 1;
#include <net/if_arp.h>
#endif
+int pppoe_verbose;
+
char *xstrdup(const char *s);
void usage(void);
switch(type) {
case TAG_AC_NAME:
pc->seenACName = 1;
- if (conn->printACNames) {
+ if (pppoe_verbose >= 1) {
printf("Access-Concentrator: %.*s\n", (int) len, data);
}
if (conn->acName && len == strlen(conn->acName) &&
break;
case TAG_SERVICE_NAME:
pc->seenServiceName = 1;
- if (conn->printACNames && len > 0) {
+ if (pppoe_verbose >= 1 && len > 0) {
printf(" Service-Name: %.*s\n", (int) len, data);
}
if (conn->serviceName && len == strlen(conn->serviceName) &&
}
break;
case TAG_AC_COOKIE:
- if (conn->printACNames) {
+ if (pppoe_verbose >= 1) {
printf("Got a cookie:");
/* Print first 20 bytes of cookie */
for (i=0; i<len && i < 20; i++) {
memcpy(conn->cookie.payload, data, len);
break;
case TAG_RELAY_SESSION_ID:
- if (conn->printACNames) {
+ if (pppoe_verbose >= 1) {
printf("Got a Relay-ID:");
/* Print first 20 bytes of relay ID */
for (i=0; i<len && i < 20; i++) {
memcpy(conn->relayId.payload, data, len);
break;
case TAG_SERVICE_NAME_ERROR:
- if (conn->printACNames) {
+ if (pppoe_verbose >= 1) {
printf("Got a Service-Name-Error tag: %.*s\n", (int) len, data);
}
break;
case TAG_AC_SYSTEM_ERROR:
- if (conn->printACNames) {
+ if (pppoe_verbose >= 1) {
printf("Got a System-Error tag: %.*s\n", (int) len, data);
}
break;
case TAG_GENERIC_ERROR:
- if (conn->printACNames) {
+ if (pppoe_verbose >= 1) {
printf("Got a Generic-Error tag: %.*s\n", (int) len, data);
}
break;
conn->numPADOs++;
if (pc.acNameOK && pc.serviceNameOK) {
memcpy(conn->peerEth, packet.ethHdr.h_source, ETH_ALEN);
- if (conn->printACNames) {
+ if (pppoe_verbose >= 1) {
printf("AC-Ethernet-Address: %02x:%02x:%02x:%02x:%02x:%02x\n",
(unsigned) conn->peerEth[0],
(unsigned) conn->peerEth[1],
memset(conn, 0, sizeof(PPPoEConnection));
- conn->printACNames = 1;
+ pppoe_verbose = 1;
conn->discoveryTimeout = PADI_TIMEOUT;
conn->discoveryAttempts = MAX_PADI_ATTEMPTS;
conn->ifName = xstrdup(optarg);
break;
case 'Q':
- conn->printACNames = 0;
+ pppoe_verbose = 0;
break;
case 'V':
case 'h':
char *acName; /* Desired AC name, if any */
int synchronous; /* Use synchronous PPP */
PPPoETag hostUniq; /* Use Host-Uniq tag */
- int printACNames; /* Just print AC names */
FILE *debugFile; /* Debug file for dumping packets */
int numPADOs; /* Number of PADO packets received */
PPPoETag cookie; /* We have to send this if we get it */
unsigned char *findTag(PPPoEPacket *packet, UINT16_t tagType,
PPPoETag *tag);
+extern int pppoe_verbose;
void pppoe_printpkt(PPPoEPacket *packet,
void (*printer)(void *, char *, ...), void *arg);
void pppoe_log_packet(const char *prefix, PPPoEPacket *packet);